代码之家  ›  专栏  ›  技术社区  ›  Ghita

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

git
  •  1
  • Ghita  · 技术社区  · 14 年前

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

    1. 问题是,这种方法在存储库中会导致两次提交:一次提交本地更改(因为我有一个来自服务器'x.out'的旧版本),另一次在我“git add”修改后的'x.out'文件(基本上是“merge branch..”之后提交)

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

    2 回复  |  直到 14 年前
        1
  •  3
  •   simplyharsh    14 年前

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

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

        2
  •  2
  •   Matthew Scharley    14 年前

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

    总之,有一个额外的提交确实没有什么错。只是得到一个像这样的应用程序 gitk gitg