SourceTree 重置提交、合并、撤销、回滚
创始人
2024-05-30 21:40:42
  • 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、重置当前分支到此次提交——是指将改动的代码提交到本地仓库后,并已推送到远端仓库的时候

相关内容

热门资讯

最新或2023(历届)贺州产假... 省份 婚假 晚婚假 产假 陪产假(护理假) 广西 3天 原12天取消 148天 25天  上表中的1...
最新或2023(历届)百色产假... 省份 婚假 晚婚假 产假 陪产假(护理假) 广西 3天 原12天取消 148天 25天  上表中的1...
最新或2023(历届)玉林产假... 省份 婚假 晚婚假 产假 陪产假(护理假) 广西 3天 原12天取消 148天 25天  上表中的1...
最新或2023(历届)贵港产假... 省份 婚假 晚婚假 产假 陪产假(护理假) 广西 3天 原12天取消 148天 25天  上表中的1...
最新或2023(历届)钦州产假... 省份 婚假 晚婚假 产假 陪产假(护理假) 广西 3天 原12天取消 148天 25天  上表中的1...