锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

【全网最全面】SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突...

时间:2022-09-15 01:00:00 二极管je07b1ud20

6b9d3775da08c2dfed37aaab78039f7f.png

前言:

俗话说,好工欲善必先利其器,Git在我们的日常开发中,分布式版本控制系统是不可或缺的。目前市场上比较流行Git可视化管理工具有SourceTree、Github Desktop、TortoiseGit,个人推荐开发者使用综合网上文章分析和日常开发实践经验SourceTree,因为SourceTree同时支持Windows和Mac,界面非常精致简洁,大大简化了开发者和代码库之间的简化Git操作方式。本文主要用于日常开发SourceTree详细说明了可视化管理工具的一些常用操作。

SourceTree | Github Desktop | TortoiseGit 可视化管理工具比较:

https://blog.csdn.net/hmllittlekoi/article/details/104504406/

SourceTree介绍和Atlassian帐户注册及登录教程:

https://www.cnblogs.com/Can-daydayup/p/13128511.html

连接Gitee or GitHub,获取代码:

注:本文介绍了使用方法SSH协议还可以直接使用相关远程仓库的代码HTTPS通过协议直接输入账号密码获取相关代码!

全面概述Gitee和GitHub生成/添加SSH公钥:

https://www.cnblogs.com/Can-daydayup/p/13063280.html

在SourceTree中添加SSH密钥:

工具=>选择:

添加SSH密钥位置:C:\Users\xxxxx\.ssh\id_rsa.pub:

SSH客户端选择OpenSSH:

Clone对应托管平台仓库(以Gitee为例):

打开码云,找出你需要什么Clone的仓库!

SourceTree设置默认工作目录:

从上面我们可以发现每次都可以发现Clone克隆项目时,克隆项目的默认存储位置是C盘,所以我们每次都需要选择项目存储路径。当然,作为一个懒惰的人,我们不喜欢这种方式,所以我们可以设置一个默认的项目存储位置。

设置SourceTree默认项目目录:

点击工具=>选项=>一般=>找到项目录设置Clone默认存储位置:

SourceTree代码提交:

1.首先切换到需要修改功能代码的分支:

2.将修改后的代码提交临时存储区:

3.向当地代码仓库提交临存区域的代码:

注:当许多人同时开发项目时,不建议默认选择立即推动变更origin/develop,避免一些不必要的麻烦!

4.代码拉取更新本地代码库,并将代码推送到远程仓库:

检查需要推送的分支,点击推送到远程分支:

代码成功推送到远程代码库:

5.在Gitee检查推送结果:

SourceTree分支切换、新建、合并:

1.分支切换:

双击切换:

单击鼠标右键切换:

2.新分支:

注:在新分支的基础上,新分支必须切换到相应的主分支才能在主分支上创建分支,如下master创建一个分支feature-0613分支:

3.合并分支:

注:在合并代码之前,我们都需要将需要合并的分支拉到最新状态(**避免覆盖他人代码或丢失一些重要文件)!

在master点击分支上的右键,选择合并feature-0613可以合并到目前的分支:

分支合并成功:

SourceTree解决代码冲突:

首先,我们需要创建一个提交文件遇到冲突的场景:

在SoureceTree中在Clone以新项目命名pingrixuexilianxi如下图所示:2.

我们用项目中的代码合并冲突测试.txt】文件为例:

在pingrixuexilianxi添加内容并提交到远程代码库,添加内容如下:

在pingrixuexilianxi添加内容并提交代码(不选择立即推送变更origin/master),拉取代码即会遇到冲突:

冲突文件内容:

手动打开冲突文件解决冲突:

从以下冲突文件中的冲突内容中了解到:

<<<<<<< HEAD 6月19日 pingrixuexilianxi添加了内容 ======= 6月18日 pingrixuexilianxi修改此文件哦 >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5

<<<<<<< HEAD到 =======【6月19日 pingrixuexilianxi添加内容是我刚才自己的Commit提交的内容

=======到 >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b6月18日 pingrixuexilianxi2修改此文件是远程代码库更新的内容(即pingrixuexilianxi2本地代码库推送修改内容)。

手动冲突解决方案:

