2009-09-30 23 views
5

我刪除了我的工作目錄中的文件。然後我做一個'混帳'。 我團隊中的另一個人修改相同的文件並將'git push'添加到HEAD。如何在git rebase中的「合併衝突」期間看到更改

所以,當我做一個「git的重訂」,我得到一個合併衝突像「衝突的git(刪除)」

我的問題是我怎麼能找到什麼樣的變化做了另外一個人的球隊取得到我刪除的文件?

謝謝。

回答

7

當存在合併過程中或變基衝突,不同版本的文件都可以從:

  • 各個分支:

    $ git show HEAD:path/to/file 
    $ git show branch:path/to/file 
    
  • 作爲階段1,2,3指數:

    $ git ls-files --unmerged 
    # ... 
    $ git show :1:path/to/file 
    $ git show :2:path/to/file 
    

也有工具,如「git diff --cc」和「git log --merge」。

有關詳細信息,請參閱文檔。

+0

謝謝。 是否有一個允許我在跟蹤分支的HEAD中獲取整個文件的提交?我正在考慮做'git show:2:path/to/file> myFile',但這可能會改變格式或換行符。有沒有更好的辦法? – n179911 2009-09-30 16:42:37

+0

我想可以使用低級別的''git cat-file -p:2:path/to/file> myFile'「。 – 2009-09-30 20:14:10

4

Git將存儲庫中上游分支狀態的副本保留爲「遠程跟蹤」分支。如果您執行git branch -r,您將看到所有遠程分支的列表。選擇符合你的工作分支中的一個,而這樣做:

git diff HEAD^..origin/master 

這將顯示你的頭父母之間的變化(假設你刪除了最後一次提交,根據需要修改)和上游分支的當前狀態。

0

從您上次已知的良好拉動創建另一個分支。然後從你的朋友那裏拉一個新的分支。然後,您將能夠調用新分支的日誌,然後知道如何將兩個分支合併爲一個分支,然後推送給他。

我們正常的開發設置是有一個GIT存儲庫,每個人都可以從中重新啓動。我建議重新裝訂,而不是從中央存儲庫中提取。這是因爲如果您從存儲庫中取出然後重新綁定到同一個存儲庫,那麼您發送到存儲庫的提交將與您當前的分支發生衝突。如果你不得不使用拉或推,我們通常會發現它更容易,而不是使用補丁。例如:

例如:永遠不要從您從中拉出的存儲庫重新綁定。