添加和提交
添加文件到暂存区:
git add <file>
git add .
提交:
git commit -m "xxx"
提交到了HEAD,但还没到远程仓库
推送改动
git push origin <branch>
如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器,你可以使用如下命令添加:
git remote add origin <server>
分支
查看本地分支:
git branch
查看所有分支:
git branch -a
创建本地分支:
git checkout -b <branch>
推送到远程分支:
git push origin <branch>
切回分支:
git checkout <branch>
删除本地分支:
git branch -d <branch>
删除远程分支:
git push origin --delete <branch>
更新与合并
更新本地仓库:
git pull
合并到当前分支
git merge <branch>
查看差异:
git diff <source_branch> <target_branch>
查看修改:
git status
标签
显示tag
git tag
git tag v1.0
git tag -l v1.*
git tag -l "v1.1.*"
查看tag信息:
//查看.git/refs/tags下的文件
ls -l
//查看这个文件引用的内容
cat .git/refs/tags/mytag
得到结果:
mytag
abb48d53ec4096f82e1014aa72e015610fa21415
可以发现是一个SHA-1的哈希值,那么该哈希值也就是该里程碑对应的什么类型的对象呢?使用如下命令:
//加上-t可以显示引用对应的类型
git cat-file -t mytag
得到结果:
commit
发现刚才创建的mytag里程碑是一个commit,再继续查看该commit的内容。使用如下命令:
//加上-p参数表示查看的是内容
git cat-file -p mytag
tree 026ce5f7b29dcd6e8760c1fd72fbd85536c98a49
parent 1e5c65640c4154866c87f20aa4fb78756cc49833
author rhwayfun rhwayfun@163.com 1461832874 +0800
committer rhwayfun rhwayfun@163.com 1461832874 +0800
blank commit.
带说明的里程碑:
//创建一个空白提交
git commit --allow-empty -m "blank commit for annotated tag test."
//创建带说明的里程碑
git tag -m "My first annotated tag." mytag2
//查看创建的里程碑,-n<num>表示输出<num>行带说明的里程碑,是指将里程碑的说明在<num>行之内的显示出来,并不是指输出的里程碑本身的行数
git tag -l -n1
//显示里程碑的描述字符串
git describe
mytag2不是一个commit了,而是一个tag对象:
//查看mytag2的类型
cat .git/refs/tags/mytag2
//查看mytag2的内容
git cat-file -p mytag2
查看标签版本信息:
git show
git show v1.0
创建标签:
//创建轻量级里程碑
git tag <tagname> [<commit>]
//创建带说明的里程碑
git tag -m <message> <tagname> [<commit>]
//创建带GnuPG签名的里程碑
git tag -s -m <message> <tagname> [<commit>]
创建带附注标签:
git tag -a v1.0 -m "version1.0"
删除标签:
git tag -d v1.0
log
查看提交记录:
git log