如何在git中反转提交的特定块?

dki*_*zer 30 git git-workflow

我想知道是否有办法快速反转提交的特定块.

我可以生成diff两个提交之间或HEAD看到差异.

我如何反转其中一个(或更好的,一组特定的帅哥)?

cdh*_*wie 40

git checkout -p $REF -- path/to/file
Run Code Online (Sandbox Code Playgroud)

哪个$REF是引用名称或提交ID,用于指定要从中获取文件状态的提交.例如,要有选择地还原在上次提交中所做的更改,请使用HEAD^.

  • 更确切地说,这将允许您有选择地检查上一次提交中的内容版本; 您当前提交和工作树之间的更改也将被丢弃. (4认同)
  • 没问题.请注意,很多git提交(`add`,`checkout`,`reset`等)将以这种方式获取`-p`选项,并允许您选择要操作的帅哥.当同一个文件中的两个帅哥进入不同的提交时,这非常方便. (4认同)
  • 是的,我以前这样做过。但这会恢复所有更改吗?我只想恢复部分更改。 (2认同)
  • @DKinzer:不,`-p`选项将允许您交互式地选择大块以应用于您的工作树。 (2认同)