与git cherry-pick相反?

and*_*ieb 18 git

是否与git cherry-pick有效相反?例如,不久之前,由于业务流程尚未准备就绪,我不得不进行一些临时更改以禁用一组功能.现在该业务流程已准备就绪,我想简单地删除提交及其效果.虽然我当然可以只看一下这些提交的差异并找出所有需要完成的工作,但是如果不重新设置并且丢失之后的所有内容,那么知道历史记录中的提交是否可以取消将会很有趣.他们.

Rya*_*ndy 26

git revert不是相反的git cherry-pick. git rebase -i是.

git revert添加一个新提交,删除一个或多个旧提交所做的更改.它不会删除原始提交.

git rebase -i将显示当前提交的提交列表,返回上一个分支上的最后一个提交.然后,您可以编辑,重新排列,更改提交消息,甚至可以从此列表中删除提交.

请记住,如果您已经推送了要删除的提交,则需要与队友一起删除它们,因为一旦您使用已删除的提交推送新历史记录,他们就必须进行调整.

  • "`git revert`添加了一个新的提交,它删除了一个或多个旧提交所做的更改." 这听起来*与'git cherry-pick`相反.也许"反向"比"对立"更好. (5认同)
  • 如果`git cherry-pick`添加了一个提交,那么相反的是删除该提交.不要添加_another_ commit. (4认同)
  • 很高兴知道!虽然rebase -i从技术上回答了这个问题,并且从长远来看可能会更干净,但是git revert可以满足我表达的问题。 (2认同)
  • @Kyralessa`a ^ b = c`的逆是什么?是`log(c,a)`还是root(c,b)吗?(可能取决于哪个“属性”对您来说最重要) (2认同)
  • 返回Git ...这两个建议的命令都可以消除现有提交的影响。从Git用户的角度来看,`git rebase -i`在可以重新建立基础的分支上非常有用,而`git revert`在不能进行分支的分支上非常有用。由于没有在问题中说明实际情况,因此应同时提及两者。 (2认同)

wRA*_*RAR 14

撤消另一次提交所做更改的自动方法是git revert.

  • 这不是相反的使用`git rebase -i`而是@Kyralessa的答案解释 (3认同)