Sourcetreeで、他リポジトリからチェリーピックする

別のリポジトリからチェリーピックする

わたしはGUIのSourcetreeでGitを使っています。

レポジトリ内のブランチ間のチェリーピックは右クリックメニューで簡単にできますが、ほかのリポジトリ(PC内の他のローカルフォルダにあるGitリポジトリ)でおこなった修正を取り込んでチェリーピックするにはひと手間必要です。

その方法について、コマンドを使ったCLIでの操作方法はいろいろと紹介されていますが、GUIのSourcetreeを使った方法はネット上に解説がないようなので、覚書としてここに書いておきます。

Sourcetreeで別レポジトリからチェリーピック

作業の流れは、以下のとおりです。

設定例:

  • 現在作業しているリポジトリA
  • 取り込みたいコミットのあるローカルリポジトリB

Bをリモートレポジトリとして登録

チェリーピックしたいコミットのあるローカルレポジトリBを、Sourcetreeに「リモート」として登録します。

右上の歯車マークの「設定」>「リモート」画面の「追加」

リポジトリBがあるフォルダの絶対パスを記載して「OK」。残りの設定はデフォルトのままでかまいません。

*なお、「リポジトリBがあるフォルダ」とは、隠しフォルダ「.git」の直上のフォルダです。

追加したリモート(B)からコミット履歴をフェッチ

Sourcetreeの左側のサイドバーの「リモート」セクションに、追加したリモート名が表示されているはずです。

そのリモート名を右クリックし、「フェッチ」を選択。

これにより、元のリポジトリBのコミット履歴が、現在のリポジトリAのSourcetreeのHistoryビューに取り込まれます。

cherry pickしたいコミットを指定

Sourcetreeの履歴(「History」タブ)に、リモートブランチが追加されているはずです。

そのリモートブランチのチェリーピックしたいコミットを右クリックし、チェリーピックを選択→OK。

以上で完了です。

リモートの削除(必要なら)

チェリーピックが完了し、もうローカルリポジトリBを参照する必要がない場合は、リモート設定を削除できます。

  1. Sourcetreeのメイン画面の右上にある「設定」ボタン(歯車のアイコン)をクリック。
  2. 表示されるダイアログの左側で「リモート」を選択。
  3. 削除したいリモート(リポジトリB)を選択し、「削除」ボタンをクリック→「OK」。

以上です。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク