git命令汇总
展示帮助信息
git help -g
回到远程仓库的状态
抛弃本地所有的修改,回到远程仓库的状态。
git fetch –all && git reset –hard origin/master
重设第一个commit
也就是把所有的改动都重新放回工作区,并清空所有的commit,这样就可以重新提交第一个commit了
git update-ref -d HEAD
展示工作区和暂存区的不同
输出工作区和暂存区的different(不同)。
git diff
还可以展示本地仓库中任意两个commit之间的文件变动:
git diff
展示暂存区和最近版本的不同
输出暂存区和本地最近的版本(commit)的different(不同)。
git diff –cached
展示暂存区、工作区和最近版本的不同
输出工作区、暂存区 和本地最近的版本(commit)的different(不同)。
git diff HEAD
快速切换分支
git checkout -
删除已经合并到master的分支
git branch –merged master | grep -v ‘^*| master’ | xargs -n 1 git branch -d
展示本地分支关联远程仓库的情况
git branch -vv
关联远程分支
关联之后,git branch -vv就可以展示关联的远程分支名了,同时推送到远程仓库直接:git push,不需要指定远程仓库了。
git branch -u origin/mybranch
或者在push时加上-u参数
git push origin/mybranch -u
列出所有远程分支
-r参数相当于:remote
git branch -r
列出本地和远程分支
-a参数相当于:all
git branch -a
创建并切换到本地分支
git checkout -b
创建并切换到远程分支
git checkout -b origin/
删除本地分支
git branch -d
删除远程分支
git push origin –delete
或者
git push origin :
重命名本地分支
git branch -m
查看标签
git tag
展示当前分支的最近的tag
git describe –tags –abbrev=0
本地创建标签
git tag
默认tag是打在最近的一次commit上,如果需要指定commit打tag:
git tag -a -m “v1.0 发布(描述)”
推送标签到远程仓库
首先要保证本地创建好了标签才可以推送标签到远程仓库:
git push origin
一次性推送所有标签,同步到远程仓库:
git push origin –tags
删除本地标签
git tag -d
删除远程标签
删除远程标签需要先删除本地标签,再执行下面的命令:
git push origin :refs/tags/
切回到某个标签
一般上线之前都会打tag,就是为了防止上线后出现问题,方便快速回退到上一版本。下面的命令是回到某一标签下的状态:
git checkout -b branch_name tag_name
放弃工作区的修改
git checkout
放弃所有修改:
git checkout .
恢复删除的文件
git rev-list -n 1 HEAD – #得到 deleting_commit
git checkout ^ – #回到删除文件 deleting_commit 之前的状态
回到某一个commit的状态,并重新增添一个commit
git revert
回到某个commit的状态,并删除后面的commit
和revert的区别:reset命令会抹去某个commit id之后的所有commit
git reset #默认就是-mixed参数。
git reset –mixed HEAD^ #回退至上个版本,它将重置HEAD到另外一个commit,并且重置暂存区以便和HEAD相匹配,但是也到此为止。工作区不会被更改。
git reset –soft HEAD~3 #回退至三个版本之前,只回退了commit的信息,暂存区和工作区与回退之前保持一致。如果还要提交,直接commit即可
git reset –hard #彻底回退到指定commit-id的状态,暂存区和工作区也会变为指定commit-id版本的内容
修改上一个commit的描述
git commit –amend
查看commit历史
git log
展示简化的commit历史
git log –pretty=oneline –graph –decorate –all
查看某段代码是谁写的
blame的意思为‘责怪’,你懂的。
git blame
显示本地执行过git命令
就像shell的history一样
git reflog
修改作者名
git commit –amend –author=’Author Name email@address.com’
修改远程仓库的url
git remote set-url origin
增加远程仓库
git remote add origin
列出所有远程仓库
git remote
查看两个星期内的改动
git whatchanged –since=’2 weeks ago’
把A分支的某一个commit,放到B分支上
这个过程需要cherry-pick命令,参考
git checkout && git cherry-pick
给git命令起别名
//简化命令
git config –global alias.
//比如:git status 改成 git st,这样可以简化命令
git config –global alias.st status
存储当前的修改,但不用提交commit
git stash
保存当前状态,包括untracked的文件
untracked文件:新建的文件
git stash -u
展示所有stashes
git stash list
回到某个stash的状态
git stash apply