SourceTree中“提交回滚”和“重置到此次提交”的区别

SourceTree中“提交回滚”和“重置到此次提交”的区别

    • 一、提交回滚
    • 二、重置提交
      • 1.软合并-保存所有本地改动(推荐)
      • 2.混合合并-保存工作副本但重置索引
      • 3.强行合并-丢弃所有工作副本改动
    • 三、强制推送开启步骤
    • 写在最后

用一个例子来说明:

如:线上分支提交记录 1、2、3
目的需求:“提交回滚”到提交2、或重置到提交“2”的区别

一、提交回滚

若只需要撤销2的提交,1、3保留,则点击记录2右键“提交回滚”,则本地的2被回滚,推送后线上分支也回滚了。(恢复刚刚到操作:点击“提交回滚”后的右键再次“提交回滚”,则撤销了刚刚的回滚,即1、2、3都在)

注意: 提交回滚时,2的提交记录即2的文件状态,本地代码不存在了(当时改的代码已经没了),若需要保留2的记录,需提前保存或重新拉取分支。

二、重置提交

若点击提交记录2右键“重置到本次提交”,有3钟选择方案:
SourceTree中“提交回滚”和“重置到此次提交”的区别_第1张图片
·

1.软合并-保存所有本地改动(推荐)

文件回滚到以前的版本,此文件更改是将文件回滚回去的反向更改,最后将这些文件提交就回到了提交2的状态。
这种回滚方式是安全的,文件会根据之前提交的变化更改文件回到原来的状态,会在版本树上留下记录,即所有的更改都有记录可查。
·

2.混合合并-保存工作副本但重置索引

(此时显示有文件可以从远程拉取下来,如果拉取下来就会像什么都没有发生一样,前面的重置操作会被抵消掉)

该重置会将本地代码回到2提交完成后的状态,即3的提交记录-文件状态(被修改的)保留在本地等待提交。
如果后悔重置可以将其重新提交,不过会被整合成一次提交,如果不需要全部提交则根据需求选择重置或者移除已修改的文件,达到部分代码取消提交的需求(需谨慎!!!)。

注意: 该更改后的提交推送到线上分支需要勾选“强制推送”,才能将线上代码和更改后的本地代码一样。
·

3.强行合并-丢弃所有工作副本改动

高风险的操作: 选择“强行合并-丢弃所有工作副本改动”,此时本地仓库的改动已删掉,没有文件状态,本地仓库和“2”推送之前的版本是一样的,只需要强制推送当前本地仓库到远程即可
·

三、强制推送开启步骤

SourceTree MAC中文版本没有“强制推送”选项,需要将语言更改为英文后重启SourceTree

步骤:偏好设置-高级-勾选允许强制推送

然后在推送时就有“强制推送”的选项了,建议用完关闭“允许强制推送”选项。
强行推送有风险!!!
·

写在最后

此文章为个人开发时记录,有时时间有限,无法深入研究,若看到此文章后有其他见解或解决方式,欢迎留言交流

————————————————
版权声明:转载请附上原文出处链接及本声明。
原文链接:
https://blog.csdn.net/weixin_44158429/article/details/128145240

你可能感兴趣的:(开发经验记录,github,android,java)