theme: scrolls-light
这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战
🤞 个人主页:@青Cheng序员石头
🤞 粉丝福利:加粉丝群 一对一问题解答,获取免费的丰富简历模板、提高学习资料等,做好新时代的卷卷王!
git commit
是我们常用的命令,我们可以通过这个命令提交代码,是不是有时候可能出现提交信息写错了,想删除某一次提交记录,甚至想找回某一个reset
命令后重置的内容。在这篇文章,上面所提到的内容都能解决。
一、提交信息写错了
如果你的提交信息(commit message)写错了且这次提交(commit)还没有推(push), 你可以通过下面的方法来修改提交信息(commit message):
$ git commit --amend --only
这会打开你的默认编辑器, 在这里你可以编辑信息. 另一方面, 你也可以用一条命令一次完成:
$ git commit --amend --only -m 'xxxxxxx'
如果你已经推(push)了这次提交(commit), 你可以修改这次提交(commit)然后强推(force push), 但是强烈不推荐这么做。
二、删除任意提交内容
有可能在某次提交过程中你上传了本应该存在于Local的文件内容,比如账号密码等,这个时候你想删除这次commit的记录。
同样的警告:不到万不得已的时候不要这么做.
$ git rebase --onto SHA1_OF_BAD_COMMIT^ SHA1_OF_BAD_COMMIT $ git push -f [remote] [branch]
或者做一个 交互式rebase 删除那些你想要删除的提交(commit)里所对应的行。
三、找回reset hard操作的内容
如果你意外的做了 git reset --hard
, 你通常能找回你的提交(commit), 因为Git对每件事都会有日志,且都会保存几天。
(main)$ git reflog
你将会看到一个你过去提交(commit)的列表, 和一个重置的提交。 选择你想要回到的提交(commit)的SHA,再重置一次:
(main)$ git reset --hard SHA1234
这样就完成了。
四、从一次提交中移除一个文件
通过下面的方法,从一个提交(commit)里移除一个文件:
$ git checkout HEAD^ myfile $ git add -A $ git commit --amend
这将非常有用,当你有一个开放的补丁(open patch),你往上面提交了一个不必要的文件,你需要强推(force push)去更新这个远程补丁。
少年,没看够?点击石头的详情介绍,随便点点看看,说不定有惊喜呢?欢迎支持点赞/关注/评论,有你们的支持是我更文最大的动力,多谢啦!