SourceTree 重置提交、合并、撤销、回滚
创始人
2024-05-30 22:29:54
  • SourceTree重置当前分支到此次提交

使用场景:

  1. 已提交未推送的修改撤销、想把某一次的错误修改全部撤销

  1. 当前发布代码有bug需要切到上次提交发布版本

Git中的HEAD解释

# 使用最新一次提交重制暂存区

git reset HEAD -- filename

# 使用最新一次提交重制暂存区和工作区

git reset --hard HEAD

# 将 commit log 回滚一次 暂存区和工作区代码不变

git reset --soft HEAD~1

  • 合并模式说明:

软合并

软合并是指将此次提交回滚到指定提交位置,但这个过程中会将修改过的文件暂存到暂存区

混合合并

混合合并是指将此次提交回滚到指定的位置,但这个过程中不会将修改过的文件暂存到暂存区,而是将修改过的文件存放在未暂存文件区

强行合并

强行合并是指将此次提交回滚到指定的位置,但这个过程中将直接丢弃之前修改的所有文件(因此在选取此种合并时需要考虑清楚,避免一些不必要的麻烦)。

  1. 强行合并

执行完成后,此时会提示有新的更新需要拉取,不要拉取,拉取后又会把之前的拉取到本地,应该执行commit,但又无法再souceTree执行,此时借助终端。

打开终端,cd到项目目录,在当前分支执行git push -f 即可

强推后Git提交会舍弃掉重置之前的提交记录(44444这次提交会被冲掉,最新的提交会变成333这次提交)

  • 如何撤销

强合并后(会有落后xx个版本提示,因为代码已经重置到此次提交,并且拉取按钮那会有更新提示)如果想撤销本次合并,直接点击拉取然后确定即可

  1. 混合合并

  1. 软合并

另外说下回滚和重置提交的区别:

1、回滚——是指将改动的代码提交到本地仓库,但未推送到远端仓库的时候

也就是说刚刚提交代码,没有推送,这时候你发现提交错了,只需要选择本地分支你刚提交的节点上,右击回滚一下即可,这时候本地分支会出现“Revert”的字样,推送按钮会出现提示推送的角标,这时候你可以直接推送一下,远端也不会有变化,只不过是推送一些日志记录或者其他与代码无关的,或者也可以提交好正确的代码后,一起推送。

还有一种情况就是回滚后发现没有错误...(贼尬)...这时候刚写的代码已经没了...那就索性再回滚一次,也就是说撤销刚才的回滚操作,这时候本地分支节点上会出现“Revert 'Revert '”的字样...推送按钮也会出现提示推送的角标,这时候可以仿照上一步后半部分操作。

2、重置当前分支到此次提交——是指将改动的代码提交到本地仓库后,并已推送到远端仓库的时候

相关内容

热门资讯

利欧股份停牌 天晟新材、志特新...   1月15日,GEO概念热门股利欧股份(002131)宣布将停牌核查,另有天晟新材(300169)...
市政协举办2026年第一期“同... 金山网讯     今年是茅以升诞辰130周年。1月15日,市政协举办2026年第一期“同心讲堂”,深...
银行财富管理架构变阵 抢滩30... 财富管理市场升温之际,银行业正通过竞相整合财富管理部门,加速推进战略升级,角逐这片潜力十足的市场。据...
深圳140亿独角兽 冲刺“国产... 萧启阳出生于中国香港,24岁就拿到了斯坦福大学的博士,人工智能之父Marvin Minsky还为他的...
广州住房公积金近期调整缴存基数... 本文转自【广州日报】;1月15日,记者从广州住房公积金管理中心获悉,近日,有不法分子假冒该中心名义发...