整理一些平时用到的命令,参考文档
初始化本地库
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