1

博客搬家啦,更多干货 https://blog.csdn.net/qq_2816...

git在我们日常工作中是种必不可少的工具,有很多懒人,譬如我,不喜欢敲命令行,那么找的一个合适的工具也可以满足工作所需。

Source Tree 用了一段时间,感觉还可以,在这里记录一下自己的学习历程,供日后参考,如果能为别人带来些许帮助,自然是好的。

先说下安装,Source Tree的安装因为中间有一个账号登录与内嵌git下载的过程需要科学上网,Sure,也可以不翻墙,这个可以自行百度,此篇文章不做介绍。

可以使用内嵌git也可以自己安装git,都是可以的。

clipboard.png

日常用的几个模块是上面几个。

方便演示,我们从头开始

gayhub上创建一个新的仓库

clipboard.png

然后,复制下地址,我这里是 git@github.com:Rentu/learning-Sourcetree.git

关于地址的两种协议,https 和 ssh
前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。

https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

我们这里选择ssh, mac为例,win的方式大同小异,自行搜索。

ssh keys 的创建 参考链接

http://blog.csdn.net/binyao02...

clipboard.png

配置完成后

clone

clipboard.png

然后,我们的对应目录下就有了一个干净的工作区现在我们写一些东西。

基础介绍

clipboard.png

暂存 等于 命令中的git add
丢弃 丢弃文件更改,因为是新增文件,so,丢弃为灰色
移除 删除文件
忽略文件,通过配置ignore文件,这里有点坑啊,清除缓存那里挺坑的,忽略文件,意思就是,这个文件我在本地使用但又不想提交到仓库影响他人工作

文件忽略

clipboard.png

我们便可以定义一个全局忽略文件,一般问题场景以下两种

  • 忽略文件,可以在ignore加入需要忽略的文件路径,具体写法,自行搜索,如果碰到不生效的情况下,需改变文件状态
  • 文件添加不成功,这里推荐强制添加,git add -f
pull

ok,现在我们把文件add,commit,push,暂存,添加, 推送到master,关于master分支,是仓库初始化的一个分支,一般还有一个dev分支,对应工作中的线上与测试环境。

clipboard.png

clipboard.png
已经有了我们的提交记录,我们去gayhub看一下,这里不知道是sf的系统原因还是网络原因图片upload fail

分支

分支的作用呢,网上可以搜到很多相关介绍,这里简单说下,日常工作中,经常会有穿插进来的需求,不得不放下手头的工作去开发,那么保存当前的进度是有必要的,分支可以很好的解决这个问题,分支可以基于某个分支(一般是master),“创建”出一个干净的工作区来,创建这个词记不太清楚了,《git权威指南》有讲过相关原理,原谅我已经记不太清了,这个分区的提交(到分支),暂存等操作是不影响master的。

clipboard.png

我们基于master切出了一个test分支,那么我在test分支上写点东西,提交到test。

clipboard.png

现在我们看到,test分支上,新添加了一个test.php 文件,而我又不小心在hell文件上多加了一个空行,那么,这个更改是我无意造成的,我们可以选择丢弃在hello上的更改

clipboard.png

现在仓库里只剩下,我们想要提交的文件啦,现在我们提交上去。

clipboard.png

clipboard.png

ok,提交成功,线上的master分支是没有我们新增的文件的,多出了一个test分支。

那么,假设我们在test上的开发已经开发完成了,这个时候,需要合并了。

合并

首先,切回master
clipboard.png

clipboard.png

这个时候我们有了一个新的推送,这里的合并合并的不只是文件,还有文件状态。

现在,我们把合并过来的文件推送到了master。

clipboard.png

暂存(贮藏)

有时候,我们需要一个干净的工作区,又不想丢弃当前的工作,那么可以执行这个操作,然后再应用,还是先回到test分支,写点东西

clipboard.png

可以看的这里我们做了一些更改,现在我们要一个干净的工作区,可以把这个更改暂存起来

clipboard.png

clipboard.png

可以看到,我们的工作区已经是干净的了,而多了一个贮藏,假如,我们在干净工作区上的工作完成了,可以把这个贮藏还原,但是这里有一个问题,应用贮藏后,就算没有合并,所有的分支上也都有了这个文件,查阅了一些 资料可能跟git版本有关,待验证,对应命令参考,git stash ,git stash pop

后续补充:关于git的客户端软件,大家可以体验一下github桌面版。


Devilu
85 声望4 粉丝

just a newbie