转自http://5337kun.blog.163.com/blog/static/18853964201211175471028/
git常用命令
1,概念
Git 是分布式版本控制系统,在本身Git的设计中没有所谓的中央库。当然在实际开发中我们一般会设定一个中央库以方便管理,比如GitHub上的库作为中央库。但是这不是Git强制的,是Best Practice,是我们为了方便管理在概念上设置的。这个中央库约定俗成叫做:origin。
Git中只有本地库和远端库(remote repository)。Git一般是三级级提交:
1, 我们先提交到暂存区(stage),通git add .|filename
2, 再提交到本地库(这也是Git比SVN好的地方,适合频繁提交),通过git commit –m “you comments here”
3, 最后当我们觉得需要将这些代码分享的时候我们在提交到远端库(remote),通过git remote add [remote name] git://github.com/octocat/Spoon-Knife.git 添加远端库,通过git push [remotename] master将本地库的更新推送到远端库。
Git的metadata比较集中,在库所在的目录有一个.git目录,所有的metadata都在这个目录下。
2,Git的配置
git有三个配置文件,分别是repo/.git/config,$HOME/.gitconfig,/etc/gitconfig。
*repo/.git/config 库级别的配置文件,只对当前库有效,优先级最高(git config –local)
*$HOME/.gitconfig 用户级别的配置文件,对当前用户有效,优先级次之(git config –global)
*/etc/gitconfig 系统全局配置文件,对整个系统有效,优先级最低(git config –system)
git config --list #查看当前有效配置
git config --global color.ui true #设置color.ui为true
git支持自动完成,也就是说你输入git conf然后按tab键,系统会自动扩展为git config。对于选项这依然有效,比如git config –global –color.[tab]你会看到许多可选项。
3,查看命令
1,查看Git当前库的状态
git status [-s] # -s是简短的输出,左列是暂存区的状态,右边是工作区的状态
2,显示当前连接的remote repo
git remote -v
3,显示branch,在Git中branch就是一个working context(工作上下文),你可以很随意的新建一个branch来创建一个工作上下文。
git branch [-v]
4,显示文件的每一行都是谁最后修改的
git blame a-file.c
5,以简洁的方式显示branch的graph
git log --graph --pretty=oneline [-5] # -5显示最近5笔log。
6,显示最近两次commit的详细信息,包括文件改动
git log –p –2 #-p会打印出改动的diff结果
git show <commit-id> #想看特定的commit
3,本地库的操作
1,创建版本库
git init reponame #创建本地库
git clone git@github.com:jatsz/snippets.git #以远程clone的方式创建版本库
2,添加文件到暂存库(stage)
git add file #将file加到版本库中,其实是stage中。
git add –u #将所有tracked files的更新添加到stage
git add . #注意这个点号,这是将所有改动添加到stage
3,将暂存库提交(commit)到本地库
git commit –m “you comments” #将stage中的改动提交到本地库