sourceTree使用教程详解

sourceTree使用教程详解SourceTree是最好用的版本管理客户端软件,没有之一。本人将以连载经验的形式来详细讲述如何利用sourceTree去进行代码或文件的版本管理。教程一将讲述克隆,提交,和推送。一SourceTree下载安装工具/原料 SourceTree下载链接:https://pan.baidu.com/s/1W5rkiXF4DKBvUMGl5Gw5Lw密码:djmg 方法/步…

 SourceTree是最好用的版本管理客户端软件,没有之一。本人将以连载经验的形式来详细讲述如何利用sourceTree去进行代码或文件的版本管理。教程一将讲述 克隆,提交,和推送。

一 SourceTree下载 安装

工具/原料

  • SourceTree下载 链接:https://pan.baidu.com/s/1W5rkiXF4DKBvUMGl5Gw5Lw 密码:djmg

方法/步骤

  1.  

    在使用SourceTree之前必须要先安装Git和sourceTree,具体安装过程不再赘述,大家可以搜索其它教程。

    SourceTree使用教程(一)

  2.  

    注册并登陆Github,点击new repository,如下图

    SourceTree使用教程(一)

  3.  

    输入仓库名字,点击创建,创建后的仓库是空白的,如下图

    SourceTree使用教程(一)

    SourceTree使用教程(一)

  4.  

    复制仓库地址,如下图。

    SourceTree使用教程(一)

  5. 打开sourcetree,点击clone,如下图

    SourceTree使用教程(一)

  6. 切换到克隆配置页面,填入远程仓库地址,目标路径(本地存放路径),点击克隆。

    SourceTree使用教程(一)

  7. 打开目标路径,可以看到已克隆一个空白的版本库。

    SourceTree使用教程(一)

  8. 在目标路径下新增文件test1.txt

    SourceTree使用教程(一)

  9.  提交和推送。由于git是分布式版本控制工具,存在着本地仓库和远程仓库,所以我们在本地工作副本进行的编辑,要先提交到本地仓库,再从本地仓库推送到远程仓库。下面进行演示。第7步中编辑完成后,打开sourceTree, 可以看到文件的变动已经显示到软件界面,点击暂存所选,类似于勾选要提交的文件。

    SourceTree使用教程(一)

  10. 输入提交注释 [A]新增1,点击提交。

    SourceTree使用教程(一)

  11. 提交完成后,可以看到日志/历史选项卡中已显示提交的版本日志,在master分支 提交了新增1,不过这个master分支是本地仓库的,并不是远程仓库的。从第二张图可以看到远程仓库github里还是空白的。

    SourceTree使用教程(一)

    SourceTree使用教程(一)

  12. 推送。点击推送,勾选将本地master分支推送到远程master分支,点击推送。

    SourceTree使用教程(一)

    SourceTree使用教程(一)

  13. 推送完成后,可以看到最新的版本里显示了master 和 origin/master,这表明本地master分支和远程master分支是同步的,在一个节点上。登录GitHub可以看到仓库里已有提交记录了。如下图。这样本地修改的代码或文件就被同步到了远程仓库,可以被别人拉下来使用。

    SourceTree使用教程(一)

    SourceTree使用教程(一)

 

二 sourceTree中拉取和获取的区别,以及在现实使用中如何去操作。

1 打开github上的GitTest版本库,编辑test1.txt文件,如下图。

 

sourceTree使用教程(二)

 

2 在文件test1.txt增加一行,如下图,提交。

 

sourceTree使用教程(二)
3 获取和拉取。获取是将远程仓库的代码更新到本地仓库,拉取是将本地仓库的代码更新到本地工作副本。打开sourceTree,点击 获取按钮,如下图

 

sourceTree使用教程(二)

4 点击确定,可以看到拉取图标那里多了一个蓝底白色的数字1,分支master那里也有一个灰色的数字1,并有一个向下的箭头,这表示 有一个更新需要拉取到本地工作副本。同时打开版本文件,可以看到test1.txt文件中没有第二步增加的123。

 

sourceTree使用教程(二)

