drs*_*drs 5 git git-rebase git-add
我想返回并删除两次提交的提交的几个部分。我希望我可以做git rebase -i HEAD^^,edit提交,然后git add --patch <file>在文件上使用。但是,在 rebase 期间,git reset HEAD <file>似乎不起作用,因为当我尝试时git add --patch <file>,它说没有任何变化。
问题是,在交互式 rebase 期间HEAD不指向先前的提交,因此git reset HEAD不执行任何操作。
相反,使用找到前一次提交的哈希,git log然后运行git reset <hash> <file>,然后是git add --patch <file>.
然后,您可以运行git checkout -- <file>以放弃其余更改。
在变基期间,HEAD指向已添加到基础上的最新提交。所以git reset head两次rebase操作之间没有任何作用。
您需要先重置为 1 次提交git reset HEAD^,然后(以交互方式)添加所需的更改。
$ git rebase -i ... # change a commit to "edit"
$ git reset HEAD^
$ git add --patch
$ git commit
Run Code Online (Sandbox Code Playgroud)
可能会丢弃所有未提交的剩余更改:
$ git checkout .
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
481 次 |
| 最近记录: |