SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)

摘要:
本文主要详细介绍了在日常开发中使用SourceTree可视化管理工具的一些常见操作。本文描述了如何使用SSH协议获取相关远程仓库的代码。您还可以直接使用HTTPS协议直接输入帐户密码以获取相关代码//www.cnblogs.com/can daydayup/p/13063280.html将SSH密钥添加到SourceTree:Tools=>单击工具=>选项=>

前言:

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

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

SourceTree介绍和Atlassian账号注册和登录教程:

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

连接Gitee or GitHub,获取代码:

注意:这里介绍的是使用SSH协议获取关联远程仓库的代码,大家也可以直接使用过HTTPS协议的方式直接输入账号密码获取关联代码!

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

在SourceTree中添加SSH密钥:

工具=>选择:

 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第1张
 
添加SSH密钥位置:C:Usersxxxxx.sshid_rsa.pub:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第2张

SSH客户端选择OpenSSH:

 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第3张

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

打开码云,找到自己需要Clone的仓库!
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第4张

 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第5张

SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第6张SourceTree设置默认工作目录:

  由上面我们可以发现每次Clone克隆项目的时候,克隆下来的项目默认存储位置都是在C盘,因此每次都需要我们去选择项目存放的路径,作为一个喜欢偷懒的人而言当然不喜欢这种方式啦,因此我们可以设置一个默认的项目存储位置。

设置SourceTree默认项目目录:

点击工具=>选项=>一般=>找到项目目录设置Clone项目默认存储的位置
 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第7张

SourceTree代码提交:

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

 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第8张

 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第9张

2.将修改的代码提交到暂存区:

SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第10张

3.将暂存区中的代码提交到本地代码仓库:

注意:多人同时开发项目的时候,不推荐默认选中立即推送变更到origin/develop,避免一些不必要的麻烦!

SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第11张

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

SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第12张

 
 勾选需要推送的分支,点击推送到远程分支:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第13张
 
代码成功推送到远程代码库:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第14张

5.在Gitee中查看推送结果:

SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第15张

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

1.分支切换:

双击切换:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第16张
 
单击鼠标右键切换:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第17张

2.新建分支:

注意:在新建分支时,我们需要在哪个主分支的基础上新建分支必须先要切换到对应的主分支才能到该主分支上创建分支,如下我们要在master分支上创建一个feature-0613分支:
 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第18张

SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第19张

3.合并分支:

注意:在合并代码之前我们都需要将需要合并的分支拉取到最新状态(**避免覆盖别人的代码,或者丢失一些重要文件)!!!!!
 
在master分支上点击右键,选择合并feature-0613至当前分支即可进行合并:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第20张
 
分支合并成功:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第21张

SourceTree代码冲突解决:

首先我们需要制造一个提交文件遇到冲突的情景:

在SoureceTree中在Clone一个新项目,命名为pingrixuexilianxi2,如下图所示:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第22张
我们以项目中的【代码合并冲突测试.txt】文件为例:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第23张
 
在pingrixuexilianxi2中添加内容,并提交到远程代码库,添加的内容如下:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第24张
 
在pingrixuexilianxi中添加内容,提交代码(不选择立即推送变更到origin/master),拉取代码即会遇到冲突:
 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第25张

SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第26张

 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第27张

 
冲突文件中的内容:
 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第28张

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

由下面的冲突文件中的冲突内容我们了解到:
<<<<<<< HEAD
6月19日 pingrixuexilianxi添加了内容
=======
6月18日 pingrixuexilianxi2修改了这个文件哦
>>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5
 
<<<<<<< HEAD到 =======里面的【6月19日 pingrixuexilianxi添加了内容】是自己刚才的Commit提交的内容
=======到 >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5里面的【6月18日 pingrixuexilianxi2修改了这个文件哦】是远程代码库更新的内容(即为pingrixuexilianxi2本地代码库推送修改内容)。
 
手动冲突解决方法:
  根据项目需求删除不需要的代码就行了,假如都需要的话我们只需要把 <<<<<<< HEAD=======     >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5都删掉冲突就解决了(注意,在项目中最后这些符号都不能存在,否则可能会报异常)。
 
最后将冲突文件标记为已解决,提交到远程仓库:
 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第29张

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

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

工具=>选项=>比较:
 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第30张

SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第31张

使用Beyond Compare解决冲突:

Beyond Compare使用技巧:
官方全面教程:https://www.beyondcompare.cc/jiqiao/
 
SourceTree打开外部和合并工具:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第32张
注意:第一次启动Beynod Compare软件需要一会时间,请耐心等待:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第33张
 
 
Beynod Compare进行冲突合并:
SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第34张
 
点击保存文件后关闭Beynod Compare工具,SourceTree中的冲突就解决了,在SourceTree中我们会发现多了一个 .orig 的文件。接着选中那个.orig文件,单击右键 => 移除,最后我们推送到远程代码库即可:
 SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)第35张

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分布式版本控制器常用命令和使用:

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

免责声明:文章转载自《SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇layer弹出层右上角的关闭按钮怎么没有显示echarts数据变了不重新渲染,以及重新渲染了前后数据会重叠渲染的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

node rpc 使用

什么是rpc RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务 本地过程调用:如果需要将本地student对象的age+1,可以实现一个addAge()方法,将student对象传入,对年龄进行更新之后返回即可,本地方法调用的函数体通过函数指针来指定。 远程过程调用:上述操作的过程中,如果ad...

用Visual studio 2005打开Visual studio 2008 开发的项目

方法一参考: 1. 用记事本打开解决方案文件(扩展名为*.sln).将Microsoft Visual Studio Solution File, Format Version 10.00# Visual Studio 2008把上面这两句,改成Microsoft Visual Studio Solution File, Format Version 9....

java加载properties配置文件的几种方法

 自由自在 废话省略... 1.普通方法 直接上我写的一共配置文件获取类: 配置文件 socket.server.address = 127.0.0.1 socket.server.port = 8511 socket.connect.timeout = 3000 package com.adao.common; import java.io.IOExc...

DLL发布 matlab代码发布

https://blog.csdn.net/alansss/article/details/81320548 最近需要将写好的matlab代码转成基于OpenCV的代码,然后再封装成dll进行发布。一开始直接看基于OpenCV的dll生成,但是都不太成功,故而先试试没有OpenCV的dll生成。 主要参考了以下两个网页:  VS2013生成dll及动态调用...

迁移git:gitlab&amp;gt;gitea

本文目的:迁移gitlab代码到gitea。 一:创建一个组织:   二:创建git仓库 1:在主界面创建仓库:注意选择拥有者 创建git库需要注意拥有者选择创建的组织。不然后面git链接会出现用户名。其他默认,直接创建   2:在组织里面创建仓库,会默认拥有者 (1) (2)   (3)   (4)   三:迁移gitlab到gitea 1:如果是...

在Android Studio使用ButterKnife的步骤详解

ButterKnife是一个android的view注入的框架,什么是view注入呢,就是我们经常进行的操作findViewById(),在控件个数和需要添加点击的次数比较少的情况下,并感觉不到有什么区别,但是如果数量比较多的情况下,还一个一个的findViewById(),再添加点击事件的话,那就心态爆炸了,还会容易出错,所以下面介绍一下ButterKn...