git常用操作命令

一开始GIT给人感觉很简单,但一用起来又觉得每个地方都捉襟见肘。其实git的学习曲线要比想象中的更为陡峭,有近20个常用命令,每个命令又有20个左右常用的参数,相互组合使用。要学好的话学习量绝对不低于新学一门语言和其常用类库,因其大多数操作都有相近的实现方式,但结果又各不相同,本篇是higrid收集的一些相关网络教程,以由易向难的顺序介绍。

推荐系统学习 Pro Git 简体中文版

Git工作原理:

  1. 分布式,每个克隆或更新远程仓库的用户都拥有一份最新的完整的仓库。
  2. 分支结构,不要直接操作remote的远程分支,应该首先checkout一份到本地分支。远程分支是指与远程仓库上同步的分支。而你所有的操作应该是在你的本地分支上操作。
  3. 时刻记得你在那个分支下工作,因为你切换到任何分支都不会改变本地目录
  4. origin代表远程仓库,为默认的远程仓库别名
  5. git的分支仅仅是一个提交的标记,而不是目录,与svn的目录式分支结构不同
  6. 仓库的意义是整个代码仓库,本地分支/远程分支,都是你本地仓库中的分支

Git常用操作命令及解释

注:以下所有以$开头的,为命令行操作,$之后的是命令, #号之后是注释

1.克隆一个仓库

$ git clone [email protected]:sheyi/higrid.git#相当于svn checkout

然后进入仓库目录,运行如下命令来忽略git对于文件权限的检查

$ git config core.filemode false

然后设置你的帐户和邮箱

$ git config user.name = "higrid"
$ git config user.email = "[email protected]"

2.抽取一个分支以及切换到一个分支(切记,要得到一个分支,应该先抽取它,把它抽取到 本地,生成一个本地分支) 命令格式 git checkout 本地分支名 origin/远程分支名,通常,本地分支名和远程分支名一样,当然,也可以不一样。

$ git checkout release/0.2 origin/release/0.2
$ git checkout master origin/master
$ git checkout master #切换分支也是使用checkout,只不过不再输入远程分支信息

3.查看分支,注意,*号在那个分支名前面,就说明你目前处在那个分支下。 查看本地分支:

$ git branch

查看所有分支,包括你仓库中的远程分支:

$ git branch -a

更新你本地仓库的所有分支和远程仓库的分支保持一致,主要是删掉本地仓库中与远程仓库相比较,已经不存在的分支:

$ git remote prune origin

4.本地仓库分支的创建和删除

$ git branch 分支名 #创建一个本地分支
$ git branch -d 分支名 #删除一个本地分支,参数 -D 强制删除,删除前要先切换到其它分支

5.更新仓库但不将修改合并分支的修改

$ git fetch

6.更新仓库且将修改合并到本地分支,这个最常用,相当于svn up

$ git pull

7.查看状态,是否有提交,删除,更新等信息,如果看到大批文件权限有更新,请使用“git config core.filemode false” 来忽略权限检查

$ git status

8.提交,注意:提交仅仅是将你的修改提交到你本地的仓库,而非远程

$ git commit -m ”提交注释"

如果之前未使用 git add 将修改的文件加入暂存区,可再加一个参数 -a 来将所有未暂存的修改提交

9.推送到远程仓库,只有将你的修改或分支推送到远程仓库,其它人才能从该远程仓库获取

$ git push origin #推送当前分支到远程仓库,前提是远程仓库有这个分支
$ git remote add origin git@server-name:path/repo-name.git 要关联一个远程库
$ git push -u origin master #第一次推送master分支的所有内容, 此后就可以使用命令git push origin master推送最新修改;

10.删除远程仓库中的分支

$ git push origin :远程分支名
$ git push origin --delete <branchName>
$ git push origin --delete tag <tagname>

Git工作流程

  1. 生成你的公钥和私钥,将公钥发给git仓库管理员
  2. 克隆一个仓库
  3. 检出一个远程分支到本地分支
  4. 在本地分支上进行开发工作并提交
  5. 将你的提交推送到远程仓库
  6. 要经常更新你的本地分支 git pull
  7. 对于开发人员,不要在develop分支上直接开发,创建feature分支并publish协同开发。
  8. 对于开发人员,要经常合并常规开发分支develop到你的feature分支上,以降低冲突的积累。
  9. 第7、8条参照git-flow分支模型来规划。

随机文章 Random Posts