2012-08-02 109 views
1

我很新的git(和所有版本控制軟件)。我已將SmartGit 3安裝爲我的圖形界面。我創建了一個裸回購並克隆它。我想知道的是,我應該如何從服務器上拉出(不覆蓋),比較我當前本地版本和遠程服務器之間的修改(更改),並選擇我想保留的更改(如在meld或kdiff3中)。我們說,當我從服務器拉出來時,它完全覆蓋了我的本地版本,而當我推送時,它會用本地(最後一次提交)覆蓋遠程服務器的版本。SmartGit和Git如何與遠程進行比較?

我希望能夠比較我的本地版本和遠程版本之間的差異,當我拉和/或推。

我試圖找出如何去做,但找不到它。我見過一位朋友正在做類似於git gui的事情(我認爲他正在合併一些東西,但我不確定)。

無論如何,我確定有些事情我明白錯誤,但如果有人能夠幫助我如何做到這一點(使用SmartGit 3),那將非常有幫助。

+0

git pull基本上是:git getch後面跟着git merge。只是自己做一個抓取,然後你可以比較和合並你想要的結果 – 2012-08-02 00:21:39

+0

@Jeff Shelman謝謝你的回答,但我該如何在SmartGit 3中做到這一點,我唯一的按鈕是拉,我可以選擇「只取取更改」,但它什麼都不做? – maniak 2012-08-02 00:29:22

+0

我沒有安裝SmartGit3。您似乎可以取消選中合併遠程更改複選框http://www.syntevo.com/smartgit/documentation.html?page=命令,然後手動執行合併。 – 2012-08-02 00:33:06

回答

0

在您的SmartGit3項目中,右鍵單擊存儲庫設置(alt-enter)並取消選中「提交合並的遠程更改」。

現在,當你做一個「拉」,如果你只是獲取更改,它們將被提取到原始/主分支。

您可以從合併窗口中的合併(從下拉列表中選擇所有分支,或僅選擇「master和origin/master」),並且遠程(原始/主分支)分支上的提交應顯示在列表中。

看起來像一旦你獲取(上圖)你可以看到從你的本地HEAD從日誌窗口的變化。在篩選器框/默認顏色下拉列表旁邊的小下拉列表中選擇所有分支(或「主和起源/主」)。然後你可以選擇合併提交到你的本地主人。

+1

您還可以選擇主機所在的提交以及同時啓用原始/主機的提交。這將爲您提供文件區域中這兩個提交之間的整體差異。 – mstrap 2012-08-02 07:22:45