簡體   English   中英

合並沖突解決期間刪除的文件未顯示在合並提交中

[英]File deleted during merge conflict resolving is not shown on merge commit

在 git 上合並兩個分支時遇到了奇怪的問題。 文件在合並期間被刪除,即使我找不到文件被刪除的提交。 經過調查,我確實發現文件確實在其中一個合並提交中消失了,即使提交沒有列出對文件的任何更改。 這一定是因為開發人員在解決合並沖突時刪除了該文件。 為了證明這一點,我創建了一個 git repo 並使用以下命令進行了測試:

git init
echo foo >> first_file
git add .
git commit -am "add first file"
git checkout -b topic_branch
echo bar >> second_file
echo bar >> first_file
git add .
git commit -am "add second file and change the first"
git checkout master
echo conflict >> first_file
git commit -am "create conflict"
git merge topic_branch 
rm second_file 
echo conflict >> first_file
git add first_file 
git commit
git show

如您所見,我在兩個分支上創建了兩個文件。 一個故意在 topic_branch 上創建合並沖突和第二個文件的文件。 我在解決合並沖突時刪除了 second_file。 現在我不明白的是,為什么git show沒有提到刪除 second_file 的任何內容。 有沒有辦法查看合並時實際發生了什么?

git show顯示合並提交時,它默認使用組合差異

有幾種不同的組合差異格式,但它們都共享一個功能(或錯誤,取決於您的想法):它們從不顯示合並版本與至少一個父版本完全匹配的任何文件 由於文件的一個父版本是“沒有這樣的文件”,而文件的合並版本是“沒有這樣的文件”,並且這些匹配,因此git show不顯示此文件的任何內容。

要使git show顯示此文件的某些內容,請使用git show -m使其為每個父提交生成一個差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM