我的提交历史如下所示:
A - B - C - D - E
\ /
X - Y
分支ABCDE
是master
,分支XY
是其他分支(例如test
),并且D
是合并提交。HEAD
现在是在E
。我需要在不使用, onlyA
的假设下将我的工作目录返回到 的状态。据我所知,在这种情况下,这可以通过两种方式完成:git reset --hard <SHA1(A)>
git revert
第一种方式:
git revert --no-commit <SHA1(E)>
git revert -m 1 --no-commit <SHA1(D)>
git revert --no-commit <SHA1(C)>
git revert --no-commit <SHA1(B)>
git commit -m "Reverted to state A"
第二种方式:
git revert --no-commit <SHA1(E)>
git revert -m 2 --no-commit <SHA1(D)>
git revert --no-commit <SHA1(Y)>
git revert --no-commit <SHA1(X)>
git revert --no-commit <SHA1(B)>
git commit -m "Reverted to state A"
一个绊脚石是git revert -m
。在这个例子中,我假设1
允许沿着分支继续恢复链master
,并且2
- 沿着分支test
。
问题是:我怎么知道哪个数字代表哪个分支?