SourceTree 重置提交、合并、撤销、回滚

2023-11-07

  • 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、重置当前分支到此次提交——是指将改动的代码提交到本地仓库后,并已推送到远端仓库的时候

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SourceTree 重置提交、合并、撤销、回滚 的相关文章

  • Git 2.2.x 无缘无故更新旧包文件的时间戳

    Git 2 2 0 和 2 2 1 似乎修改了旧的时间戳 git objects pack pack pack偶尔会无缘无故地文件 它只是改变时间戳 内容是相同的 调试这一点很困难 因为它似乎很少进行更改 我在 2 2 0 之前的任何 Gi
  • git reflog 和 log 有什么区别?

    手册页说 log 显示提交日志 reflog 管理 reflog 信息 reflog 信息到底是什么 它有哪些日志没有的信息 日志看起来更详细 git log显示当前的 HEAD 及其祖先 也就是说 它打印提交 HEAD 指向的提交 然后打
  • 为什么 Git 无法将文件更改与修改后的父级/主控合并?

    我有一个文件 里面只有一行 我创建一个分支并向同一文件添加第二行 保存并提交到分支 我切换回主人 并向文件中添加不同的第二行 保存并提交给master 现在总共有 3 条独特的线路 如果我现在尝试将分支合并回主分支 则会遇到合并冲突 为什么
  • Git 更改丢失 - 为什么?

    我们的开发团队正在使用 git 最近我们至少两次丢失了文件更改 我们正在使用私人 Github 存储库 在当前情况下 我们可以返回 Github 上的日志并查看我对文件所做的一些更新 后来 另一位团队成员更改了文件的不同部分 它似乎破坏了我
  • 使用 gitignore 嵌套存储库。

    我想嵌套 2 个 git 存储库 我一直在阅读子模块 有一段时间我认为它很棒 我想我可能想要其他东西 这是我的情况 首先 我想我应该提到我的所有服务器都托管网站 并以 staging domain com 和 domain com 实时 模
  • Git 无法识别重命名和修改的包文件

    我有一个名为的java文件package old myfile java 我已经通过 git 提交了这个文件 然后我将我的包重命名为new所以我的文件在package new myfile java 我现在想将此文件重命名 和内容更改 提交
  • git 2.32 git push -u origin master 没有任何反应

    I ve starting to use git github and I m stucked on how to push my codes to github I m following some tutorials and when
  • git merge 冲突的不同场景

    我试图了解 git 合并后可能发生 git 冲突的情况以及如何避免它们 我创建了一个 git 存储库并向其中添加了一个文本文件 我已将 1 添加到文本文件中并将其提交给 master 我已经从 master 创建了一个新分支 分支 2 并将
  • 是否可以检测 http git 远程是智能还是愚蠢?

    我正在我的应用程序中实现一个选项来使用 depth 1制作 git repo 的最小功能克隆 我刚刚意识到愚蠢的 http 传输不支持 depth 我想自动检测 http 远程是愚蠢的还是聪明的 这样我就可以省略 depth与哑 http
  • Git - 远程:错误:无法运行钩子/后接收:没有这样的文件或目录

    我收到错误 remote error cannot run hooks post receive No such file or directory 当尝试推送到远程时 接收后文件存在于正确的位置 testnew git hooks 并包含
  • 具有单个子模块的多个存储库

    我已经找了一段时间但没有找到答案 也许我不知道该看什么 我们有一个主库 它本身就是一个存储库 我们称之为 Lib 它包含我们的大部分模块和子模块 我们还假设它的大小为 2GB 现在我们有很多项目 例如 ProjA ProjB ProjC 每
  • 我应该把 .gitignore 放在哪里才能影响所有项目?

    我应该在哪里放置一个 gitignore文件以便我的所有项目都使用这些设置 我尝试了各种文件夹 只有将其放入项目文件夹中才能使其正常工作 但是设置 当然 仅应用于该项目 而不是我的其他项目 git 包含一个 全局 配置选项 可以告诉它在启动
  • 哪些 git hooks 适用于“git rebase --continue”?

    我正在尝试为我的组织构建一组 git hook 脚本 我想使用的一个脚本 仅用于我自己的多个项目 将是检查git rebase continue我的代码中没有留下任何冲突标记 lt lt lt lt lt or gt gt gt gt gt
  • Gitolite git 克隆错误

    我正在尝试在我的服务器 Macos 服务器 上设置 gitolite 我按照此处找到的安装文档中的说明进行操作 http sitaramc github com gitolite doc 1 INSTALL html http sitara
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • PHP Github Pull 脚本错误“权限被拒绝(公钥)”

    我已经设置了一个 PHP 脚本来执行 GitHub 拉取 这包含在我的 Github 文件夹中 home mysite public html github github pull php 我的服务器已经有 SSH 公钥 就像我执行git
  • 在 Windows 下克隆 git repo 时,出现“错误:无法创建文件 <文件>...(是目录)”

    Z gt git clone git github com kennethreitz httpbin git Cloning into httpbin remote Counting objects 1073 done remote Com
  • 在git的远程存储库上创建私有分支

    我想在我们公司的 git 上构建特定的流程 开发人员在他的本地计算机上创建一个分支并在那里提交一些文件 dev 将此分支推送到远程仓库 其他开发者无法访问该分支 经过几轮推动开发人员决定发布他的更改 将他的私人分支合并到公共分支 推动该公共
  • 如何在 EGit 中创建正确的新本地和远程分支组合?

    我想在 Egit 中执行以下操作 git checkout b newbranch git push u origin newbranch 这给了我一个新的本地分支 将其推送到上游服务器并创建正确的跟踪参考 我如何在 Egit 中做同样的事
  • 使用 git 合并两个截然不同的分支?

    我有我的master分支和我的verydifferentbranch它们有相同的祖先 大约 300 次提交前 现在verydifferentbranch功能完整我想把它放在master下面branch 进行变基会导致每个补丁都有很多合并冲突

