命令“ git reset --hard <commit>”是否会删除另一个分支中的提交历史记录?

时间:2018-08-15 17:41:48

标签: git git-reset

比方说,到目前为止,我已经做出了a, b, c, d次提交。我目前在d,现在想回到a

admaster分支中。 bctemp分支。

在这种情况下,如果我运行git reset --hard <a's commit>,我会丢失提交bc的原因,因为它们是在a之后进行的吗?即使他们在另一个分支中,这是真的吗?

1 个答案:

答案 0 :(得分:5)

如果您在temp分支上运行reset命令,则不会更改另一个分支(master)的提交历史记录。

reset命令实际上永远不会删除提交或更改您当前尚未检出的分支的内容。只是简单地移动HEAD指针。

reflog是值得一提的非常有用的工具。每次创建提交(或更新分支的尖端)时,条目都会存储在reflog中。您可以使用git reflog查看reflog的内容。

因此,如果您觉得自己已经“丢失”了提交,则可以在reflog中进行搜索,然后将其重新挑选。