sourceTree之初体验

一、Sourcetree简单介绍
通过Git可以进行对项目的版本管理,但是如果直接使用Git的软件会比较麻烦,因为是通过一条一条命令进行操作的。
Sourcetree则可以与Git结合,提供图形界面,使用会方便很多。Git和Sourcetree的安装这里就不多说,网上大把的教程。
二、分支的创建与合并
1、创建一个远程仓库
在GitHub官网上创建一个新的远程仓库:
在这里插入图片描述
2、用Sourcetree将这个远程仓库clone到本地
复制远成仓库的地址,然后利用改地址将远程仓库clone下来:
在这里插入图片描述
在这里插入图片描述
这样,在本地就创建好了一个本地仓库MainProject,可以到目标地址去查看一下。
3、准备测试用工程
这里创建一个android工程,不需要写什么代码。将创建好的整个android工程放到本地仓库的文件夹中,然后推送到远程仓库,这样测试用的工程基本准备好了:
在这里插入图片描述
在这里插入图片描述

4、创建分支
此时远程仓库中已经有一个项目了,下面模拟一个场景:假设有两个程序猿Allen、Bill同时在开发这个项目,项目经理要求Allen增加一个听歌的功能,要求Bill增加一个游戏的功能,那此时这两人就必须将远程仓库中的项目clone到他两各自的本地(这里就用一台电脑模拟,clone两次创建两个本地仓库):
在这里插入图片描述

clone下来后会有一个默认的分支master,可以理解成主分支,那去进行项目开的话不会直接使用master,会去创建一个新分支进行开发,避免直接使用master改来改去最后一团糟那就该崩溃了。每个人在各自的新分支中开发完成后将新分支合并到主分支中就可以了。
接下来Allen和Bill各自创建一个新分支:Allen_dev和Bill_dev 在这里插入图片描述在这里插入图片描述
在这里插入图片描述那如果Allen和Bill在开发过程中想看看对方的代码,那就必须将各自创建的新分支推送到远程仓库,然后将对方的分支拉取下来,每次想看的话先获取,然后再拉取最新的代码到本地仓库即可。
在这里插入图片描述
首次拉取别人的分支,在上面的获取之后,按如下操作,这里是Allen获取Bill的分支Bill_dev,Bill获取Allen的步骤一样在这里插入图片描述
注意:黑色加粗表示当前所处的分支,可以任意双击切换!
在这里插入图片描述
在这里插入图片描述
到此,各自的分支已经创建好了,下面Allen和Bill就可以在各自的新分支上进行项目经理安排的任务。
3、分支合并
Allen和Bill打开各自本地仓库中的项目代码进行开发,顺利完成项目经理交代的任务,然后各自的分支推送到远程仓库:
在这里插入图片描述
在这里插入图片描述

此时双方可以获取最新代码,拉取最新分支代码,拉取完成后就可以看到对方所增加的内容:
在这里插入图片描述
在这里插入图片描述
此时,各自都想将对方的代码整合到自己的项目中,这是就需要分支的合并。例如Allen合并Bill的分支:
在这里插入图片描述
合并完成后,可以看到之前打开的Allen的Android工程,会发现Bill添加的功能已经在Allen的项目中显示出来了。
在这里插入图片描述
在这里插入图片描述
最后不要忘了将各自合并后的分支推送。

