在上一个git commit
中,我添加了一个新文件(简称为C),并对文件A和文件B进行了一些更改。
是否可以删除文件C并通过git commit --amend
恢复对文件A的更改?
答案 0 :(得分:2)
像您这样的声音大多想还原提交,但将更改保留在一个文件中。
首先,执行git还原,但保留更改:
git revert -n HEAD
然后取消撤消您不想还原的更改(文件B)
git reset HEAD -- B
并丢弃未分段的更改:
git checkout -- .
这应该保留分阶段的更改,以将更改还原到文件A和C。然后,您可以根据需要进行提交(如果尚未将其提交到其他位置,则可以进行新提交或修改以前的提交)。
答案 1 :(得分:1)
您可以重置为上一次提交,然后尝试再次执行您的实际意图。
git reset HEAD~1
git add A B
git commit ...
由于您询问的是git commit --amend
,因此我假设所做的更改仅是本地的。如果更改已经在远程存储库中(也已推送),则最好在单独的提交中删除C
。
git rm C
git commit -m "Removing C"