拜托,Git中你所遇见的commit问题我都见过。

前言
 

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)去更新这个远程补丁。


链接:https://juejin.cn/post/7036174521568591885

全部评论

相关推荐

点赞 评论 收藏
分享
投递OPPO等公司10个岗位
点赞 评论 收藏
分享
代码不跑我跑_bug...:北大杀完9✌杀,9✌杀完鼠鼠杀
你最希望上岸的公司是?
点赞 评论 收藏
分享
机械打工仔:不管啥专业,找工作改简历的第一课先把你那排版改了,简历上不要写个人简历四个字,找你要简历的谁不知道这个是简历?而且还占那么多空间,直接把自己名字和基础信息写上面,整体字体大一些。 还有这种经典两页简历一页大空白,导出PDF的时候多了一页几乎全是白的你自己看着不难受吗随手的事为啥不能改掉呢,这是态度问题,你试想一下你是HR你打开简历看到格式都没调整过会是什么感受?你自己都不重视你的简历,HR更不会在意。 然后内容你那个做两年咖啡就别往里写了,简历在精不在多,你在往你的简历里打字的时候就要想好这东西对你要找的工作有没有帮助。自我评价写一行就行了,不如给专业技能单开一栏。核心课程均分90这个真别写了,把你上过的有用的专业课列出来也行。有很多地方废话很多的精炼一下,比如你校内项目第一个写的那些,全然没有重点。 好好修改一下,我看你内容也挺优秀的,别被一个随便做的简历耽误了,我一个同专业的打工人看了都揪心更别说一天看几百份简历的HR
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务