关于SourceTree学习总结SourceTree是git的可视化工具,要想了解SourceTree必须要先了解Git
Git
1.什么是Git,git是一种源代码管理工具(分布式版本控制系统)
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库
Git的功能特性:
从一般开发者的角度来看,git有以下功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。
优点:
适合分布式开发,强调个体。
公共服务器压力和数据量都不会太大。
速度快、灵活。
任意两个开发者之间可以很容易的解决冲突。
离线工作。
缺点:
资料少(起码中文资料很少)。
学习周期相对而言比较长。
不符合常规思维。
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
使用Git前,需要先建立一个仓库(repository)。您可以使用一个已经存在的目录作为Git仓库或创建一个空目录。
使用您当前目录作为Git仓库,我们只需使它初始化。:git init
使用我们指定目录作为Git仓库:git init newrepo
从现在开始,我们将假设您在Git仓库根目录下,除非另有说明。
添加新文件
我们有一个仓库,但什么也没有,可以使用add命令添加文件。:git add filename 可以使用add... 继续添加任务文件。
提交版本
现在我们已经添加了这些文件,我们希望它们能够真正被保存在Git仓库。为此,我们将它们提交到仓库。
git commit -m "Adding files"
如果您不使用-m,会出现编辑器来让你写自己的注释信息。
当我们修改了很多文件,而不想每一个都add,想commit自动来提交本地修改,我们可以使用-a标识。
git commit -a -m "Changed some files"
git commit 命令的-a选项可将所有被修改或者已删除的且已经被git管理的文档提交到仓库中
千万注意,-a不会造成新文件被提交,只能修改
发布版本
我们先从服务器克隆一个库并上传。
git clone ssh://example.com/~/www/project.git
现在我们修改之后可以进行推送到服务器。
git push ssh://example.com/~/www/project.git
取回更新
如果您已经按上面的进行push,下面命令表示,当前分支自动与唯一一个追踪分支进行合并。
git pull
从非默认位置更新到指定的url。
git pull http://git.example.com/project.git
已经超过了五分钟?
删除
如何你想从资源库中删除文件,我们使用rm。
git rm file
分支与合并
分支在本地完成,速度快。要创建一个新的分支,我们使用branch命令。
git branch test
branch命令不会将我们带入分支,只是创建一个新分支。所以我们使用checkout命令来更改分支。
git checkout test
第一个分支,或主分支,被称为"master"。
git checkout master
对其他分支的更改不会反映在主分支上。如果想将更改提交到主分支,则需切换回master分支,然后使用合并。
git checkout master git merge test
如果您想删除分支,我们使用-d标识。
git branch -d test