sourceTree使用教程(二)

5 点击拉取,如下图

 

sourceTree使用教程(二)

6 点击确定,可以看到待拉取的图标消失了。同时test1.txt文件也多了123

 

sourceTree使用教程(二)

sourceTree使用教程(二)

7 一般在实际使用中是不会先点获取,再点拉取的,因为拉代码都是直接一步到位为拉到本地工作副本的。所以直接一个拉取操作就够了。

sourceTree使用教程(二)

 

三 sourceTree中创建分支和合并分支的使用方法和使用场景。

 

1 分支。当要新增一个功能,又要保证原始功能的正常的使用,这个时候为了不影响原功能的使用,就可以建立一个分支,在分支上进行新增功能的开发,等到新增的功能测试通过后再把分支合并到主干上。如下图,点击分支,输入新分支名字,以当前工作副本为基础生成一个新的develop分支。

 

 

SourceTree使用教程(三)

 

2 点击创建分支,可以看到多了一个develop分支,但是这个分支只存在于本地仓库。可以看到最新的日志记录节点上只有master , origin/master,develop,所以这个新分支是没有推送到远程仓库的。

 

 

SourceTree使用教程(三)
3 点击推送,如下图,勾选第一个,将本地develop分支推送到远程develop分支

 

SourceTree使用教程(三)
4 点击推送 ,如下图,可以看到本地develop和远程develop已经同步了。

 

SourceTree使用教程(三)

5  在develop分支上新增功能,这里是新增了 add func1

 

 

SourceTree使用教程(三)

6 在sourceTree界面,推送新增的功能到develop分支

 

SourceTree使用教程(三)

7 再提交一条新增记录,如下图。可以看到develop分支比master分支多了2条提交记录。

SourceTree使用教程(三)

SourceTree使用教程(三)

8 功能1和2测试通过,现在要将develop分支上新增的两个功能合并到主分支master上。
将当前分支切换到master分支,鼠标移到到develop分支,右键,选择合并develop至当前分支,也即是主分支。

 

SourceTree使用教程(三)

9 点击确定

 

SourceTree使用教程(三)
10 可以看到master的本地仓库多了两条需要推送的记录。如图所示的红框内图标2,说明develop分支新增的两个功能已合并到本地仓库的master分支。

 

SourceTree使用教程(三)

 

11 推送合并过来的两个新增功能。可以看到master分支已有了新增的两个功能。

 

SourceTree使用教程(三)

