Gitおさらい:GitHubのfork元の変更を取り込む
これはおさらいじゃないです。IntelliJのVCS->Gitにあってずーっと気になっていた「Rebase my GitHub fork」を試したかったのがホントウ。
何してくれる機能かというと、fork元の変更をforkした自分のリポジトリに取り込んでくれる。実際、どんなことしてくれるのかまで分かってなかったので、実験してみた。
forkしたつぶのみを選んだ理由がまさにこれ。初回にmasterブランチをキレイにしたのは、masterをfork元の追跡専用にしたかったから。ちょうど、自分の「つぶのみ」のリモートリポジトリと、片平堂本家の「つぶのみ」はこんな状態にある(昨日やったことは無かったことにしてるw
この (B) , (C), (D) を自分のリモートリポジトリに取り込みたい。早速、IntelliJから VCS->Git->Rebase my GitHub forkを実行してみると、こんなダイアログが表示された。
「https://github.com/katahirado/tsubunomi.gitをリモートリポジトリに加えるか?」みたいなこと聞いてきたので、断る理由もないから「Yes」と答える。IntelliJが裏で叩いてたgitコマンドは、たぶんこれ。
git fetch https://github.com/katahirado/tsubunomi.git +refs/heads/*:refs/remotes/upstream/*
どうやら片平堂本家は「refs/remotes/upstream/master」ってのに登録されたみたい。特に設定変更するところもなかったので、そのままRebaseを実行。裏側ではこんなコマンドが実行されてた。
git rebase -v -m refs/remotes/upstream/master
その後は特に何事も無くRebase完了(masterブランチをキレイにしてたので、当然ちゃあ当然か)。結果、こんな風になる。
IntelliJのChangesツールウィンドウでみるとこんな感じ。HEADがupstream/masterと同じなんだけど、これだとそこまで教えてくれない。
正直コミットグラフはSourceTreeがもっとも優秀な気がする...。そうは言ったものの、これらの一連の作業をすべてIntelliJ上でこなせた事からもIntelliJのgitサポートの本気度合いがうかがえる。去年までは個人的にはhg推しだったのだけれど、IntelliJのサポートにこんだけ差を付けられるとgit/GitHubに乗り換えたくなるのは仕方が無いことw
なんにせよ、よく分かんない「GitHubのfork元と再同期する」がコマンド一発で出来ちゃうIntelliJスゴイ!!:-)