1、 前言
Git分布式版本控制系统是我们日常开发中不可或缺的一部分,能够大大提高我们协同工作的效率。前面的一篇文章如何玩转Git介绍过Git的相关知识。在工作中往往我们需要使用Git的可视化管理工具进行版本控制。目前市面上比较流行的Git可视化管理工具有SourceTree、Github Desktop、TortoiseGit等等,我们公司主要使用的是SourceTree。该篇文章主要结合日常开发工作的对于sourctree的一些常用操作进行讲解和总结,帮助没有使用过的同学进行快速入门,希望能对大家有所帮助!
2、正文
首先当然是要说明Sourcetree的下载安装。
关于sourcetree各版本的下载:可以访问网址:
www.sourcetreeapp.com/download-ar…
这里建议不要下载最新的版本,因为新版本有时候不太稳定,建议下载最新版本的前1-2个版本,我这里使用的是3.4.4版本。
下载完成之后是一个.exe的可执行文件,直接双击进行安装即可。
这里在安装SourceTree的过程中,需要通过账户登录,但注册或登录界面可能根本无法打开,导致软件无法正常安装。这时可以通过以下办法进行解决:
在目录C:\Users\{username}\AppData\Local\Atlassian\SourceTree 下创建文件accounts.json ,注意:{username}需要替换为登录系统用户名。如我的电脑路径为:
C:\Users\Administrator\AppData\Local\Atlassian\SourceTree。accounts.json文件的内容如下:
[ { "$id": "1", "$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity", "IsDefault": false, "Authenticate": true, "HostInstance": { "$id": "2", "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount", "Host": { "$id": "3", "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount", "Id": "atlassian account" }, "BaseUrl": "https://id.atlassian.com/" }, "Credentials": { "$id": "4", "$type": "SourceTree.Api.Account.Basic.BasicAuthCredentials, SourceTree.Api.Account.Basic", "Username": "", "Email": null, "AvatarURL": null, "AuthenticationScheme": { "$type": "SourceTree.Api.Account.Basic.BasicAuthAuthenticationScheme, SourceTree.Api.Account.Basic", "Value": "用户名/密码", "Name": "Basic", "Description": "密码", "HeaderValuePrefix": "Basic", "UsernameIsRequired": true }, "Id": "", "EmailHash": null, "DisplayName": null } }, { "$ref": "1" } ] 复制代码
然后重新启动软件,顺利进入界面。
这里假设前提是已经在本地电脑安装好了git,如果没有关于git的安装使用可以参考之前的文章:如何玩转Git。
前面的工作准备好了之后接下来就是关于SourceTree的配置以及使用了!
首先我们需要在SourceTree中添加SSH密钥。在菜单栏的工具栏选择选项菜单,SSH客户端配置,SSH秘钥选择:
C:\Users\Administrator\.ssh\id_rsa.pub,然后SSH客户端选项选择OpenSSH,如下图所示:
接下来就可以Clone远程的代码了,这里以自己的GitHub为例,其他的比如gitee也类似:
打开github,找到自己需要clone的源码,code选择ssh,复制地址,这里需要在github秘钥也进行配置,具体参考之前的文章即可:
然后打开sourcetree,clone项目到本地:
由上面我们可以发现每次Clone项目的时候,克隆下来的项目默认存储位置都是在C盘,如果一直放在C盘,则系统盘肯定会越来越小,电脑越来越卡,每次更改项目路径也挺麻烦,因此我们可以设置一个默认的项目存储位置:
点击工具--->选项--->一般--->找到项目目录设置Clone项目默认存储的位置:
在进行协同开发的时候往往需要新建不同的分支,用于不同的版本或者功能开发,最后再合并版本。
1、新建分支:
在新建分支时,我们需要在哪个主分支的基础上新建分支必须先要切换到对应的主分支才能到该主分支上创建分支,如下我们要在main分支上创建一个dev-1017新建分支:
因为前面选择了默认检出,所以这里自动检出了分支:
如果需要切换到其他分支,可以直接双击对应的分支切换到该分支,前提是需要先从远程检出该分支:
多个人在不同的分支进行开发完成后,需要合并分支版本然后进行送测,比如在main分支上点击右键,选择合并刚刚创建的dev-1017新建分支至当前分支即可进行合并,在合并代码之前我们都需要将需要合并的分支拉取到最新状态避免覆盖别人的代码,或者代码丢失:
代码完成之后需要提交代码:
将修改的代码提交到暂存区:
如果我们发现一个文件修改错了,那么可以右键这个文件,选择丢弃,将该文件的所有修改丢弃,回滚到你修改之前的状态:
如果你不想要这个文件了,发现这个文件新增错了,那么可以选择这个文件然后右键选择移除这个文件:
然后修改的文件就出现在了暂存区:
sourecetree还有个储藏功能:
这个主要是储藏你的文件,好吧这么解释等于没说,简单点理解就是比如我们开发的时候有很多的配置文件,但是一般我们开发的时候配置文件的部分数据比如数据库地址等等和线上的是不一样的,所以我们提交的时候有些时候是需要改成线上的地址,然后开发的时候拉取最新的线上地址再修改成开发的环境,这样就很麻烦,那么这时候我们就可以使用储藏功能,把我们修改的本地的开发环境的代码储藏起来,下次拉取了最新的线上代码之后我们直接选择存储的文件然后应用它就行了,避免了每次拉取最新代码之后再一次次的修改:
这里需要明确几个概念之间的区别:
1、提交和推送:有些人可能有疑问为啥我已经提交代码了,但是远程却没有发现我修改的代码呢?因为提交只是将暂存区的文件上传到我们本地的代码库,而推送则是将本地仓库同步至远程仓库,这样操作之后别人才能从远程拉取你修改的最新代码。
2、拉取和获取:这两个名词仅有一字只差,但是却有不同的功能。拉取(pull)是从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作(git pull=git fetch+git merge)。而获取(fetch)则只是从远程仓库获取信息并同步至本地仓库。所以一般推送之前需要先拉取一次,确保代码一致。
3、丢弃和移除:丢弃指的是丢弃更改,恢复文件改动/重置所有改动,即将已暂存的文件丢回未暂存的文件。移除则是移除文件至缓存区。
3、总结
这篇文章主要结合我日常开发工作的对于sourctree的一些常用操作进行讲解和总结,帮助没有使用过的同学进行快速入门,希望能对大家有所帮助!
如果你觉得本文不错就点赞分享给更多的人吧!