随机推荐

  • Jmeter在windows10命令行启动显示此时不应有

    Jmeter在windows10命令行启动显示此时不应有 Jmeter配置路径正常 直接运行目录下的Jmeter bat也能运行 但是在命令行输入Jmeter便一直显示此时不应有 查了网上这种问题的解决方法 都是说环境变量路径问题 1 路径
  • python 正则表达式 compile_使用compile()函数编译正则表达式【Python技术文章】

    如果需要对一个正则表达式重复使用 那么可以使用compile 函数对其进行预编译 以避免每次编译正则表达式的开销 complie 函数语法格式如下 compile pattern flags 0 上述格式中的参数pattern表示一个正则表
  • input 输入框 focus更改样式

    input标签的border和outline 想要实现input在触发焦点时更改样式 通常会想到使用 focus选择器 但当使用border去更改样式时 会发现失效了 input type text focus border 1px sol
  • 内部振荡器、无源晶振、有源晶振有什么区别?

    单片机要运行起来 必须有一个时钟信号 就好像人的心跳 这个时钟信号可以由无源晶振提供 可以由有源晶振提供 目前大部分的单片机也集成了内部振荡器 今天就来聊聊这三者的区别 1 内部振荡器 单片机内部集成的振荡器 一般为RC振荡器 好多人叫 内
  • AlexNet-深度卷积神经网络(CNN卷积神经网络)

    文章目录 深度卷积神经网络 AlexNet AlexNet 模型说明 激活函数选定 模型定义 读取数据集 训练AlexNet 小结 深度卷积神经网络 AlexNet 2012年 AlexNet横空出世 它首次证明了学习到的特征可以超越出手工
  • cJSON.c 和cJSON.h (进行了额外的封装)

    1 cJSON h cJSON h Copyright c 2009 2017 Dave Gamble and cJSON contributors Permission is hereby granted free of charge t
  • EMI原理、测量、解决

  • 进制和编码

    目标 了解计算机中一些必备的尝试知识 了解常见名词背后的意义 1 python的运行方式 交互式运行 脚本式运行 2 进制 2 1 进制的转换 计算机中底层的所有数据都是0101010101的形式存在的 八进制无法直接转为2进制 十进制转其
  • 鸡兔同笼问题南阳理工学院acm64题

    问题如下 鸡兔同笼 时间限制 3000 ms 内存限制 65535 KB 难度 1 描述 已知鸡和兔的总数量为n 总腿数为m 输入n和m 依次输出鸡和兔的数目 如果无解 则输出 No answer 不要引号 输入 第一行输入一个数据a 代表
  • centos哪个版本稳定_CentOS VS Ubuntu,谁才是更好的 Linux 版本?

    几乎所有新手刚接触 Linux 时 都会被它众多的发行版本搞得一头雾水 截至目前 Linux 已经有几百个发行版本 从技术上来说 Linux 只是一个内核 内核指的是一个提供设备驱动 文件系统 进程管理 网络通信等功能的系统软件 并不是一套
  • 混合式步进电机的细分驱动(电流方式、电压方式)及Simulink仿真对比

    两相混合式步进电机的最简单模型和驱动方式 两相混合式步进电机有四个连接点 分别为a a b b a 和a 连接绕组A的两端 b 和b 连接绕组B的两端 电机的结构可以简化为如下的图示结构 电机转子可以看成一个磁铁 电机的定子上标有a b a
  • OJ刷题 第十三篇

    22102 将字符串反序 时间限制 1 秒 内存限制 128 MB 请将一个给定的字符串反序 字符长度为1到10000 且有可能包含空格 输入 反序前的字符串 输出 反序后的字符串 样例 输入 abcd 输出 dcba 答案 C 版本1 掌
  • 2021年第十二届蓝桥杯省赛A组题解(C/C++)

    2021年蓝桥杯省赛A组题解 C C 来自微信公众号 算法梦工厂 二维码见文末 欢迎加入蓝桥杯备赛群 768245918 获取往届试题 测试数据 算法课程等相关资源 A 卡片 问题描述 答案 3181 解析 涉及知识点 枚举 十进制拆分 做
  • 远程链接redis时出现错误: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

    Could not connect to Redis at 192 168 204 100 6379 由于连接方在一段时间后没有正确答复或连接的主机没有反应 连接尝试失败 原因 1 防火墙没有关闭 导致访问不了 解答方法一直接关闭防火墙 不
  • 软件优化Flash擦除时间长的方法

    概述 通过地址的偏移 巧妙的避开Flash擦除长时间占用CPU的使用 MCU STM32H743 编译环境 Keil 说明 基础知识可以看 Flash读写 其中包含了本代码涉及到的所有函数 原理 以空间换取时间 正文 首先要明白Flash擦
  • SpringBoot学习(汇总版)

    一 SpringBoot简介 1 1 Spring能做什么 1 1 1 Spring的能力及生态 1 1 2 Spring5的响应式编程 1 2 SpringBoot是什么 百度百科 Spring Boot是由Pivotal团队提供的全新框
  • MYSQL物理结构

    Mysql的物理结构 日志文件 error log 记录mysql启动 关闭和运行时产生的重大的错误的信息 如果mysqld警告一个表需要自动的检查或者修复 也会记录一个错误日志 可以使用 log error file name选项来指定错
  • Oracle数据库对象---你diss了嘛

    1 数据库对象 2 同义词 3 序列 4 视图 5 索引 Oracle中比较有特色的 同义词 序列 1 数据库对象 又称模式对象 是逻辑结构的集合 最基本的数据库对象就是表 数据逻辑结构 指的是存在一种或多种特定关系的数据元素集合 通俗点
  • Devops学习实践(三) jenkins集成findbugs

    随着工作的要求 devops作为今年工作的一个重点 由此也引发了自己对于devops相关的工具和技术的学习和实践 基于上述背景 这个系列将逐步的介绍SVN的安装和配置 jenkins安装和配置 reviewboard findbugs ch
  • SourceTree 重置提交、合并、撤销、回滚

    SourceTree重置当前分支到此次提交 使用场景 已提交未推送的修改撤销 想把某一次的错误修改全部撤销 当前发布代码有bug需要切到上次提交发布版本 Git中的HEAD解释 使用最新一次提交重制暂存区 git reset HEAD fi