2015-07-20 83 views
1

我有本地un-push提交。其他人已将代码推送到自从我拉出后重新启动的回购。我正常推拉是否安全?当其他人推送重新绑定的代码时合并?

+1

嗯,这取决于。其他人是否推送了您在当地已有的已推送分行的重新分类代码? – ckruczek

+0

您可以向我们展示您的本地和远程分支在可疑rebase之后的状态吗? –

+0

@ckruczek是的,这是正确的。 – Evans

回答

1

如果远程回购具有改变历史(因为用力一底垫推),这意味着你的回购,一个git取后,看起来就像这样:

 Z--Z--Z (new rebased origin/master) 
    /
x--x--x--x--y--y (master with local unpushed commits 'y') 
      \ 
      X--X (old origin/master) 

的目标是记住你的本地提交,重新设置新的原点/主你的主人,并衍合本地提交:

git checkout master 
git fetch 
git branch tmp 
git reset --hard origin/master 



x--x--x--Z--Z--Z (master, reset to new rebased origin/master) 
     \ 
     x--y--y (tmp with local unpushed commits 'y') 

现在变基:

git checkout tmp 
git rebase origin/master 
git checkout master 
git merge tmp 
git branch -d tmp 

x--x--x--Z--Z--Z--x'--y'--y' (master, on top of origin/master) 

然后,你可以推/拉正常。

0

你需要拉,然后做合并。之后你推。 只有在本地文件最新时才能推送。

1

Git会阻止你把你的文件,它会让你知道你的文件是不是最新的,然后你可以做

git pull --rebase <remote> <branch> 

您可能必须解决冲突之前,你可以把你的代码