博客搬家啦,更多干货 https://blog.csdn.net/qq_2816...
git在我们日常工作中是种必不可少的工具,有很多懒人,譬如我,不喜欢敲命令行,那么找的一个合适的工具也可以满足工作所需。
Source Tree 用了一段时间,感觉还可以,在这里记录一下自己的学习历程,供日后参考,如果能为别人带来些许帮助,自然是好的。
先说下安装,Source Tree的安装因为中间有一个账号登录与内嵌git下载的过程需要科学上网,Sure,也可以不翻墙,这个可以自行百度,此篇文章不做介绍。
可以使用内嵌git也可以自己安装git,都是可以的。
日常用的几个模块是上面几个。
方便演示,我们从头开始
gayhub上创建一个新的仓库
然后,复制下地址,我这里是 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...
配置完成后
clone
然后,我们的对应目录下就有了一个干净的工作区现在我们写一些东西。
基础介绍
暂存 等于 命令中的git add
丢弃 丢弃文件更改,因为是新增文件,so,丢弃为灰色
移除 删除文件
忽略文件,通过配置ignore文件,这里有点坑啊,清除缓存那里挺坑的,忽略文件,意思就是,这个文件我在本地使用但又不想提交到仓库影响他人工作
文件忽略
我们便可以定义一个全局忽略文件,一般问题场景以下两种
- 忽略文件,可以在ignore加入需要忽略的文件路径,具体写法,自行搜索,如果碰到不生效的情况下,需改变文件状态
- 文件添加不成功,这里推荐强制添加,
git add -f
pull
ok,现在我们把文件add,commit,push,暂存,添加, 推送到master,关于master分支,是仓库初始化的一个分支,一般还有一个dev分支,对应工作中的线上与测试环境。
已经有了我们的提交记录,我们去gayhub看一下,这里不知道是sf的系统原因还是网络原因图片upload fail
分支
分支的作用呢,网上可以搜到很多相关介绍,这里简单说下,日常工作中,经常会有穿插进来的需求,不得不放下手头的工作去开发,那么保存当前的进度是有必要的,分支可以很好的解决这个问题,分支可以基于某个分支(一般是master),“创建”出一个干净的工作区来,创建这个词记不太清楚了,《git权威指南》有讲过相关原理,原谅我已经记不太清了,这个分区的提交(到分支),暂存等操作是不影响master的。
我们基于master切出了一个test分支,那么我在test分支上写点东西,提交到test。
现在我们看到,test分支上,新添加了一个test.php 文件,而我又不小心在hell文件上多加了一个空行,那么,这个更改是我无意造成的,我们可以选择丢弃在hello上的更改
现在仓库里只剩下,我们想要提交的文件啦,现在我们提交上去。
ok,提交成功,线上的master分支是没有我们新增的文件的,多出了一个test分支。
那么,假设我们在test上的开发已经开发完成了,这个时候,需要合并了。
合并
首先,切回master
这个时候我们有了一个新的推送,这里的合并合并的不只是文件,还有文件状态。
现在,我们把合并过来的文件推送到了master。
暂存(贮藏)
有时候,我们需要一个干净的工作区,又不想丢弃当前的工作,那么可以执行这个操作,然后再应用,还是先回到test分支,写点东西
可以看的这里我们做了一些更改,现在我们要一个干净的工作区,可以把这个更改暂存起来
可以看到,我们的工作区已经是干净的了,而多了一个贮藏,假如,我们在干净工作区上的工作完成了,可以把这个贮藏还原,但是这里有一个问题,应用贮藏后,就算没有合并,所有的分支上也都有了这个文件,查阅了一些 资料可能跟git版本有关,待验证,对应命令参考,git stash ,git stash pop
后续补充:关于git的客户端软件,大家可以体验一下github桌面版。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。