根据项目需求删除不需要的代码就行了,如果我们都需要,我们只需要<<<<<<< HEAD======= >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b删除冲突就解决了(注意,这些符号最终不能存在于项目中,否则可能会报告异常)。

最后,将冲突文件标记为已解决,并提交远程仓库:

采用外部文本文件对比工具Beyond Compare解决冲突:

SourceTree配置文本文件比较工具Beyond Compare:

工具=>选项=>比较:

使用Beyond Compare解决冲突:

Beyond Compare使用技巧:

官方综合教程:https://www.beyondcompare.cc/jiqiao/

SourceTree打开外部和合并工具:

注:第一次启动Beynod Compare软件需要一段时间,请耐心等待:

Beynod Compare冲突合并:

关闭后单击保存文件Beynod Compare工具,SourceTree冲突解决了,在SourceTree我们会发现多了一个 .orig 文件。然后选择那个。.orig文件,单击右键 => 移除,最后我们推到远程代码库即可:


Sourcetree中的基本名词说明:

克隆/新建(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库。

提交(commit):将暂存区文件上传到本地代码仓库。

推送(push):将本地仓库同步至远程仓库,一般推送(push)前先拉取(pull)一次,确保一致(十分注意:这样你才能达到和别人最新代码同步的状态,同时也能够规避很多不必要的问题)。

拉取(pull):从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作(git pull=git fetch+git merge)。

获取(fetch):从远程仓库获取信息并同步至本地仓库。

分支(branch):创建/修改/删除分枝。

合并(merge):将多个同名文件合并为一个文件,该文件包含多个同名文件的所有内容,相同内容抵消。

贮藏(git stash):保存工作现场。

丢弃(Discard):丢弃更改,恢复文件改动/重置所有改动,即将已暂存的文件丢回未暂存的文件。

标签(tag):给项目增添标签。

工作流(Git Flow):团队工作时,每个人创建属于自己的分枝(branch),确定无误后提交到master分支。

终端(terminal):可以输入git命令行。

每次拉取和推送的时候不用每次输入密码的命令行:git config credential.helper osxkeychain sourcetree。

检出(checkout):切换不同分支。

添加(add):添加文件到缓存区。

移除(remove):移除文件至缓存区。

重置(reset):回到最近添加(add)/提交(commit)状态。

Git分布式版本控制器常用命令和使用:

当然作为一个有逼格的程序员, 一些常用的命令我们还是需要了解和掌握的,详情可参考我之前写过的文章:

https://www.cnblogs.com/Can-daydayup/p/10134733.html

SourceTree如何提交PR(Pull Request):

Pull Request提交相关操作参考该篇文章:

https://www.jianshu.com/p/b365c743ec8d

1、fork 项目:

2、克隆本地

 打开Git Bash输入仓库克隆命令:

git clone https://github.com/liangtongzhuo/taro-ui.git

3、根据文档创建分支

拖进 SourceTree,基于 dev 创建分支如下图:

4、提交修改的代码到远程代码库

文章上面已经提到了使用SourceTree提交的相关操作,可参考:

https://www.cnblogs.com/Can-daydayup/p/13128633.html#_label5(或者Ctrl F:SourceTree代码提交)

当然也可以使用git命令提交:

git add .  --提交所有修改的文件到本地暂存区
git commit -m"fix(dos):修正文字 "   --提交到本地代码库
git push  --提交到github中的远程代码库

5、提交 Pull Request

第四步提交成功后,进入原来fork的仓库,点击 Compare

 提交你的说明,选择合并的分支即可,剩下等待合并。

  • C#/.NET/.NET Core学习视频汇总

  • C#/.NET/.NET Core面试宝典(基础版)

  • C#/.NET/.NET Core学习、工作、面试指南

  • 2022年了有哪些值得推荐的.NET ORM框架?

  • C#/.NET/.NET Core推荐学习书籍(升职加薪,你值得拥有)

  • 了解作者&获取更多学习资料&加入DotNetGuide技术交流群


学习是一个永无止境的过程,你知道的越多,你不知道的也会越多,在有限的时间内坚持每天多学一点,你一定能成为你想要成为的那个人。不积跬步无以至千里,不积小流无以成江河!!!

See you next good day~
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章