IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> SourceTree基本使用指南 -> 正文阅读

[开发工具]SourceTree基本使用指南

前言

新公司的git规范对rebase的使用大大增加,之前都是merge一把刷子干的,而为了能够更好的查看git记录树,可视化工具sourcetree是不错的选择,故而整理下常见的使用方法。

撤销相关

撤销是比较重要的操作,而且容易出错,故而先整理这一块。

未暂存前撤销

在没有git add之前,先撤销。通过丢弃功能即可:

在这里插入图片描述

已暂存,未提交前撤销

已经add了,但是没有commit的话,直接取消暂存即可。
在这里插入图片描述

已提交,未推送远端前撤销

如果已经commit,但是没有push到远端。有两种方式,第一种是通过选择要回滚到的commit,右键
重置当前分支到此次提交,这种方式会回滚到add之前,也就是所有本次修改的文件内容均得以保存:
在这里插入图片描述

如果是想直接放弃所有的这次commit内容,则选择要回滚到的commit,右键
回滚提交,但是这种情况容易产生冲突,所以也是不太建议的。完全可以通过上面的方式,再参考未暂存前撤销的方式,完成回滚操作。
在这里插入图片描述

已推送远端后撤销

如果已经push到远端了,又想撤销。首先右键要去的commit,重置当前分支到此次提交

在这里插入图片描述

然后打开命令行模式,执行git push -f,强制将内容推到远端,最后把本地未暂存的改动全部丢弃(或者在重置当前分支到此此提交时使用强行合并)即可。
在这里插入图片描述

可以看到多余的commit已经没有了。

在这里插入图片描述

rebase相关

rebase两个作用,一个是将本分支多个commit进行合并或者其他美化操作,一个是将不同分支直接进行合并(但是不像merge那样会让分支树很混乱)。在sourcetree,rebase叫做变基。但是需要注意,rebase只能用在个人分支,不要用在公共分支!再就是已经push后的分支是无效的,请直接使用已推送远端后撤销的方式来撤销。

先说第一种

本分支commit合并

有时候我们的commit信息不好看,比如这种:

在这里插入图片描述

我们想把这几个优化下,把2和3的commit合并:我们选择右键交互式变基

在这里插入图片描述
然后选中第一个,点击用此前的squash,只到所有commit合并到一个,再点击后编辑一下commit的信息,确定即可。

在这里插入图片描述

最后发现分支树已优化完毕:
在这里插入图片描述

跨分支变基

在test2分支,想把test1分支的代码并过来。

本地分支rebase本地分支

有以下几种情况,第一种是test1,test2都是本地分支,没有远端。
在这里插入图片描述

这种情况下自己处于test1分支,然后右键test2分支,变基即可
在这里插入图片描述

本地分支rebase远程不同分支

现在test2是个远程分支,而test3的新的本地分支,我们想把test2的内容rebase到test3中。
在这里插入图片描述
我们还是先切到test3分支,右键test2分支,变基即可
在这里插入图片描述

本地分支rebase远程相同分支

如果多人在同一分支开发,使用拉取也就是git pull = git fetch + git merge ,这样会多一条merge的记录,而使用git pull -r = git fetch + git rebase 。这样就是走的rebase的流程

比如目前的test4分支,可以看到本地的和远程的不一样:在这里插入图片描述

这时如果使用拉取+推送的话,就会多一条merge的记录。

在这里插入图片描述
这个时候可以通过在本地test4分支,右键远程test4分支,变基,再去推送即可。
在这里插入图片描述

远程分支rebase远程分支

假设我们现在有了test4分支,并且已经push到远端了,这个时候又想把远端的test2分支的内容rebase过来。
在这里插入图片描述
我们还是先切到test4分支,然后右键点击test2的变基。(还有后续流程)
在这里插入图片描述
你会发现多了拉取和推送,但是切记千万不要点击(原因是rebase产生了新的commitid,你本地的tes4和远端的已不再一样了,如果拉取相当于git pull而不是git pull -r,所以会造成多一次相同提交和merge记录)。这种情况下直接将通过命令行git push -f强制推送即可。

在这里插入图片描述
可以看到结果又好了。

这也是为什么不要在公共分支(有远端的分支)轻易使用rebase的原因了,因为你会修改别人的提交记录!!

冲突处理

有时候rebase时会发生冲突,比如test5和test6改了同一个文件的同一行,这个时候我在test6上对test5进行变基。

在这里插入图片描述

sourcetree会提示你有冲突并需要解决:
在这里插入图片描述
这个时候需要去编辑器内解决冲突,然后暂存(git add .),再进行命令行操作git rebase --continue,来完成正常的rebase流程。
在这里插入图片描述
这样就又正常了:
在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:37:47  更:2022-05-11 16:38:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:58:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码