2

我对 git (以及所有版本控制软件)很陌生。我已经安装了 SmartGit 3 作为我的图形界面。我创建了一个裸仓库并克隆了它。我想知道的是,我应该如何从服务器中提取(不覆盖),比较我当前本地版本和远程服务器版本之间的修改(更改),然后选择我想要保留的更改(如在融合或 kdiff3 中)。

正如我们所说,当我从服务器拉取时,它会完全覆盖我的本地版本,而当我推送时,它会用本地版本(最后一次提交)覆盖远程服务器的版本。

当我拉和/或推时,我希望能够比较我的本地版本和远程版本之间的差异。

我试图弄清楚如何做到这一点,但就是找不到。我见过我的一个朋友用 git gui 做类似的事情(我认为他正在合并一些东西,但我不确定)。

无论如何,我确定我理解错了,但是如果有人可以帮助我完成操作的过程(使用 SmartGit 3),那将非常有帮助。

4

1 回答 1

0

In your SmartGit3 project, right-click repository settings (alt-enter) and uncheck the "commit merged remote changes".

Now when you do a "pull", if you just fetch the changes, they will be fetched into origin/master branch.

You can merge from there in the merge window (select all branches from the dropdown or just "master and origin/master") and the commits on the remote (origin/master) branch should show up in the list.

Looks like once you fetch (above) you can see the changes vs your local HEAD from the log window. select all branches (or "master and origin/master") on the little drop down next to the Filter box/Default coloring dropdown. You can then cherry pick merge the commits into your local master.

于 2012-08-02T01:09:03.760 回答