美文网首页Git
git提交commit后push到远程仓库,如何修改commit

git提交commit后push到远程仓库,如何修改commit

作者: 就知道写代码 | 来源:发表于2017-09-18 17:42 被阅读0次

最近在提交代码的时候碰到一个问题,代码commit并push到远程仓库后发现提交人的信息有误,远程仓库显示的提交人不是我。虽然这对于开发来说并无大碍,但身为强迫症的我怎么能忍?但代码已经push到远程仓库了,怎么修改记录里提交人的姓名和邮箱?

在网上查了一些资料后,发现了很多种暴力的解决方法,比如直接删除整个分支等等。这里分享一种相对来说比较优雅的方法。

这里用到了git中的rebase,关于rebase相关知识网上很多,这里就不大刀阔斧的讲基本原理了,直接上解决方法。

首先我们要查看本地仓库的commit信息,这里可以打开git bash输入git log命令查看,也可以使用git GUI图形界面查看。这里我通过git GUI查看项目的commit信息。

git GUI界面

在项目根目录中打开git GUI界面,这里我没有其它分支,直接点击Visualize master's History就可以查看主线的历史记录了。

主线的历史记录

这里可以看到我们每一次commit的信息,包括SHA1 ID的值。这里我们只需要SHA1 ID值的前七位就行了。这里我们以修改前面两个commit用户名和邮箱为例。找到前两个commit前一次commit的SHA1 ID值前七位。这里是795b3a7。

打开git bash,执行rebase -i操作。

git bash

执行后会出现git的vim编辑器,里面会有哈希值为795b3a7的commit之后所有commit的信息。这时按下键盘i键进入编辑模式,将需要修改的commit信息前面的pick改成edit。按esc退出编辑模式,输入:wq保存并退出。

git vim编辑器

这时回到git bash界面,如果看到下面信息就表示成功了,可以开始修改commit信息了。

git bash

然后使用git commit --amend --author="zhangsan <zhangsan@qq.com>" --no-edit命令修改提交人的用户名和邮箱。修改完成后使用git rebase --continue命令继续修改下一条。

这时候打开git GUI查看历史记录就可以看到commit的信息已经被修改了。

git GUI

然后再无耻的使用git push --force命令将纂改后的历史记录强制push到远程仓库。(PS:强制更新有风险,使用需谨慎!在你强制更新的时候,如果别人也commit了代码,将会被你的强制更新覆盖!)

最后打开GitHub查看项目的历史记录可以看到修改的信息已经同步到服务器了。

相关文章

  • git提交commit后push到远程仓库,如何修改commit

    最近在提交代码的时候碰到一个问题,代码commit并push到远程仓库后发现提交人的信息有误,远程仓库显示的提交人...

  • git reset 撤回本地仓库、远程仓库的commit操作

    0x00 场景 提交代码到git时,想撤回某些已经commit的代码,这些commit甚至已经push到了远程仓库...

  • Android Studio项目上传至Git

    一、Git上传流程 Push:提交代码至仓库中(远程/本地)Commit:提交代码至本地仓库;Pull:远程仓库代...

  • git修改已经提交的commit

    git修改已经push过的commit信息 在使用git提交代码时会出现提交信息写错的情况,并且已经push到远程...

  • Android Git技巧

    1.commit代码,未push到仓库,如何修改commit message?

  • git commit --amend

    当你不小心,写错了提交的commit说明信息并提交到远程仓库乐了,我们该如何修改呢?在git中,其commit提供...

  • github- 常用的git的命令记录

    commit ——提交至本地代码仓库,不会提交到远程仓库 push——将本地代码仓库的变动同步到远程仓库中

  • git常用操作

    Git撤销已经推送(push)至远端仓库的提交(commit)信息 git reset --soft commit...

  • 使用git 遇到问题

    git push 到远程仓库时候 出现 commit-ID问题 之后出现修改找不到的问题 又出现文件修改颠倒问题。...

  • git恢复文件

    恢复已修改未add的文件git checkout 恢复(撤销)已经提交(commit并push)到远端仓库的com...

网友评论

    本文标题:git提交commit后push到远程仓库,如何修改commit

    本文链接:https://www.haomeiwen.com/subject/sdpysxtx.html