请问怎么修改git历史提交的代码?

最近学习Flask web 开发。书中代码提交按章节来做标签,包含程序修改完整历史的git仓库。
已经 clone 这这个仓库,现在想在学习过程中,对每次提交的代码做些注释,以便以后的理解。可是一般情况下,对历史提交进行修改后,git会阻止签出后续其他历史版本。

笨办法就是,重新建立新的git仓库,把原仓库代码复制过来,加上注释提交后,在签出原仓库下一版本,在复制。
查看好像可以用 git rebase 命令,不过没弄清楚,修改后,和后续版本有冲突,如果每个后续版本都要修改冲突,好像和笨办法差不多,都太费时间?

请问大家有什么好的办法没?或者详细讲解下git rebase 命令能不能解决这个问题?

阅读 3.2k
2 个回答

可以使用git notes 命令

这个命令会给相应的commit添加note, 仅仅保存在本地, 不修改原本的commit

语法: git notes add -m "notes内容" 要添加notes的commitid
示例: git notes add -m "这是一段注释" 88f377cdaa1a4363837aefaa004a2d2a0a0343ba

可以用 git log 直接来查看notes
如果没显示, 用 git log --notes

你可以试试建立分支,然后打tag
比如你现在有一个第一章的代码加了注释,这时候你
git checkout -b first_chapter_with_comment 生成本地分支
git push origin first_chapter_with_comment 远端建立
git tag <*tag名称> 你打个标签在这儿,方便你以后的理解
你看这样行不行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题