ホーム > 日記 > gitのcommit logの名前、Authorを間違えた、しかも2つも、私ってほんとバカ、そんな時

gitのcommit logの名前、Authorを間違えた、しかも2つも、私ってほんとバカ、そんな時

直前が修正はcommit –amend –authorで変更できます。

git commit --amend --author="hoge <hoge@example.com>"

問題は、2つも間違ってやっちまった場合。

ログの確認

とりあえず、git logを眺めてみます。

git log

結果はこちら。

commit 5450b0d86ed1310550a934f884b9eb08b515880c
Author: unknown
Date: Thu Aug 8 19:50:20 2013 +0900

修正2

commit d6212fb1aeb141552a892f2417fb0cb648a7a74d
Author: unknown
Date: Wed Aug 7 21:00:25 2013 +0900

修正1

commit 05dd166e88af43b90d95e1551d779fc72907478d
Author: hoge <hoge@example.com>
Date: Wed Aug 7 20:28:40 2013 +0900

First Commit!

履歴の改変

履歴改変なので、git rebaseを使います。
最新から2つなので以下のように。

git rebase -i HEAD~2

リビジョン指定する場合は、変更したいりビジョンの1つ前のものを指定するとそれ以降変更できます。

git rebase -i 05dd166e88af43b90d95e1551d779fc72907478d

すると既定のエディタが立ち上がり以下のような表示になります。

pick d6212fb 修正1
pick 5450b0d 修正2

# Rebase 05dd166..5450b0d onto 05dd166
#
# 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
#
# 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

今回はAuthorを変更したいので、「pick」の部分を「edit」へ変更します。

1つ目の履歴改変

保存すると、変更する最初の履歴の処理に移ります。

Stopped at d6212fb... 修正1
You can amend the commit now, with

git commit --amend

Once you are satisfied with your changes, run

git rebase --continue

commit –amendした後にrebase –continueしろとのことなので言われるママに。

git commit --amend --author="hoge <hoge@example.com>"

修正され、リビジョンが新しいものが振られました。

[detached HEAD ad48807] 修正1
1 file changed, 1 insertion(+), 4 deletions(-)

続いて、rebase –continue

git rebase --continue

2つ目の履歴改変

次のコミットに移りました。

Stopped at 5450b0d... 修正2
You can amend the commit now, with

git commit --amend

Once you are satisfied with your changes, run

git rebase --continue

同じようにcommit –amend

git commit --amend --author="hoge <hoge@example.com>"

こちらも新しいリビジョンが振られました。

[detached HEAD 219cca8] 修正2
3 files changed, 7 insertions(+), 5 deletions(-)

同じく、rebase –continue

git rebase --continue

すると成功したようです。

Successfully rebased and updated refs/heads/master.

確認

ログを確認してみます。

git log

結果は以下のように、Authorが変更され、新しいリビジョンが振られました。

commit 219cca8098e26938c8b7da88d5b32adf4bc040b2
Author: hoge <hoge@example.com>
Date: Wed Aug 7 21:00:25 2013 +0900

修正2

commit ad4880774556f7be4dbda943c9cb1d6567e2c4f0
Author: hoge <hoge@example.com>
Date: Wed Aug 7 20:28:40 2013 +0900

修正1

commit 05dd166e88af43b90d95e1551d779fc72907478d
Author: hoge <hoge@example.com>
Date: Wed Aug 7 18:07:38 2013 +0900

First Commit!

修正できました。おめでとう。

カテゴリー: 日記 タグ: