マギットで簡単にチェリーピックする方法は?


40

数か月間magitを使用していますが、とても気に入っています。しかし、私がまだターミナルでそれをしているのは、チェリーピッキングです。

これを行う簡単な方法は何ですか?

回答:


31

Magitバッファーでコミットが表示されるすべての場所で、そこにポイントを移動してからを入力することで、それをチェリーピックできますA A。複数のコミットを一度に選択することもできますA A。リージョンを使用していくつかのコミットを選択し、を押します。


45

Magitバージョン<= 1.4.2

とても簡単です:

  1. 概要を入力してください magit-status
  2. b bチェリーピックしたいブランチをチェックアウトします(を押します)。
  3. ログ範囲(を押しますl r l)を実行して、チェリーピックしたいコミットを見つけます。ここで、比較する2つのブランチを選択します。
  4. 選択するコミットまでスクロールし、を押しAて変更を適用し、コミットメッセージで一緒にステージングします。を押すaと、変更はステージングされず、変更のみが適用されます。

チェリーピックにログ範囲を設定する必要はありません。コミットログが表示されたら、いつでもを押しAて選択できます。

Magitバージョン> = 2.1.0

magitを2.1にアップグレードした後、ワークフローは異なります。どちらの方法でも、最初に起動する必要がありますmagit-status

方法Aチェリーピックは別のブランチから1つずつ変更します

  1. を押しloから、他のブランチのリストを取得します。
  2. チェリーピックしたいブランチを選択します。
  3. 移行は、あなたが必要とプレスがコミットAが続きA、再び。
  4. ステータス行には、選択したコミットが表示されます

    例えば feature/ABC~4

    を押しEnterて変更を適用します。

方法Bチェリー別のブランチからすべての変更を選択

  1. を押しAてチェリーピックモードを選択します。
  2. Aもう一度押して、変更を適用してコミットします。を押しaて変更のみを適用します。
  3. 変更をチェリーピックするブランチを選択し、を押しEnterます。

マージの競合をより適切に処理できるため、個人的には方法Aを好みます。


8

私はチェリーピッキングを使用しませんが?magit-statusショーでヒットしますy: Cherry。これによりコマンドが実行され、magit-cherryヘッドとアップストリームを選択できます。これはあなたが望むもののようです。

入力C-h r d m Magit RETしてMagitマニュアルを読むことができます。を使用C-s cherryして繰り返しヒットするとC-s、マニュアルを検索できます。情報はセクション23にあるように見えます:

快適さの1つは、gitどのコミットがアップストリームにマージされたが、ローカルではなく、その逆であるかを通知できることです。このためのGitのサブコマンドはcherry(と混同しないでくださいcherry-pick)です。Magitはこれをサポートしており、デフォルトでmagit-cherryバインドさyれています。

Magitは、比較で使用するアップストリームリビジョン(現在追跡されているリモートブランチがある場合はデフォルト)およびヘッドリビジョン(デフォルトは現在のブランチ)を最初に尋ねます。次に、すべてのコミットが方向マーカー、リビジョン、およびコミットメッセージの最初の行とともに一覧表示される新しいバッファーが表示されます。方向マーカーは+、上流-には存在するが先頭には存在しないコミットを示しているか、上流には存在しないが先頭に存在するコミットを示しています。

このリストから、個々のコミットaをチェリーピッキングするために通常のキーバインドを使用できます(コミットせずにチェリーピッキングする場合とA 、同じプラス自動コミットを使用する場合)。チェリーピックごとにバッファが自動的に更新されます。


1
Magitマニュアルを呼び出すとき、のC-h i代わりに行うことでキーストロークを保存できますC-h r d。これにより、Infoのトップレベルに直接移動できます。
itsjeyd

1
@itsjeyd Nahh、C-h i最後に開いた情報ファイルに移動するので、を押すと、C-h i mすべてのメニューではなく、SICPの章のメニューを見ている可能性があります。打っdた後、C-h iまたはC-h rあなたが打つ前にしたときにインフォディレクトリになることを保証しますm
乳母

それはいいトリックです、私はそれを知りませんでした!また、完全にオフトピック:SICPの情報バージョン?!コピーはどこで入手できますか?:)
itsjeyd

@itsjeyd私はDropboxに保管しています。ここから入手したと思います:github.com/webframp/sicp-info
nanny

1
ありがとう!MELPAをチェックしたところ、そのリポジトリからビルドされたパッケージがあることがわかりました。だから、同じくらい簡単にSICPの情報バージョンをインストールしているM-x package-install RET sicp RET:)
itsjeyd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.