前几天发生一个事情:A和B都从git服务端拉取了最新的代码版本1.1,然后A发现有一些问题进行了代码重置,回退到了上一个版本1.0,此时B准备提交,然后拉取了最新的版本,此时B的本地就出现了两个版本的差异,并且B的本地有1.1版本的提交代码,此时如果B执行推送的话,会自动把差异的代码又会重新提交到git服务端。但是既然服务端回退到了1.0,那么1.0到1.1之间的差异就不要了。所以这时候需要B把这中间的差异给回退掉。
同时我们经常也会出现把代码提交到了本地,但是没有进行push,此时如果不想要某个提交了怎么办?这里我们演示一下:
一、修改代码
这里我们测试修改下本地的代码,让sourcetree进行提交的时候可以有提交的文件
二、本地提交
这里我们使用source进行本地提交
这里直接进行暂存提交即可
提交之后可以看到sourcetree的推送出现了数字提醒:
此时代表的就是我们把代码提交到了本地,但是没有推送给git服务端。
三、撤销本地提交
接下来我们就撤销本地的提交,首先点击sourcetrr的命令行模式,进入命令行:
然后执行如下的命令:
git reset --soft HEAD^
执行完毕之后,回到sourcetree,可以看到刚才本地提交的文件已经回到了已暂存区域:
并且可以看到推送的数字提醒仍在:
此时我们重新点击下拉取,按钮,即可看到推送的数字提醒消失掉了
就这样,我们可以取消所有的暂存,重新进行修改,这样子之前本地的提交就没了。是不是很方便?
还没有评论,来说两句吧...