我碰巧遇到这样一种情况:合并可以有效地回滚提交,而不会以任何简单的方式跟踪任何日志,我知道:
* fcfea4c merge code.txt:1 other.txt:a
|\
| * b0f6762 conflict code.txt:1 other.txt:b
* | 9fe5de2 other code.txt:2 other.txt:a
|/
* e0d9522 previous code.txt:1
* 7a466e5 init touch code.txt
左侧分支为master
,右侧分支为feature
,在fcfea4c
合并时,文件other.txt存在冲突(code.txt应自动合并为git),如果我在master上运行git checkout HEAD~ .
(e0d9522先前提交)然后结束提交。git log code.txt
将只显示init(7a466e5)
和previous(e0d9522)
提交以及{{1}提交丢失了。那么有一种简单的方法可以跟踪other(9fe5de2)
(显示code.txt
和other
提交)的情况吗?
答案 0 :(得分:1)
你应该尝试:
git checkout --ours -- others.txt
这应保留合并的历史记录,同时保留您所追求的内容。
答案 1 :(得分:1)
git log --first-parent --graph --all -- code.txt
就是答案,--first-parent
实际上意味着将合并视为该特定分支(Follow only the first parent commit upon seeing a merge commit.
)上的正常提交。