首页 > 解决方案 > 吉特。软重置和提交后将本地文件同步到新提交

问题描述

假设我们有三个提交,并且 HEAD 指向提交 C。

A-B-(C<--HEAD)

我在 B 上进行软重置:

$ git reset --soft B

现在 HEAD 指向提交 B 并且提交 C 被删除

A-(B<--HEAD)

并且 index 仍然匹配 C。所以我们决定重新提交。

$ git commit -m "C again"
$ git log
C'
B
A

我的问题是,由于我们做了软重置,本地文件没有更新。什么 git 命令用于将本地文件“同步”到新的提交 C'?我的一个想法是git checkout C'

另一个问题是在软复位和提交之后 HEAD 指向哪里?

非常感谢!

标签: gitresetcheckout

解决方案


当您运行时git reset --soft somewhere, HEAD 指向somewhere。如果你在一个分支上工作,那么这个分支被设置为指向那个somewhere(并且 HEAD 指向这个分支)。如果您正在处理分离的 HEAD,则 HEAD 指向somewhere您提供的修订版。

现在,关于文件....鉴于您在完成后直接创建了修订版git reset --soft(对吗?),那么 C' 和 C 的文件完全相同。检查与git diff C


推荐阅读