• githug rename_commit 修改已经commit但还没push的一条message


    githug 第 45 关, 一开始对 git rebase -i 这个东西有误解, 记录一下正确的用法

    ddmobadeMac-mini:git_hug ddmoba$ githug reset 45
    ********************************************************************************
    *                                    Githug                                    *
    ********************************************************************************
    resetting level
    
    Name: rename_commit
    Level: 45
    Difficulty: ***
    
    Correct the typo in the message of your first (non-root) commit.
    
    ddmobadeMac-mini:git_hug ddmoba$ 
    
    

    查找有拼写错误的那一条 commit

    ddmobadeMac-mini:git_hug ddmoba$ git log
    commit d30bc005638c278714faaa73f0fdc16052561750 (HEAD -> master)
    Author: hangj <hangj@protonmail.com>
    Date:   Fri Jun 29 11:35:05 2018 +0800
    
        Second commit
    
    commit 4f1341ac9134225719e5d704e420160657e8c38e
    Author: hangj <hangj@protonmail.com>
    Date:   Fri Jun 29 11:35:05 2018 +0800
    
        First coommit
    
    commit a632e3dfa31a06bcec9395c0690d43a3f2f09706
    Author: hangj <hangj@protonmail.com>
    Date:   Fri Jun 29 11:35:05 2018 +0800
    
        Initial commit
    ddmobadeMac-mini:git_hug ddmoba$ 
    
    

    First coommit // commit 写错了
    git rebase -i parent_of_flawed_commit

    ddmobadeMac-mini:git_hug ddmoba$ git rebase -i a632e3dfa31a06bcec9395c0690d43a3f2f09706
    

    然后跳到

    pick 4f1341a First coommit
    pick d30bc00 Second commit
    
    # Rebase a632e3d..d30bc00 onto a632e3d (2 commands)
    #
    # Commands:
    # p, pick = use commit
    # r, reword = use commit, but edit the commit message
    # e, edit = use commit, but stop for amending
    # s, squash = use commit, but meld into previous commit
    # f, fixup = like "squash", but discard this commit's log message
    # x, exec = run command (the rest of the line) using shell
    # d, drop = remove commit
    #
    # These lines can be re-ordered; they are executed from top to bottom.
    #
    # If you remove a line here THAT COMMIT WILL BE LOST.
    #
    # However, if you remove everything, the rebase will be aborted.
    #
    # Note that empty commits are commented out
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    "~/git_hug/.git/rebase-merge/git-rebase-todo" 21L, 693C
    

    编辑它,

    r 4f1341a First coommit
    pick d30bc00 Second commit
    
    # Rebase a632e3d..d30bc00 onto a632e3d (2 commands)
    #
    # Commands:
    # p, pick = use commit
    # r, reword = use commit, but edit the commit message
    # e, edit = use commit, but stop for amending
    # s, squash = use commit, but meld into previous commit
    # f, fixup = like "squash", but discard this commit's log message
    # x, exec = run command (the rest of the line) using shell
    # d, drop = remove commit
    #
    # These lines can be re-ordered; they are executed from top to bottom.
    #
    # If you remove a line here THAT COMMIT WILL BE LOST.
    #
    # However, if you remove everything, the rebase will be aborted.
    #
    # Note that empty commits are commented out
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    -- INSERT --
    

    然后 :x 保存, 会跳到

    First coommit
      
    # Please enter the commit message for your changes. Lines starting
    # with '#' will be ignored, and an empty message aborts the commit.
    #
    # Date:      Fri Jun 29 11:35:05 2018 +0800
    #
    # interactive rebase in progress; onto a632e3d
    # Last command done (1 command done):
    #    r 4f1341a First commit
    # Next command to do (1 remaining command):
    #    pick d30bc00 Second commit
    # You are currently editing a commit while rebasing branch 'master' on 'a632e3d'.
    #
    # Changes to be committed:
    #       new file:   file1
    #
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    "~/git_hug/.git/COMMIT_EDITMSG" 17L, 520C
    

    编辑它, 把 coommit 改成 commit

    First commit
      
    # Please enter the commit message for your changes. Lines starting
    # with '#' will be ignored, and an empty message aborts the commit.
    #
    # Date:      Fri Jun 29 11:35:05 2018 +0800
    #
    # interactive rebase in progress; onto a632e3d
    # Last command done (1 command done):
    #    r 4f1341a First commit
    # Next command to do (1 remaining command):
    #    pick d30bc00 Second commit
    # You are currently editing a commit while rebasing branch 'master' on 'a632e3d'.
    #
    # Changes to be committed:
    #       new file:   file1
    #
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    ~                                                                                                                             
    -- INSERT --
    

    然后 :x 保存, 跳到

    ddmobadeMac-mini:git_hug ddmoba$ git rebase -i a632e3dfa31a06bcec9395c0690d43a3f2f09706
    [detached HEAD ea3efe3] First commit
     Date: Fri Jun 29 11:35:05 2018 +0800
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 file1
    Successfully rebased and updated refs/heads/master.
    

    然后 git log 查看一下是否修改成功

    ddmobadeMac-mini:git_hug ddmoba$ git log
    commit 1f929783b1acb295aaf7b9dbe500629a1054484f (HEAD -> master)
    Author: hangj <hangj@protonmail.com>
    Date:   Fri Jun 29 11:35:05 2018 +0800
    
        Second commit
    
    commit ea3efe310a6a03a232171bf664401f62a5dc024e
    Author: hangj <hangj@protonmail.com>
    Date:   Fri Jun 29 11:35:05 2018 +0800
    
        First commit
    
    commit a632e3dfa31a06bcec9395c0690d43a3f2f09706
    Author: hangj <hangj@protonmail.com>
    Date:   Fri Jun 29 11:35:05 2018 +0800
    
        Initial commit
    ddmobadeMac-mini:git_hug ddmoba$ 
    

    done !!

  • 相关阅读:
    Go的几种函数式编程范例
    换零钱和快速幂
    随笔不是博客
    leetcode-51
    leetcode-50
    拨号器
    简易计算器的实现
    python入门:1-100所有数的和
    python入门:输出1-10以内除去7的所有数(简)
    python入门:输出1-10以内除去7的所有数(自写)
  • 原文地址:https://www.cnblogs.com/hangj/p/9242798.html
Copyright © 2020-2023  润新知