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

问题描述 投票:0回答:2

假设我们有三个提交,并且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 checkout
2个回答
1
投票

[当您运行git reset --soft somewhere时,HEAD指向somewhere。如果您在分支上工作,则将分支设置为指向该somewhere(而HEAD指向该分支)。如果您正在处理分离的HEAD,则HEAD指向您提供的somewhere的修订版。

现在,关于文件...。假设您是在完成git reset --soft之后创建修订的(是吗?),那么C'和C的文件是完全相同的。用git diff C检查。


-1
投票

在软重置后说,我们更改文件(例如文件f)的内容。

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

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

只有将文件f的内容更改为HEAD的内容(即C'的情况是,如果我们执行硬重置:git reset --hard HEAD

© www.soinside.com 2019 - 2024. All rights reserved.