Git管理神器SourceTree利用教程详解(连接远程仓库,克隆,拉取,提交,推 ...

打印 上一主题 下一主题

主题 529|帖子 529|积分 1587

媒介:

  俗话说的好工欲善其事必先利其器,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一个新项目,命名为pingrixuexilianxi2,如下图所示:

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

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

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

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

由下面的冲突文件中的冲突内容我们了解到:
  1. <<<<<<< HEAD
  2. 6月19日 pingrixuexilianxi添加了内容
  3. =======
  4. 6月18日 pingrixuexilianxi2修改了这个文件哦
  5. >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5
复制代码
  1. <<<<<<< HEAD到 =======里面的【6月19日 pingrixuexilianxi添加了内容】是自己刚才的Commit提交的内容
  2. =======到 >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5里面的【6月18日 pingrixuexilianxi2修改了这个文件哦】是远程代码库更新的内容(即为pingrixuexilianxi2本地代码库推送修改内容)。
复制代码
手动冲突解决方法:
     根据项目需求删除不必要的代码就行了,假如都必要的话我们只必要把 <<<<<<< HEAD=======     >>>>>>> a8284fd41903c54212d1105a6feb6c57292e07b5都删掉冲突就解决了(注意,在项目中最后这些符号都不能存在,否则可能会报异常)。
  最后将冲突文件标记为已解决,提交到远程仓库: 

采用外部文本文件对比工具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)状态。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

缠丝猫

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表