Git - 在更新同一文件时从远程分支到本地分支

时间:2010-08-07 10:30:31

标签: git

我有一个本地分支跟踪git上的远程分支。 在某些时候我更新文件'x.out',但在这个分支上工作时,我尝试从服务器拉出最新的更改。其他人已经更新了'x.out'并且git告诉我“不能覆盖文件”(或左右)所以我必须将我的更改添加到索引中,并且还要提交我的更改,然后才能成功完成。

  1. 问题在于,通过这种方法,它会在存储库中产生2次提交:一次提交我的本地更改(因为我有来自'x.out'服务器的旧版本)和一次提交后我“git添加“我修改过的'x.out'文件(基本上是sais”合并分支..“)

  2. 我不希望这两个步骤提交(日志看起来也很糟糕) - 很难遵循本应提交的内容。是不是有一种方式像SVN / Perforce告诉什么时候拉我希望我的本地修改文件与服务器合并(如果没有合并冲突可以自动合并?)这样当再次拉到远程时有这只是1次提交而不是2次提交......

2 个答案:

答案 0 :(得分:3)

您必须提取更改,并在本地清除冲突(如果有)。

$ git pull
 ...
file foobar not up to date, cannot merge.
$ git stash
$ git pull
$ git stash pop

然后删除冲突并添加文件。

答案 1 :(得分:2)

您可以尝试git pull --rebase,这可能会在一定程度上缓解这种情况。

总而言之,进行额外提交确实没有任何问题。只需获取gitkgitg这样的应用程序,即可很好地可视化日志。