2010-08-07 200 views
1

我有一个本地分支正在跟踪git上的远程分支。 在某些时候,我更新文件'x.out',但在这个分支上工作时,我尝试从服务器上取下最新的更改。其他人已经更新'x.out'和git告诉我“无法覆盖文件”(或者这样),所以我必须将我的更改添加到索引中,并且在成功拔出之前提交我的更改。Git - 在更新同一文件时从远程合并到本地分支

  1. 的问题是,用这种方法,导致在库2个提交:一个犯了我的本地变化和一个(因为我是从“x.out”的服务器有一个更老的版本),我提交后“ git add“my modified'x.out'file(that sais”merge branch ..“)

  2. 我不希望这两个步骤提交(日志看起来很糟糕) - 很难跟踪什么应该一直是一个单一的承诺。在SVN/Perforce中没有一种方法可以告诉我什么时候需要将我的本地修改文件与服务器上的文件合并(如果不合并冲突,可以自动合并?)这样,当再次拉到远程时,这个仅仅只有1提交和未提交2 ...

回答

3

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

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

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

+0

没错。这正是我想要的。这样,人们可以直接在追踪分支上工作,并在方便时进行抽取。谢谢 ! – Ghita 2010-08-07 15:03:34

2

你可以尝试git pull --rebase,这可能会有所缓解局势。

总而言之,有一个额外的提交真的没有任何问题。只需获得像gitkgitg这样的应用程序,它可以很好地显示日志。

+0

实际上经过一段时间玩了这种情况我已经到了conclusin,rebasing很好地解决了这个问题。 – Ghita 2010-08-08 21:17:57

相关问题