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

Does the command "git reset --hard <commit>" remove commit history in another branch?

假设我到目前为止做出了 a, b, c, d 次提交。我目前在 d,我想回到 a

admaster 分支中。 bctemp 分支。

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

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

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

值得一提的一个非常有用的工具是reflog。每次创建提交(或更新分支的提示)时,都会在 reflog 中存储一个条目。您可以通过以下方式查看 reflog 的内容:git reflog.

因此,如果您觉得自己有 "lost" 提交,您可以在 reflog 中搜索它,然后将其挑选回来。