Git.在软重置和提交后,将本地文件同步到新的提交



假设我们有三个提交,HEAD指向提交C.

A-B-(C<--HEAD)

我在B:上进行软重置

$ git reset --soft B

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

A-(B<--HEAD)

指数仍然和C匹配,所以我们决定重新开始。

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

我的问题是,由于我们已经做了软重置,本地文件不会更新。使用哪个git命令将本地文件"同步"到新提交的C'?我的一个想法是git checkout C'

另一个问题是在软重置和提交之后,HEAD指向哪里?

非常感谢!

运行git reset --soft somewhere时,HEAD指向somewhere。如果您正在处理一个分支,那么该分支将设置为指向该somewhere(HEAD指向该分支(。如果您正在处理分离的HEAD,那么HEAD将指向您提供的somewhere的修订版。

现在,关于文件。。。。假设您在执行git reset --soft之后直接创建了修订(对吗?(,则C'和C的文件完全相同。与git diff C核对。

假设在软重置之后,我们更改了文件(比如文件f(的内容。

然后,如果我们提交C',我已经检查了文件f的内容不会随着该提交而改变。

即使我们签出HEAD,文件f的内容也不会改变。

唯一能将文件f的内容更改为HEAD(即C'(的内容的是,如果我们进行硬重置:git reset --hard HEAD

最新更新