git常用基础操作

67 阅读2分钟

编辑提交

我刚才提交了什么

如果使用git commit -a提交了一次变化,而又不确定提交了哪些内容,可以使用下面的命令显示当前HEAD上的最近一次提交

git show

我的提交信息写错了

如果提交信息写错了,并且这次提交还没有push,可以通过下面的方法修改提交信息,这会打开默认编辑器,然后就可以修改相应的提交信息

git commit --amend --only

提交里的用户名和邮箱不正确

适用场景:假如我电脑git设置了global用户名和邮箱,但是某次提交临时为其他用户的操作,可以使用下面的命令将这个提交修改用户信息

git commit --amend --author "username <xxxxx@email.com>"

我想要删除我的最后一次提交

如果需要删除已经push的提交,可以使用下面的方法,可是这会不可逆的改变你的历史,如果不是很确定,不要这么做

git reset HEAD^ --hard
git push

如果还没有push,直接reset到最后一次提交前的状态就可以了

git reset --soft HEAD^

意外地做了一次硬重置,我想要找回我的内容

如果意外地git reset --hard,不必担心,通常可以找回之前的提交,因为git有日志系统,会保存几天时间

git reflog

你将会看到一个你过去提交的列表和一个重置的提交,选择想要回到的提交的SHA,再重置一次就ok

git reset --hard SHA1234

暂存

想要把暂存的内容添加到上一次的提交

git commit --amend

未暂存的内容

想要把未暂存的内容移动到一个新的分支

git checkout -b my-branch

想要把未暂存的内容移动到另一个已存在的分支

git stash
git checkout my-branch
git stash pop

想要丢弃本地未提交的变化

重置某个特殊的文件

git reset filename

重置origin和本地之间的一些提交

git reset --hard HEAD^
# or
git reset --hard HEAD~4
# or
git checkout -f 

分支

从错误的分支拉取了内容,或把内容拉取到了错误的分支

重置分支到你需要的提交

git reflog
git reset --heard c5bcaa5

我想扔掉本地的提交,以便我的分支与远程的保持一致

先确认没有将内容push到远程,然后恢复

git status
git reset --hard origin/my-branch

我想删除一个分支

删除一个远程分支

git push origin --delete my-branch

删除一个本地分支

git branch -D my-branch

合并

我想撤销merge

git在进行危险操作时会把原始的HEAD保存在一个叫做ORIG_HEAD的变量里

git reset --hard ORIG_HEAD

本文源自github开源项目,在其基础上进行个人总结(git-flight-rules/README_zh-CN.md at master · k88hudson/git-flight-rules · GitHub)