2014-03-03 161 views
0

我有一個名爲hi.txt的文件的git倉庫。它只有一個分支即主。它的內容是Hi this is it.我承諾此更改,然後使用git checkout -b newb在名爲newb的新分支中檢出它。現在在這個分支我改變了文本Hi this is not it.我也承諾這個代碼。現在我切換到主使用git checkout master,然後合併使用git merge newb分支newb。現在git應該給我一個衝突,因爲兩個分支都有相同文件的不同版本,但它不。它用newb分支覆蓋master分支的內容,因此hi.txt的內容變成Hi this is not it.這是它應該如何工作?git合併分支不給衝突

+0

原來我一直在尋找的是'git的變基newb' – lovesh

回答

1

爲什麼會有衝突?

  • master
  • 創建hi.txt您創建了一個新的分支newb和修改hi.txt
  • 您切換回masternewb所做的更改將被合併爲master

這就是它應該工作的方式。我們沒有使用SVN,呃?如果您在master創建newb後改變hi.txt

事情可能會有所不同:這將導致地方上有兩個分支修改的狀態。

但是您的上述工作流程不會導致任何問題。

有更深的瞭解分支和Git的書合併:
http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging


編輯:根據你comment,你只需要知道哪些文件是masternewb之間的不同。這可以很容易地使用實現

git diff --name-only master newb 
+0

但想混帳告訴我同樣的文件已經在另一個分支中被修改。我怎樣才能做到這一點? – lovesh

+0

@lovesh:將答案放入我的答案中。 – eckes