2014-03-18 45 views
0

我正在與我的團隊一起工作在使用git的bitbucket上的項目中。在推送之前更新本地git分支

  1. 我先克隆回購。 =>git克隆
  2. 我想添加一個新文件。 =>git的添加
  3. 我承諾我的新文件=>git的承諾
  4. 如果我做了git的狀態,我看到我的分支是一個犯領先。
  5. 我的團隊的一些成員也進行了更改,但沒有添加與我的新文件的鏈接。 我提交=>的git拉出身主 =>這個自動觸發合併(?!)
  6. 如果我做了git的狀態,我現在看到我的分支是由提前2個提交之前更新我的項目。
  7. 我把我的變化=>混帳推起源主 =>我的2個提交被推

我不明白的是爲什麼通過git拉觸發合併?這裏沒有必要。

我想要的只是提交一個新文件,爲什麼我最終有2次提交?

在此先感謝。

回答

1

原因是您和您的同事對同一基地進行了更改。所以他們需要合併。如果你使用了rebase而不是merge,你可以消除額外的提交。如果你在變更之前讓你的同事變更,然後再申請你的變更,Rebase會有效果。

+0

好的,所以你建議下次做git rebase而不是git pull,對嗎? – rico

+0

pull只是一個獲取+合併的快捷方式。它可以更改爲獲取+重新分配。但是,rebase在您的具體情況下可以很好地工作,但在其他情況下可能會變得更加複雜。我個人更喜歡合併,並且在額外提交時看到沒有太大的傷害。 Definitelly不要重組已經推動的變更 - 這會給你的隊友帶來麻煩。 –

+1

對於像'git pull --rebase'這樣的小提交應該很好。當然,重組可能會發生衝突,並且難以解決。爲了添加大型功能從主題分支來看,合併通常會更好,並且有一個提交來顯示它已被集成到當前分支中。 – Morphit

相關問題