Git常用命令

2014/07/10

整理一些平时用到的命令,参考文档

初始化本地库

git init

添加当前目录所有新文件,递归子目录,不包括跟踪后删除的文件

git add .
git add *

添加所有修改或删除的文件,跟踪或未跟踪,已缓存改动,–all = -A

git add --all

删除文件,包括硬盘上的物理文件

git rm foo.js

删除文件,仅从工作树中

git rm --cached foo.js

查看修改状态,-s = –short,简洁地

git status -s

比较文件

git diff foo.js

提交

git commit

提交所有修改,-a = –all,不包括未跟踪

git commit -a

克隆库,-o = –origin <name>, use <name> instead of ‘origin’ to track upstream

git clone -o github git@github.com:hexojs/hexo.git hexo

添加远程

git remote add bitbucket git@bitbucket.org:username/repo.git

移除远程

git remote rm [alias]

重命名远程

git remote rename [old-alias] [new-alias]

修改URL

git remote set-url origin git://github.com/github/git-reference.git

查看远程,-v = –verbose

git remote -v

远程推送分支

git push bitbucket master

首次远程推送,–all所有,–verbose详细,-u = –set-upstream,跟踪分支

git push -u bitbucket --all --verbose

跟踪分支

git branch --set-upstream-to=bitbucket/master master

远程拉取分支

git pull bitbucket master

清理

git gc

查看日志

git log

回到最后一次提交状态,不可恢复

git reset --hard

恢复到上次,上上次,前4次,指定id的提交,此操作会创建一个新的提交

git revert HEAD
git revert HEAD^
git revert HEAD~4
git revert $id

修改上次的提交

git commit -a --amend

签出指定版本文件

git checkout $id $file

切换到指定分支

git checkout $id

新建并切换到新分支,-b新建

git checkout -b $newbranch
git checkout -b $newbranch $other

合并指定分支1到当前分支2

git checkout $branch2
git merge $branch1

从HEAD创建新分支

git branch $branchname

删除分支

git branch -d $branch

查看所有分支

git branch

添加标签,-a可为标签添加附注说明

git tag v1.0
git tag -a v1.0

为指定的提交添加标签,通常用来补标签

git tag -a v0.9 $id

推送标签

git push origin [tagname]

推送所有标签

git push origin --tags

显示标签信息

git show v1.0

查看所有标签

git tag

储藏当前状态

git stash

恢复原先工作状态,同时从堆栈中移除

git stash pop

查看储藏队列

git stash list

使用任意储藏

git stash apply stash@{1}

清除储藏

git stash drop stash@{0}

清空所有储藏

git stash clear