git修改已经提交到远程的commit信息
本文最后更新于:9 分钟前
git修改已经提交到远程的commit信息
1.git log/git reflog
开始之前先查看log日志
git log
git log
命令可以显示所有提交过的版本信息
git reflog
git reflog
可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
2.修改最近某个commit message
找出最近提交的commit
git rebase -i HEAD~3
git rebase -i HEAD~3
HEAD~3表示将修改当前版本的近三条commit。
git rebase -i 哈希值
或者,也可以直接用git每次commit生成的哈希值——SHA-1码来定位(git log中可找到对应的哈希值)。可以使用简码,也可以使用全码,其实只要没有歧义即可。git rebase -i ffc21e
git rebase -i ffc21e88dbad1742ae32889461c5981ea50f1283
git rebase -i –root
以上两种命令虽然可以解决大部分的情况,但是依然会有失效的时候。
这时候我们就需要用第三条命令了。git rebase -i --root
修改
以上命令输入成功之后输出结果
1 |
|
进入/推出编辑模式
以上结果出来后,控制台输入 i
进入编辑模式,然后我们就可以进行修改了,比如我要改第一条
1.把第一条的“pick”修改为“edit”。
1 |
|
2.键盘esc
退出编辑模式,:wq
保存文件并退出
git commit –amend
控制台输出
1 |
|
根据提示,控制台输入git commit --amend
或者git commit --amend -s
正常来说你不需要加-s,如果你加了-s,是这样的 :加不加-s都是可以的,-s表示要加入签名。
修改成功之后会多一个签名 Signed-off-by: jackxxx jackxxx@foxmail.com
进入编辑模式,修改commit信息,保存并退出
1 |
|
git rebase –continue
将基变合并git rebase --continue
控制台输出以下则成功
1 |
|
3.推送到远程
git push/git push -f
git push
git push
推送到远程
如果提示失败
1 |
|
如果你确定你的代码没有问题的话,你可以强提代码到远程,也就是强制push
git push -f
git push -f
强制推送到远程
4.友情提醒
如果你只是为了好奇而在本地尝试了本文的以上命令,但是尝鲜过后不想要更改了,你可以使用下面的命令 。git pull --rebase origin master
或者git pull --rebase origin 分支名
运行了这行代码后,会pull远程仓库的代码到本地,强行覆盖本地的所有修改。
这样就和以前一样啦~
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!