git revert .vs. git reset .vs. git rebase

1. git rervert的工作方式是:将一个老的commit的改动完全找出来,并且在新的tip处运行反操作,最终清除老commit的改动; git revert的应用场景多在对public repo的历史信息反悔;

2. git reset <commit>:则通过重写历史,将commit之后的所有commits都全部丢弃, 正因为这个特性,git reset往往只存在于本地的commit历史整理反悔;一旦做了push动作分享到public repo中,我们不应再reset到那个public commit;

 

如git reset, git rebase,以及git commit -amend,我们都不要对已经push到public的commit试图做修改

 

No one shall rebase a shared branch(只要分支被push到public库中,我们都不要对这个共享分支做rebase)

posted @ 2016-04-07 16:19  世有因果知因求果  阅读(1125)  评论(0编辑  收藏