Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

TortoiseGit rebase

タグ: Git TortoiseGit Windows

TortoiseGit 1.6.5(with msysGit 1.7.4)の使い勝手を調べていたときのお話。

tgit_rebase_1.png

この状態から

tgit_rebase_2.png

piyoブランチをmasterブランチのHEADにrebaseしようとしたら

tgit_rebase_3.png

「add piyo.txt」のコミットが消えた。

rebaseの使い方を誤ったのだろうか?
いずれにせよ、このおかしな歴史は元に戻さなければならない。
shift+コンテクストメニューでReflogを出す。

tgit_rebase_4.png
tgit_rebase_5.png

何か表示がおかしい気がするが……

tgit_rebase_6.png

Refを指定したらすっきりした。

tgit_rebase_7.png

piyo{1}を選び、「add piyo.txt」の頃にresetする。
これで無事、rebaseする前の状態に戻ることができた。

さて、この「rebaseするとコミットが消える」現象。
TortoiseGitのIssuesの方にも「時々起こる問題」として何件か上がっているが、最終的には「Issue 512: Git sync lose local commits (remote update, fetch and rebase)」にて

The issue always occurred on single-core machines, or when manually setup affinity mask of TortoiceProc to one core.

「シングルコアのマシンなら確実に起こる」というコメントと共にパッチが上げられていた。
シングルコアとは、なるほど今時のマシンでは発症しにくそうな不具合である。

では、このパッチを適用したバイナリを入れて再度rebaseしてみよう。

tgit_rebase_8.png
tgit_rebase_9.png

今度は期待通りの歴史になることが確認された。

スポンサーサイト

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://idlysphere.blog66.fc2.com/tb.php/260-b8eb5533
この記事にトラックバックする(FC2ブログユーザー)

Appendix

タグ

Blog内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。