之前用了好久的totoiseSVN,显然不够高大上,开发界的版本装x利器还得是git。然而git的命令行对没怎么用过linux的人可能以为还不如用gitGUI,但是当你知道sublime能够集成git插件的时候,你就会改变本身的想法了,真心方便。html
1. 安装git客户端,最经常使用的msysgit,具体步骤就略过了,你们自行搜索吧。linux
2. sublime安装git插件git
Ctrl+shift+P,调出 install package面板,而后搜索git,回车安装github
3. 配置git公钥,此处以gitHub为例,你也能够参考 git 在linux下服务端搭建 本身搭建一个git服务端缓存
而后经过将公钥添加到服务端进行身份的认证svn
4. 初始化本地的git配置信息spa
git config --global user.name "username" git config --global user.email "username@email.com"
再设置一下push的参数,由于sublime的插件中push动做并不能接收参数插件
git config --global push.default matching #表明提交全部匹配的分支
5. 而后就能够经过sublime的Ctrl+Shift+P调用git:init命令建立一个git仓库命令行
执行命令后会要求你选择一个目录,选择后便可在该目录下新建文件进行git的各类操做了code
6. git经常使用命令解析
其实大多数状况下,咱们的开发无非就是修改、提交、获取、推送到远程
git与svn的一点区别就是commit并不会提交到远程服务端,push才是真正的提交到服务端
所以,咱们能够理解为
git:add #把文件添加进去,实际上就是把文件修改添加到暂存区 git:commit #提交更改,实际上就是把暂存区的全部内容提交到当前分支 git:push #讲缓存中的修改推送到远程服务端 固然git:add 和 git:commit 也可使用 git:commit -am "comment content" 两步合并为一步执行
重要提醒:修改文件后若是不执行add直接commit是无效的
版本的回退
git reflog #查看历史版本,而后根据现实的版本号回退 git reset --hard HEAD^ #回退到上一个版本 git reset --hard HEAD^^ #回退到上上一个版本 git reset --hard HEAD~100 #回退到100个之前的版本 git reset --hard 3628164 #回退到3628164这个版本
场景1:当你改乱了工做区某个文件的内容,想直接丢弃工做区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工做区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操做。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
删除文件
git rm filename #从git删除文件,执行后还须要commit和push才能最终在远程生效 git checkout --filename #检出最新的已经commit的版本,能够用于恢复版本或者恢复删除的文件
从远程主机获取
git remote add origin git@github.com:yourname/learngit.git #从远程主机获取
git push -u origin master #推送到远程主机,首次运行在命令行模式下,运行一次以后再到sublime中直接使用git push便可默认以master分支进行上传
分支
Git鼓励大量使用分支: 查看分支:git branch 建立分支:git branch <name> 切换分支:git checkout <name> 建立+切换分支:git checkout -b <name> 合并某分支到当前分支:git merge <name> 删除分支:git branch -d <name>
强制删除分支:git branch -D <name> #没合并的状况下是禁止删除的,须要强制删除
多人协做开发,远程push和pull
查看远程库信息,使用git remote -v; 本地新建的分支若是不推送到远程,对其余人就是不可见的; 从本地推送分支,使用git push origin branch-name,若是推送失败,先用git pull抓取远程的新提交; 在本地建立和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致; 创建本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name; 从远程抓取分支,使用git pull,若是有冲突,要先处理冲突。
文件忽略
忽略某些文件时,须要编写.gitignore;
.gitignore文件自己要放到版本库里,而且能够对.gitignore作版本管理!
国外某大神作的git经常使用命令图
详细教程,参考廖老师的git教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000