Revert之后的代码如何找回
代码丢失问题:
我们的发布分支是多个开发开发完成后统一合并到发布分支去发布的,由于一个开发的分支有问题,当时就把他的分支从发布分支上revert掉了,结果之后的发布过程中,他的分支只要合并到发布分支就会丢掉revert的代码,这里就需要理解下revert的机制。
git的版本管理机制
使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支。有一个HEAD指针指向当前分支(只有一个分支的情况下会指向master,而master是指向最新提交)。每个版本都会有自己的版本信息,如特有的版本号、版本名等。如下图,假设只有一个分支:
conver之后找回
现在我们在版本3的时候执行git revert操作,convert掉commit2的操作,然后进入新的版本4,这时候commit2的提交被revert掉,此后再去提交commit2的提交会因为版本低于最新的版本而提交失败