git 编辑提交的技巧
我刚才提交了什么?
如果你用 git commit -m 'xxxxxxx' 提交了一次变化,而你又不确定到底这次提交了哪些内容。你就可以用下面的命令显示当前 HEAD 上的最近一次的提交:
git show
或者
git log -n1 -p
我的提交信息写错了
如果你的提交信息写错了且这次提交还没有推(push), 你可以通过下面的方法来修改提交信息:
git commit --amend --only
这会打开你的默认编辑器 vi, 在这里你可以编辑信息。另一方面, 你也可以用一条命令一次完成:
git commit --amend --only -m 'xxxxxxx'
如果你已经推(push)了这次提交, 你可以修改这次提交然后强推(force push),但是不推荐这么做。因为很有可能需要合并冲突。
新的提交代替旧的,所以如果之前你已经往远程仓库上推过一次修正前的提交,那你现在就必须强推(force push) (-f)。
一般来说,要避免强推。最好是创建和推(push)一个新的提交,而不是强推一个修正后的提交。后者会使那些与该分支或该分支的子分支工作的开发者,在源历史中产生冲突。
我提交的用户名和邮箱不对
如果这只是单个提交,修改它:
git commit --amend --author "New Authorname @mydomain .com>"
但是不推荐修改所有历史。
删除任意一次提交
同样的警告:不到万不得已的时候不要这么做。
git revert commitID
使用 revert 会生成一条新的提交记录。如果你删除之后又想找回,可以再次使用 revert 。把 ID 换成 revert 提交记录的 ID 就可以了。
reset 重置后找回
如果意外的做了一次硬重置,想找回之前的内容。
git reset --hard commitID
因为 Git 对每件事都会有日志,且都会保存几天。
git reflog
你将会看到一个你过去提交的列表,和一个重置的提交。选择你想要回到的提交的 ID,再重置一次:
git reset --hard SHA1234
这样就完成了。
评论