如何还原上一次提交中的部分更改

时间:2019-11-14 21:51:32

标签: git

在上一个git commit中,我添加了一个新文件(简称为C),并对文件A和文件B进行了一些更改。

是否可以删除文件C并通过git commit --amend恢复对文件A的更改?

2 个答案:

答案 0 :(得分:2)

像您这样的声音大多想还原提交,但将更改保留在一个文件中。

首先,执行git还原,但保留更改:

git revert -n HEAD

然后取消撤消您不想还原的更改(文件B)

git reset HEAD -- B

并丢弃未分段的更改:

git checkout -- .

这应该保留分阶段的更改,以将更改还原到文件A和C。然后,您可以根据需要进行提交(如果尚未将其提交到其他位置,则可以进行新提交或修改以前的提交)。

git revert docs

答案 1 :(得分:1)

如果未按下

您可以重置为上一次提交,然后尝试再次执行您的实际意图。

git reset HEAD~1
git add A B
git commit ...

如果被按下

由于您询问的是git commit --amend,因此我假设所做的更改仅是本地的。如果更改已经在远程存储库中(也已推送),则最好在单独的提交中删除C

git rm C 
git commit -m "Removing C"
相关问题