27
2017
09

GIT 使用教程-廖雪峰

参考(Git教程)[http://www.cnblogs.com/summer-sun/p/5558581.html]

一、创建本库

1.初始化一个Git仓库:git init
2.添加文件到Git仓库:1、git add < filename > ; 2、git commit [] 备注信息

二、时光机穿梭

1.查看工作区状态,文件是否被修改过:git status
2.查看修改的内容:git diff

1、版本回退

1.HEAD : 表示当前版本
2.HEAD^:表示上一个版本
3.定位版本信息: git reset –hard commit_id
4.git log : 穿梭前 用git log 看提交历史,以方便要回退到哪一个版本
5.git reflog:要重返未来,用git reflog 查看命令历史 以便确定要回到未来的哪一个版本。

2、工作区和暂存区

  1. 工作区:就是你在电脑里面能看到的目录 比如我的learngit文件夹就是一个工作区
  2. 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
  3. 暂存区:Git的版本库里存了很多东西,其中最重要的就是stage 的暂存区

      第一步是用git add 把文件添加进去,实际上就是把文件修改添加到暂存区;
      第二步是用git commit提交更改,实际就是把暂存区中的所有内容都提交到当前分支
    

3、管理修改

1.每次修改,如果不add到暂存区,就不会计入到commit中

4、撤销修改

1.git checkout –file:丢弃工作区的修改
2.git reset HEAD file:把暂存区的修改撤销掉,重新放回到工作区

5、删除文件

1.git rm:从版本库中删除文件

三、远程仓库

1、添加远程库

1.关联一个远程库:git remote add origin git@server-name:path/repo-name.git
2.关联后第一次推送master分支所有内容:git push -u origin master
3.此后,每次本地提交后,只要有必要,就可以使用命令git push -u origin master 推送就新修改。

2、从远程库克隆

1.要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone 命令克隆
2.Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快

四、分支管理

1、创建与合并分支

1.查看分支:git branch
2.创建分支:git branch < name >
3.切换分支:git checkout < name >
4.创建+切换分支:git checkout -b < name >
5.合并某分支到当前分支:git merge
6.删除分支:git branch -d < name >

2、解决冲突

1.查看分支合并图:git log –graph
eg:git log –graph –pretty =online –abbrev -commit

3、分支管理策略

  1. 合并分支时加上–no-ff参数:普通模式合并,合并后的历史有分支,禁用fast forward
    eg:git log –no-ff-m”merge with no–ff”dev

4、Bug分支

1.git stash:把当前工作现场隐藏起来,去修复bug
2.git stash pop:恢复工作现场同时删除stash内容

5、Feature分支

1.开发一个新feature,最好新建一个分支;
2.如果要丢弃一个没有被合并过的分支,可以用过git branch -D < name >强行删除

6、多人协作

1.git remote -v:查看远程库信息
2.git push origin branch-name:从本地推送分支
3.git pull:推送失败时,抓取远程的新提交
4.git checkout -b branch-name origin/branch-name :从本地创建和远程分支(本地和远程分支的名称最好一直)
5.git branch –set-upstream branch-name origin/branch-name:建立本例分支和远程分支的关联

五、标签管理

1、创建标签

1.git tag < name >:新建一个标签(默认为HEAD,也可以指定commit id)
2.git tag -a < tagname > -m “……”:可以指定标签信息
3.git tag -s < tagname > -m“…….”:可以用PGP签名信息
4.git tag :查看所有标签

2、操作标签

1.git push origin < tagname >:推送一个本地标签
2.git push origin –tags:推送全部未推送过的本地标签
3.git tag -d < tagname >:删除一个本地标签
4.git push origin:refs/tags/< tagname >:删除一个远程标签

6、使用GitHub

1.在GitHub,可以任意Fork开源仓库;
2.自己拥有Fork后的仓库的读写权限;
3.可以推送push request给官方仓库来贡献代码。

7、自定义Git

1、忽略特殊文件

1.忽略某些文件时,需要编写.gitignore;

2、配置别名

①我们只需要敲一行命令,告诉Git,以后st就表示status:git config –global alias.st status
 eg:
gitconfigglobalalias.cocheckout git config –global alias.ci commit
$ git config –global alias.br branch

gitconfigglobalalias.unstageresetHEAD git config –global alias.last ‘log -1’

git config –global alias.lg “log –color –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit”

3、搭建Git服务器

GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。
例如大众点评code.dianpingoa.com

上一篇:android中常用算法集锦<一> 下一篇:swift4.0 项目中的随机校验码(验证码)