zoukankan      html  css  js  c++  java
  • 如何修改Git已提交的日志

    在某些时候,你发现了之前提交到git上的日志描述不全或者描述有误,这时你是会想要修改它的。 但提交已经是push到服务器,甚至是已经有好几个提交在后面了,这个怎么办呢?Git提供了一些方法来修改。

    下面分为四种情况来处理。

    情况一:最后一次提交且未push

    执行以下命令:

    git commit --amend
    

    git会打开$EDITOR编辑器,它会加载这次提交的日志,这样我们就可以在上面编辑,编辑后保存即完成此次的修改。

    情况二:最后一次提交且已push到服务器

    执行以下命令:

    git commit --amend
    git push origin master --force
    

    和情况一的做法一样。使用push推送到远程服务器是需要加上--force,让服务器更新历史记录。

    需要注意的是:把修改后的日志强制push到Git服务器,如果别人本地的副本有修改,很有可能会导致他们同步不了,所以最好和他们核对下。

    情况三:旧的提交且未推送

    假设commit是倒数第3次提交,这个可以使用git log查看,

    $ git log
    commit b1b451d218cc23b6c769f373164f2b89cf54d0aa
    Author: clcaza <clcaza@sina.cn>
    Date:  Sat Mar 10 19:09:08 2018 +0800
    
      添加内容d
    
    commit 04f0d1809d5d31cc6e930efcba47a5f3f7e93319
    Author: clcaza <clcaza@sina.cn>
    Date:  Sat Mar 10 19:08:24 2018 +0800
    
      添加内容c
    
    commit 94fc8feb916442d56b558d5c370f18f057298921
    Author: clcaza <clcaza@sina.cn>
    Date:  Sat Mar 10 19:07:08 2018 +0800
    
      添加内容a
    
    commit fd517efa9faf6a5ec71d0eac38fbcfa0cd689f40
    Author: clcaza <clcaza@sina.cn>
    Date:  Sat Mar 10 19:06:21 2018 +0800
    
      init
    

    执行rebase

    git rebase -i HEAD~3
    

    它会打开一个编辑器,它会把最后前3次的提交显示出来,类似于:

    pick 94fc8fe 添加内容a
    pick 04f0d18 添加内容c
    pick b1b451d 添加内容d
    

    你会看到,它是按提交的顺序显示的,与git log显示的顺序相反。定位到你要编辑日志的那一行,把pick修改为edit,然后保存。

    接着就是修改日志内容了

    git commit --amend
    

    完成编辑日志后,记得执行:

    git rebase --continue
    

    Rebase目的是打开提交的历史记录,让您选择要修改的内容。 Git会让你在一个新的分支修改内容。 git rebase --continue则是让你重新回到之前的分支。

    情况四:旧的提交且已push到服务器

    前面编辑日志的操作是和情况三是一样的:

    git rebase -i HEAD~X
    git commit --amend
    git rebase --continue
    

    X表示倒数第几次提交。

    完成编辑日志后,执行push:

    git push origin master --force
    

    注意:这个情况二相似,把修改后的日志强制push到Git服务器,如果别人本地的副本有修改,很有可能会导致他们同步不了,所以最好和他们核对下。

     

    ——以上内容节选自 码经笔记

  • 相关阅读:
    用redux-thunk异步获取数据
    用react + redux + router写一个todo
    用react+redux写一个todo
    给产品经理算的一卦。。。
    不知道为什么,我这里出了问题
    通过回调函数阻止进程创建(验证结束,方案完全可行)
    内核回调的触发时机
    我犯下的错误
    搬家完成
    sqlmap从入门到精通-第七章-7-14 绕过WAF脚本-overlongutf8.py&overlongutf8more.py
  • 原文地址:https://www.cnblogs.com/China-Dream/p/15331446.html
Copyright © 2011-2022 走看看