如何在git中交互式地取消特定的大块头?

And*_*imm 96 git staging

在git中,如果我的索引中存在来自同一文件的几个帅哥,我怎么能以交互方式取消其中一个呢?

是否可以替换整个文件,然后重新暂存我想要保留的数据,或者手动撤消对工作副本的更改,然后以交互方式添加这些撤消的更改?

Aas*_*set 124

尝试git reset --patch filename; git add --patch根据文件,这应该与之相反.简短形式-p也适用于这两个命令.

  • 在这种情况下(并假设由于某种原因你不能升级),我建议你使用`git stash save --keep-index`来保存和重置你当前的工作副本更改.然后,您可以重置文件并撤消不需要的更改.如果先将文件复制到某个临时位置,则可以使用`diff`保存撤消的更改.然后,您可以再次添加文件(不需要交互式添加,因为您隐藏了您不感兴趣的其他更改).使用`git stash pop`来取回旧的更改,使用`diff`来应用你解除的更改.相当麻烦... :-( (2认同)