四 解决冲突 

 虽然在团队协作开发中强调尽量避免操作同一文件,以避免冲突,但是在实际开发中还是会遇到冲突,所以掌握解决冲突的方法必不可少。

  1.  

    解决冲突就要先制造冲突,冲突一般是由于两个人同时修改同一文件而造成的。在GitHub上修改远程仓库文件模拟一个人操作,sourceTree本地修改同一文件模拟另一个人操作。

    SourceTree使用教程(四)---冲突解决

  2.  

    登录GitHub ,打开GitTest,编辑test1.txt文件

    SourceTree使用教程(四)---冲突解决

  3.  

    在文件末尾增加 内容 code conclick1,点击提交。如下图所示。

    SourceTree使用教程(四)---冲突解决

    SourceTree使用教程(四)---冲突解决

  4.  

    打开本地工作副本的test1.txt文件,新增内容code conclick2,如下图:

    SourceTree使用教程(四)---冲突解决

  5. 打开sourceTree,可以看到本地工作副本有个待提交记录。

    SourceTree使用教程(四)---冲突解决

  6. 推送代码。这个时候你修改完了本地的功能,并不知道远程仓库上也有人提交了该文件的修改。直接推送本地修改,推送本地工作副本到远程仓库,运行完成后会报错,大概是提示本地仓库和远程仓库版本不一致,无法提交,但是本地工作副本的修改却是已经提交到了本地仓库。如下图。

    SourceTree使用教程(四)---冲突解决

    SourceTree使用教程(四)---冲突解决

  7. 既然提示 和远程仓库版本不一致,无法推送,那只能先拉成一致了。点击拉取图标,等执行完,就会出现下图所示。有一个待拉取的图标和一个待推送的图标,并且test1.txt文件的图标变成了黄色的感叹号。这个时候文件的冲突就造成了。

    SourceTree使用教程(四)---冲突解决

  8. 冲突文件会把两者的修改以冲突的方式合在一个文件里,等待使用者去处理。那么基本的处理思想是:要么使用其中某一个人的,要么使用两者的组合。

    冲突的解决需要一个外部代码对比工具,我这里使用的是Beyond Compare 4,大家可以自己百度下载安装,然后集成到sourceTree软件中。如下图。在外部对比工具中找到Beyond Compare 4的可执行程序,点击确定。

    SourceTree使用教程(四)---冲突解决

  9. 下面开始使用代码对比工具解决冲突,选中待解决冲突的代码,右键 解决冲突,打开外部合并工具。

    SourceTree使用教程(四)---冲突解决

  10. 等待一会,Beyond Compare 4就会被打开。第一块是本地修改的版本,第二块是冲突两者(本地仓库和远程仓库)相同的版本基准,第三块是 远程仓库的修改。第四块是冲突处理后的代码。

    SourceTree使用教程(四)---冲突解决

  11. 本次解决冲突是为了合并两者的修改,所以我会把第一块和第三块所做的修改按照正确的逻辑顺序,合到第四块。如下图,点击保存。关闭该对比软件。

    SourceTree使用教程(四)---冲突解决

  12. 切到sourceTree界面,可以看到多了一个解决冲突的中间文件,由于冲突已解决,直接右键移除,

    SourceTree使用教程(四)---冲突解决

  13. 可以看到冲突已解决,代码已正确合并。推送该合并。

    SourceTree使用教程(四)---冲突解决

  14. 这样冲突就被解决了,可以看到本地工作副本和远程仓库的代码都是一致的了。

    SourceTree使用教程(四)---冲突解决

 

五 Sourcetree支持文件的部分提交

SourceTree比起tortoiseGit来,最大的不同之处在于 Sourcetree支持文件的部分提交,这大大方便了用户的使用。

       有的时候,我们开发了一个A功能,未上线,同时又并发开发了B功能,B功能比A功能先上线,而且B功能和A功能修改的是同一个文件,这种情况在上线B功能时,SourceTree就体现出优势了。

  1.  

    打开本地工作副本,增加文件activityServiceImpl.java,这个文件没啥特别,就是代码行数很多,方便演示。

    SourceTree使用教程(五)

  2.  

    打开SourceTree,推送该文件。

    SourceTree使用教程(五)

  3.  

    打开新增文件,新增func1,func2,func3三个功能,

    SourceTree使用教程(五)

  4. 现在的要求是,只提交func3,不提交func1和func2。打开sourceTree。如下图

    SourceTree使用教程(五)

  5. 右边区域滑到add func3处,点击暂存区块,该区块就会保存到待提交区。

    SourceTree使用教程(五)

  6. 已暂存文件里是待提交的,未暂存文件里不需要提交的,这样在一个文件里,就可以提交需要提交的,而不需要提交的也可以保留在工作区,等待下次提交

    SourceTree使用教程(五)

  7. 提交推送,如下图。

    SourceTree使用教程(五)

  8. 撤销回滚。在团队协作开发中,有时候提交完代码后,发现提交错了,这个时候,撤销回滚就起了重要作用。

    在最新的提交记录上,右键-》回滚提交

    SourceTree使用教程(五)

  9. 在弹窗里选择是。

    SourceTree使用教程(五)

  10. 可以看到提交历史记录多了一个Revert  反向提交

    SourceTree使用教程(五)

  11. 打开本地工作副本,看到 做的修改已去除

    SourceTree使用教程(五)

  12. 这个时候,反向提交只提到了本地仓库,如需撤销远程仓库的,还需推送到远程仓库

    SourceTree使用教程(五)

  13. 点击推送,可以看到提交的func3已撤销。如下图。

    SourceTree使用教程(五)

今天的文章sourceTree使用教程详解分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/6786.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注