8

プッシュされていないコミットが3つあるとしましょう。ここで、1番目または2番目のコミットのコミットメッセージを変更したいと思います(3番目のコミットに変更するのは簡単git commit --amendです)。どうやってするか?

4

2 に答える 2

6

これは強力なgit rebase -iコマンドの仕事です。また、Gitブックのインタラクティブリベースのセクションも参照してください。

于 2010-10-15T07:31:41.453 に答える
6

サブ質問にリバウンドするには:git commit --amend前のコミット(最後のコミットだけでなく)の場合は、次のようなものを試すことができます(まだテストされていませんが、ColinO'Dellはコメントでcolinodellのスクリプトを作成したと述べています/ git-amend-old):

git checkout -b tmp
git reset --hard HEAD~2
git commit -amend 
git rebase --onto tmp HEAD@{1} master

それは次のようになります:

x---x---x---x---x
                ^
                |
               (master*) (* = current branch)

git checkout -b tmp
x---x---x---x---x
                ^
                |
               (tmp*, master) 

git reset --hard HEAD~2
x---x---x---x---x
        ^       ^
        |       |
      (tmp*) (master) 

git commit -amend 
      y (tmp*) 
     /
x---x---x---x---x
        |       ^
   (HEAD@{1})   |
          (master) 

git rebase --onto tmp HEAD@{1} master
    (tmp)
      y---x'---x' (master*) 
     /
x---x---x---x---x (only referenced in reflog)
于 2010-10-15T09:12:20.447 に答える