sourceTree安装和使用(windows)
SourceTree的简介
SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial和Subversion(SVN)版本控制系统工具。支持create、commit、clone、push、pull 和merge等操作, sourceTree表面上是git的图形界面工具,其实它的底层还是用的一些git命令 ,可以使用git commit,git update,git push等命令。
GIT代码管理平台:
开源中国上的托管的代码管理平台很好用,适合管理代码,但是对于一些代码保密或者不方便放到公网上的代码来说,还是需要在自己公司的内网搭建一个GIT代码管理平台。
1、Gitolite 该代码平台是基于Linux操作的,一方面搭建起来很麻烦,另一方权限控制起来麻烦,每次新来人员需要将安装GIT之后的pub文件发送给管理员,这样会增加了管理员和git搭建人员的麻烦。
2、Gitblit 是一个纯 Java 库用来管理、查看和处理 Git 资料库.相当于 Git 的 Java 管理工具.git的管家.
一方面它有基于windows的安装版本,安装过程只需下一步即可,很方便。
另一方面他是一个git代码管理平台,统一管理用户,分配权限,同时可以查看版本库的tag和分支情况。
SourceTree和Git名称解释
克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库
提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓库做修改后一般都得先提交一次,再推送)
检出(checkout):切换不同分支
添加(add):添加文件到缓存区
移除(remove):移除文件至缓存区
贮藏(git stash):保存工作现场
重置(reset):回到最近添加(add)/提交(commit)状态
合并(merge):将多个同名文件合并为一个文件,该文件包含多个同名文件的所有内容,相同内容抵消
抓取(fetch):从远程仓库获取信息并同步至本地仓库
拉取(pull):从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 pull=fetch+merge
推送(push):将本地仓库同步至远程仓库,一般推送(push)前先拉取(pull)一次,确保一致
分支(branch):创建/修改/删除分枝
标签(tag):给项目增添标签
工作流(Git Flow): 团队工作时,每个人创建属于自己的分枝(branch),确定无误后提交到master分支。
SourceTree下载与安装
1、下载地址:https://www.sourcetreeapp.com/,该版本是中文的,下载完成后可以进行安装。
2、下载完毕,双击打开,由于我的电脑缺少.NET Framework 4.7.1,会报错少了.NET Framework 4.7.1,少什么就安装什么就好了。
3、双击打开sourcetree,如图:
4、注意:1使用谷歌帐号登录即可,前提是你必须可以上谷歌才可以。所以在登录谷歌账号之前,需要下载全局FQ工具Shadowsocks并使用FQ工具。
5、不想设置SSH密钥可暂时不弄,点击【否】,然后就可以开始使用sourcetree了。这里有个设置SSH密钥的链接(SSH密钥是在github弄的):https://blog.csdn.net/baidu_30809315/article/details/76687063
就这样sourcetree可以使用了。
SourceTree基本使用——克隆
(1)克隆(开发人员需要做的)
点击克隆按钮,克隆项目:
既可以是本地已有的git项目,也可以是远程目录中的项目。
本地存在的git项目,获取项目克隆地址,点击克隆按钮,
1、克隆项目的路径
2、克隆项目存放的位置
3、如果要下载特定的分支,可以按分支进行下载
(2)克隆远程仓库到本地(在GitHub上创建远程仓库的情况下)
2.1 复制Url链接
2.2 打开sourceTree, clone至本地仓库
2.3 点击【克隆】,就把远程仓库的项目克隆到本地进行开发了。
SourceTree基本使用——创建远程仓库
(3)创建GitHub远程仓库(项目负责人需要做的)。GitHub网址:https://github.com/
下图是我个人的github,以前有上传一些小demo在上面。
1.2 初始化一个版本库
1.3点击【NEW resposity】
1.4填写信息,如图,提交。一个简单的版本库就创建完毕了。
SourceTree基本使用——拉取远程仓库
(4)拉取远程仓库。
SourceTree基本使用——获取远程仓库
(5)获取远程仓库。
SourceTree基本使用——提交本地修改
(6)提交本地修改。
SourceTree基本使用——推送代码到远程仓库
(7)推送到远程仓库。
SourceTree基本使用——创建、删除、合并分支
(8)创建本地分支和删除分支、合并分支。
SourceTree基本使用——丢弃更改
(9)丢弃更改
SourceTree基本使用——添加tag
(10)添加tag。打tag的目的是在代码的master分支处有个标记,方便下次修改代码时可以准确的找到想要找的代码。而无需看着日志文件逐一回忆要找的代码位置。
SourceTree基本使用——暂存更改
(11)暂存更改。可用来暂存当前正在进行的工作,比如想拉取最新代码,又不想加新提交,或者另外一种情况,为了fix一个紧急的bug, 先贮藏,使返回到自己上一个提交, 改完bug之后再恢复贮藏区, 继续原来的工作。
SourceTree基本使用——解决冲突
(12)解决冲突。
第一种方法:git使用<<<<<<<,=======,>>>>>>>标记文件中自己和别人产生冲突的部分。
在<<<<<<<,=======之间为自己的代码;
=======,>>>>>>>之间为别人的代码。
自动合并冲突结束后,进入文件删掉冲突的部分,然后重新提交,推送。
第二种方法: Sourcetree中集成Beyond Compare 4,当文件冲突时可以很好的解决冲突。安装过程很简单,这里不再详述。
在sourceTree中配置Beyond Compare 4如下截图:
SourceTree基本使用——忽略配置文件
(13)忽略配置文件。
利用.gitignore过滤文件,如编译过程中的中间文件等等,这些文件不需要被追踪管理。
.gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用了
使用sourcetree添加忽略文件的方法:
正常情况下,管理员创建项目后需要直接将忽略文件创建好。创建方法如图:
SVN与GIT的区别
1.GIT是分布式的,SVN不是,这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
解释:
a GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提交文件,查看历史版本记录,创建项目分支,等。对一些人来说,这好像没多大用处,但当你突然遇到没有网络的环境时,这个将解决你的大麻烦。
b 这种分布式的操作模式对于开源软件社区的开发来说也是个巨大的恩赐,你不必再像以前那样做出补丁包,通过email方式发送出去,你只需要创建一个分支,向项目团队发送一个推请求。这能让你的代码保持最新,而且不会在传输过程中丢失。GitHub.com就是一个这样的优秀案例。
2.GIT把内容按元数据方式存储,而SVN是按文件
所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。
3.分支,该特点是GIT的有一个核心功能;这个功能对开源社区的奉献很大;对项目实际开发意义很大;同一个工作目录下快速的在几个分支间切换。你很容易发现未被合并的分支,你能简单而快捷的合并这些文件。在SVN,分支是一个完整的目录。且这个目录拥有完整的实际文件。如果工作成员想要开啟新的分支,那将会影响“全世界”!每个人都会拥有和你一样的分支。如果你的分支是用来进行破坏工作(安检测试),那将会像传染病一样,你改一个分支,还得让其他人重新切分支重新下载,十分狗血。而 Git,每个工作成员可以任意在自己的本地版本库开啟无限个分支。举例:当我想尝试破坏自己的程序(安检测试),并且想保留这些被修改的文件供日后使用, 我可以开一个分支,做我喜欢的事。完全不需担心妨碍其他工作成员。只要我不合并及提交到主要版本库,没有一个工作成员会被影响。等到我不需要这个分支时, 我只要把它从我的本地版本库删除即可。无痛无痒。
4.GIT没有一个全局的版本号,而SVN有:
目前为止这是跟SVN相比GIT缺少的最大的一个特征。你也知道,SVN的版本号实际是任何一个相应时间的源代码快照。我认为它是从CVS进化到SVN的最大的一个突破。因为GIT和SVN从概念上就不同,我不知道GIT里是什么特征与之对应。
5.GIT的内容完整性要优于SVN:
GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。这里有一个很好的关于GIT内容完整性的讨论 –http://stackoverflow.com/questions/964331/git-file-integrity
6.代码库占极少的空间。易于代码的分支化管理。目前支持中文,已经有成熟的图形化管理界面工具,使用难度小。
最后总结一下:
SVN的特点是简单,只是需要一个放代码的地方时用是OK的。
小结
使用sourcetree的前提要求:
1、有谷歌账号和密码
2、有GitHub账号和密码,配置SSH密钥
3、有FQ工具,连接外网
4、安装sourcetree和git以及一些需要的插件
题外篇:
不需要FQ的一篇链接:https://blog.csdn.net/sinat_38334334/article/details/80665191
sourceTree官网的介绍使用链接:
https://confluence.atlassian.com/get-started-with-sourcetree?_ga=2.258073802.1185428370.1532309129-219782296.1532309129
设置SSH密钥的链接(SSH密钥是在github弄的):
https://blog.csdn.net/baidu_30809315/article/details/76687063