2016-06-01 52 views
7

之後git rebase我已合併衝突來解決。我對A.java的「由我們添加」的含義感到困惑。什麼阻止它被自動添加/上演爲一個像C.java這樣的新文件?git「我們添加的」是什麼意思?

Changes to be committed: 
    (use "git reset HEAD <file>..." to unstage) 

     new file: com/company/C.java 

Unmerged paths: 
    (use "git reset HEAD <file>..." to unstage) 
    (use "git add <file>..." to mark resolution) 

     added by us:  com/company/A.java 
     both modified: com/company/B.java 

Git版本2.5.1.windows.1

+0

這聽起來像是你知道rebase是通過重複櫻桃挑選工作,並且這些挑選櫻桃的操作是在從rebase的'--onto'目標中生長一個匿名分支的時候完成的。因此,「由我們添加」意味着「存在於我們目前獨立的HEAD提交中,與合併基礎相比」。這看起來奇怪/錯誤,這不會自動進行提交。 – torek

+0

你能解開這個謎團嗎? –

回答

0

「混帳重訂」 是笨拙和遲鈍,但哦如此有用。總結一下,我認爲你的情況正在發生變化,「合併衝突」是由「兩個修改」產生的。你必須選擇你想要的mod - 分支上的「com/company/B.java」mod,分支上的mod或者兩者的組合。 「由我們添加:」告訴你「com/company/A.java」是你的分支中的新手,並且是由你重新分配的分支引入的。但由於git實施rebase的方式,「我們」真的是他們的分支。不知道這是否被視爲基礎「合併衝突」,除非你刪除分支上的「com/company/A.java」,這是rebase的目標。在那種情況下,這將是你必須解決的重組「衝突」。爲了解決這種「合併衝突」,記住「我們」真的是他們的分支,「他們」真的是你們的分支。等等。

+0

我應該提到這一點。有時候,「git rebase」只是把一個櫻桃樹選中,而不得不通過執行'git rebase --skip'來跳過它。 – BoiseBaked