Gitを使っての開発で、指定のツールや好みのGitクライアントを使っていると思います。
ターミナルの黒画面でGitコマンドを使うのはちょっと不安、GUI画面から画面を確認しながらGitを操作したい方向けの記事です。
GitのBranch作成やCheckout, Commit, Pushまで使えた方向けに、次の段階としてRebase, Cherry Pickなどの実行方法を説明します。
紹介するツール
Git操作イメージ
説明にあたりGitツリーが以下の状態であることを前提としています。feature
ブランチは個人の開発ブランチです。master
ブランチは状況により develop
ブランチなどに適宜読みかえください。
初期状態
masterブランチへRebase
git rebase master
に相当
コミットをまとめる(Squash)
git rebase -i
に相当
別ブランチのコミットを持ってくる(Cherry-pick)
git cherry-pick
に相当
Sourcetree
masterブランチへRebase
- リベースしたい元(featureブランチ)をチェックアウト
- リベースしたい先(masterブランチ)で右クリックし、「リベース…」を選択
- 「リベースの確認」ダイアログが立ち上がり、「OK」をクリック
- featureブランチがmasterブランチから生えていることを確認
コミットをまとめる(Squash)
- リベースしたいブランチ(featureブランチ)をチェックアウト
- まとめたいコミットの1つ前のコミット(今回はmaster Bコミット)を右クリック
- 右クリックメニューから「xxxxの子とインタラクティブなりベースを行う…」を選択、
- リベースダイアログが立ち上がる。1つ目のコミット(feature E)を選択し、「前のコミットとスカッシュ」を選択
- コミットがまとまったことを確認し「メッセージを編集」ボタンをクリック
- コミットメッセージを編集し「OK」ボタンを押し、メッセージが変更されたことを確認
- 「OK」ボタンを押してリベースを確定する
- Sourcetree画面に反映されない場合には「F5」を押し更新
別ブランチのコミットを持ってくる(Cherry-pick)
- チェリーピックしたい先(featureブランチ)をチェックアウト
- 持ってきたいコミット(今回はmaster Dコミット)を右クリック
- 「チェリーピック」を選択
- チェリーピックダイアログが立ち上がる。「OK」を選択
- featureブランチに持ってきたコミットが追加されてることを確認
Visual Studio Code with Git Graphプラグイン
事前準備
- 以下のプラグインをインストール
Git Graph - Visual Studio Marketplace - Git Graph画面を開く
masterブランチへRebase
- リベースしたい元(featureブランチ)をチェックアウト
- リベースしたい先(masterブランチ)で右クリックし、「Rebase current branch on this Commit…」を選択
- ダイアログが立ち上がり、「Yes, rebase」をクリック
- featureブランチがmasterブランチから生えていることを確認
コミットをまとめる(Squash)
Issueが上がっているが、GUI単独では現時点でできない。
リベース選択時に「Launch Interactive Rebase in new Terminal」を選択することにより一部CUIを併用することで実現可能。
別ブランチのコミットを持ってくる(Cherry-pick)
- チェリーピックしたい先(featureブランチ)をチェックアウト
- 持ってきたいコミット(今回はmaster Dコミット)を右クリック
- 「Cherry Pick…」を選択
- ダイアログが立ち上がり、「Yes, cherry pick」を選択
- featureブランチに持ってきたコミットが追加されてることを確認
IntelliJ IDEA
事前準備
「View」メニューから「Tool Windows」⇒「Git」と選択しGitの画面を表示する
masterブランチへRebase
- リベースしたい元(featureブランチ)をチェックアウト
- 左のブランチ一覧からリベースしたい先(masterブランチ)で右クリックし、「Rebase Current onto Selected」を選択
- featureブランチがmasterブランチから生えていることを確認
コミットをまとめる(Squash)
- リベースしたいブランチ(featureブランチ)をチェックアウト
- まとめたいコミットの最初(今回はmaster Cコミット)を右クリック
- 右クリックメニューから「Interactively Rebase from Here…」を選択、
- リベースダイアログが立ち上がる。1つ目のコミット(feature E)を選択し、「Squash」を選択
- コミットメッセージを編集しエディタ外をクリックし、メッセージが変更されたことを確認
- 「Start Rebasing」ボタンを押してリベースを確定する
- コミットがまとまったことを確認
おわりに
私は普段IntelliJのGo言語特化版のGolandで開発をメインに行ってます。
本記事は、開発メンバーがGitの使い方に苦労しているのを見たり、相談が来て生まれました。できるだけ視覚的に理解できるよう、記事を書いたつもりです。
本記事を通し、少しでもGitの操作の苦手意識を減らし、理解を深めることができたら幸いです。(この記事を書くにあたりgit reflog
コマンドが非常に役立ちました。)
紹介したツールや実行方法は一例です。
自分にあったツールやコマンドを使い、良いGitライフを!