2011-11-29 50 views
2

我做了力GIT拉不commiting

git pull 

,我得到合并冲突。我手动解决合并冲突并再次发出拉,但Git拒绝这样做,因为Git仍然认为存在合并冲突。

有没有办法强制Git再次执行拉动操作,并使其从头部查找“diffs”(如果有的话)(不需要提交我所做的更改)?

回答

3

为什么在第一次解决合并冲突之后发布第二个git pull?这是没有意义的。修复合并冲突后,您需要git commit,它将创建将远程分支与本地分支合并(并包括您的冲突解决方案)的合并提交。这里

+0

同意。我想知道如何确保不存在更多的合并冲突。 git pull的“已经最新”消息非常令人放心。 – Jean

+0

@alertjean:只需运行'git status'。它会告诉你所有悬而未决的冲突。如果你还有冲突,'git commit'不会提交。另外,如果你使用'git mergetool',它会运行你所有的冲突。 –

0

的过程是:

git pull 

你得到的冲突的通知。你可以使用任何你使用的东西(尽管希望你已经连接了本地需要使用git difftool的所有东西......

冲突解决后,你现在有一个工作目录,其中包含远程更改和本地变化。这是唯一不同的是,git的不能做合并自身,需要你的帮助。

现在

git commit 

建立在你的本地仓库的commit是总和引入的远程更改和您本地的更改。然后您

git push 

发布您的更改,很好地合并,与远程头。

1

您必须在解决冲突并将其推回后提交更改。通常而不是使用git pull,我做了git fetch,然后是git merge,然后是git commit。这只会获取上游更改,允许您手动合并和解决冲突,然后在本地提交它们。准备就绪后,请将更改回推到上游。

如果你使用这个工作流程,你可以:

git fetch 
git merge 
#resolve conflicts 
git commit 
git fetch #check for new changes 
#eventually 
git push 
0

成瘾,后拉,合并,并承诺,你也可以尝试(假设你的遥控器是“出身”,当然)

git remote show origin 

对我来说这非常令人放心!