2015-07-20 25 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> 

您可能必須解決衝突之前,你可以把你的代碼

相關問題