如何在交互式重新基址期间执行git添加补丁?
我想返回并删除一个提交的几个部分,即返回两次提交。我希望我可以执行如何在交互式重新基址期间执行git添加补丁?,git,git-rebase,git-add,Git,Git Rebase,Git Add,我想返回并删除一个提交的几个部分,即返回两次提交。我希望我可以执行git-rebase-I HEAD ^,编辑提交,然后对文件使用git-add--patch。但是,在重新基址期间,git reset HEAD似乎不起作用,因为当我尝试git add--patch时,它说没有任何变化。问题是,在交互式重新基址期间,HEAD没有指向上一次提交,因此git reset HEAD没有做任何事情 相反,使用git log查找上一次提交的哈希,然后运行git reset,然后运行git add--patc
git-rebase-I HEAD ^
,编辑提交,然后对文件使用git-add--patch
。但是,在重新基址期间,git reset HEAD
似乎不起作用,因为当我尝试git add--patch
时,它说没有任何变化。问题是,在交互式重新基址期间,HEAD
没有指向上一次提交,因此git reset HEAD
没有做任何事情
相反,使用git log
查找上一次提交的哈希,然后运行git reset
,然后运行git add--patch
然后,您可以运行git checkout--
放弃其余更改。在rebase期间HEAD
指向已添加到基础上的最新提交。所以,在两个重基操作之间,git重置头的操作没有任何作用
您需要在使用git reset HEAD^之前重置为1提交,然后(以交互方式)添加所需的更改
$ git rebase -i ... # change a commit to "edit"
$ git reset HEAD^
$ git add --patch
$ git commit
可能会放弃所有未提交的剩余更改:
$ git checkout .
令人惊讶的是,这个问题/答案没有获得更多的选票?HEAD从不指向上一个提交,而是始终指向最新的提交。使用修订哈希可以工作,但不是必需的。