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使用谷歌帐号登录即可,前提是你必须可以上谷歌才可以。所以在登录谷歌账号之前,需要下载全局翻墙工具Shadowsocks并使用翻墙工具。

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.1 去 github官网注册或者登录github账号。

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、有翻墙工具,连接外网

4、安装sourcetree和git以及一些需要的插件

题外篇:

不需要翻墙的一篇链接: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

sourceTree安装和使用(windows)的更多相关文章

  1. sourceTree安装与使用

    1,下载并安装 sourceTree http://downloads.atlassian.com/software/sourcetree/windows/SourceTreeSetup_1.6.14 ...

  2. 【Git使用】SourceTree+Git简单使用(Windows)(转)

    导读: 本人过去Git的可视化工具用的是TortoiseGit,虽然Android Studio也能进行版本管理,但是用下来,感觉SoureTree这款工具是最舒服的(免费的),下面就给大家介绍下我的 ...

  3. 代码管理(二)sourcetree 安装与使用

    一 .SourceTree简介 SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作.同时它也是Mercurial和Subve ...

  4. git操作方便,简单使用的客户端sourcetree 安装配置所遇问题总结

    常言道:工欲善其事,必先利其器. SourceTree是老牌的Git GUI管理工具了,也号称是最好用的Git GUI工具 这里先言言它的好: * 免费 * 功能强大:无论你是新手还是重度用户,Sou ...

  5. SourceTree安装

    SourceTree安装教程 作为程序员,不可避免的要在github上查询代码,而在企业项目中,为了使得项目好管理需要使用项目管理客户端,所以接下来详细讲解一下基于git的sourceTree在win ...

  6. 安装redis以windows服务形式

    安装redis以windows服务形式 安装redis以windows服务形式 redis windows windows 服务 以前跑redis,老是要开一个命令行窗口,一旦关闭,redis服务就挂 ...

  7. git&sourcetree安装及在IntelliIJ下拉取项目基础使用

    be careful: 1)git版本与Sourcetree版本最好一致 ,不能git为2.5,sourcetree为1.8 2)先安装git再安装Sourcetree 3)拥有git和sourcet ...

  8. [转]phoneGap3.0安装步骤(以windows下的android环境为例):

    phoneGap3.0安装步骤(以windows下的android环境为例): 环境: WIN系统,JDK,Android,Eclipse,Ant,Git,PhoneGap3.x (Cordova) ...

  9. an'gularjs 环境搭建之NodeJS、NPM安装配置步骤(windows版本)

    NodeJS.NPM安装配置步骤(windows版本)  :http://xiaoyaojones.blog.163.com/blog/static/28370125201351501113581/ ...

随机推荐

  1. beforeRouteEnter 与 beforeRouteUpdate(watch $route 对象) 的区别

    项目 区别 适用场景 网址 beforeRouteEnter beforeRouteEnter 守卫 不能 访问 this,因为守卫在导航确认前被调用,因此即将登场的新组件还没被创建.不过,你可以通过 ...

  2. 异常sql处理

    下面是在awr报告里面看到的有问题的sql,是9个变量的,在应用前台属于关联查询,在sqlplus里面手工执行检查实际执行情况如下: SELECT /*+ GATHER_PLAN_STATISTICS ...

  3. Helm 安装Nginx Ingress

    为了便于将集群中的服务暴露到集群外部,需要使用Ingress.接下来使用Helm将Nginx Ingress部署到Kubernetes上. Nginx Ingress Controller被部署在Ku ...

  4. GPU的主要工作:图像合成、图形操作、光线表达

    GPU的主要工作:图像合成.图形操作 gpu不产生图片, 只表达和处理图片.图形:

  5. Frightful Formula Gym - 101480F (待定系数法)

    Problem F: Frightful Formula \[ Time Limit: 10 s \quad Memory Limit: 512 MiB \] 题意 题意就是存在一个\(n*n\)的矩 ...

  6. Navicat连接oracle,出现Only compatible with oci version 8.1

    与本地oracle连接的时候,一般没问题,sqlplus和oci都是本地oracle自带的,(设置: 工具->选项->oci) 分别为:     oci:D:\app\pcman\prod ...

  7. 关于读取Com口数据时,Com口的名字的两种读法。

    1,直接调用SerialPort类中的GetPortNames()方法. string[] portList = System.IO.Ports.SerialPort.GetPortNames(); ...

  8. 为什么很多人坚信“富贵险中求”?

    之家哥 2017-11-15 09:12:31 微信QQ微博 下载APP 摘要 网贷之家小编根据舆情频道的相关数据,精心整理的关于<为什么很多人坚信"富贵险中求"?>的 ...

  9. linux下 调试C#代码

    参考两位大神的帖子: https://blog.csdn.net/soband_xiang/article/details/82914195 https://blog.csdn.net/weixin_ ...

  10. 油猴ajaxhook

    // ==UserScript== // @name ajaxHook // @namespace http://tampermonkey.net/ // @version 0.1 // @descr ...