现在Allen和Bill的工作已经完成了,各自的分支也推送到了远程仓库,此时项目经理就可以clone远程仓库的项目到本地,拉取Allen和Bill的提交的最新分支,将它们合并到主分支master中。这里就拿最开始创建的MianProject看作是项目经理,合并完成并推送。
在这里插入图片描述
3、解决冲突
目前为止Allen和Bill各自进展顺利,但是假若两人同时在同一个文件进行了操作,那最后合并时就会出现冲突。比如在MainActivity:
在这里插入图片描述
在这里插入图片描述
此时当Allen和Bill推送自己的分支到远程仓库后,项目经理MainProject拉取代码进行合并:
假设首先合并Allen_dev到master没有问题,但是当合并Bill_dev到master时就会提示合并出现了冲突,需要解决。
在这里插入图片描述
点击关闭,然后切换到文件状态,找到出现冲突的文件,会有相应的冲突信息:
这里写图片描述
有冲突就要解决,右键单击冲突文件,选择解决冲突,这里有两个选项:
1、使用 我的版本 解决冲突
2、使用 他人版本 解决冲突
这里项目经理MainProject首先是将Allen的分支合并到主分支master,那么“我的版本”就是对应的Allen的,“他人版本”对应的就是Bill的。如果首先合并Bill的分支,那么对应关系就要对调一下。总的来说,“我的版本”对应的是首先合并到主分支master的。
采用一个人的版本,那么在冲突文件中就只会保留该人修改的代码,例如我这里就选择”使用 我的版本 解决冲突“,那么在MainActivity中就只会保留Allen添加的代码。
在这里插入图片描述
弹出对话框点击确定。

解决前:

在这里插入图片描述
解决后:
在这里插入图片描述

原文链接

  1. 前言
    每每将Git和SVN进行比较的时候,Git强大的分支管理功能必然会被提及,而这也是笔者部门选择它的重要理由之一,因此对其的日常操作了解当然是势在必行。

  2. 操作
    2.1 新建分支
    ST里新建分支是非常方便的,只需要"日志/历史"标签页选中相应的节点,右键选择"分支"选项。
    在这里插入图片描述

输入一个辨识度强的分支名,点击"创建分支"即可。便可在ST的左侧栏的"分支"树形结构下看到新建的分支了。
在这里插入图片描述

不过这里要注意的是此时该分支只是存在于操作者本地,如果该分支是需要团队共享的,那还需要操作者将其提交到服务端(这里再强调一次GIT是分布式版本控制系统)。
在这里插入图片描述
在这里插入图片描述

以上虽然远端对应的分支名是可以重命名的,但建议除非必要,强烈建议保持一致,不增加额外的记忆负担。
在这里插入图片描述

2.2 拉取分支
拉取服务端分支的方式有多种:

ST左侧栏"远程"树形结构中选中对应的分支右键。
在这里插入图片描述

"日志/历史"标签页选中相应的节点,双击 / 右键选择"检出"选项。在弹出的对话框中直接使用默认选项,确认即可。
在这里插入图片描述
在这里插入图片描述

2.3 切换分支
这个在ST中就是太简单了,只需要在左侧栏的"分支"树形结构中选中对应的分支双击即可。

2.4 合并分支
这里先给出场景:我们需要将 vOne分支 合并到 master分支 上。
在这里插入图片描述

将当前分支切换到master分支,拉取最新的变更。
右键 vOne分支(保险起见,也先拉取一次更新),选择"合并vOne到当前分支"。

出现冲突则解决冲突,推荐使用专门的冲突解决工具(Sourcetree基本操作介绍)。
将完成合并操作的master分支上的本地变更推送到服务端(是的,目前这些变化只存在于操作者电脑上)。
2.5 检出分支
"检出分支"意思是将当前项目回到选中的版本,这样我们可以很轻松回到任意一个版本,来编译项目,或者检查当时项目的问题。
在这里插入图片描述

注意这个操作会创建一个分离头指针(detached HEAD),因此除非明确知道自己在做什么,否则尽量避免使用这类操作。

  1. 其它合并操作
    右键特定的节点,选择"合并",这将会将当前提交节点至今为止所有的变更全部应用到当前分支。一般用于不同分支间之间。
    在这里插入图片描述

右键特定的节点,选择"遴选"。用于从不同的分支中检出一个单独的commit , 并把它和你当前的分支合并,类似于打补丁。例如,修复一个所有分支都有的bug这样的场合可以适用。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值