2012-11-26 106 views
2

我們有一個共同的git倉庫,每個人都使用了,我們有兩個分支git的變基私人特性分支

  • 開發

我有我自己的這個回購叉。我不時從上游回購協議中更改分支中的各個分支,然後將我的功能分支重新分配到dev。

即。

  • 開發
  • 特徵1

命令:

git checkout dev 
git pull upstream dev 
git checkout feature1 
git rebase dev 

現在從時間,當我去把我的優點1支回時間我的叉子我被告知我的分支我s已過時並做了拉動,然後我遇到了合併衝突。

我是和將會是唯一一個在這個fork/branch工作的人,所以我很困惑爲什麼我會遇到這些合併衝突。

即使沒有其他人正在努力工作,它是重新綁定推送分支的問題嗎?什麼是解決此問題的方法或更好的工作流程

回答

2

發生這種情況是因爲您要重定義您的更改。一旦你完成了你的分支不再包含與之前相同的提交,它就會包含反映相同(或類似更改)的新提交。當你嘗試推送這些更改時,git注意到目標存儲庫上分支當前提交的提交不是你試圖設置爲該分支新提示的提交的祖先。

您需要使用git push -f來強制推送發生,即使它不是快進。但是,當你這樣做時,你需要小心,你並沒有刪除該分支的其他更改。如果該分支只在您的單個存儲庫中進行過修改,那麼在該分支上使用-f應該沒問題,但是您一定要小心不要使用該標誌推送到masterdev分支。