GitHub Desktopは、エンジニアが日々のGitやGitHubのワークフローを直感的な方法で完了できるようにすることを目的として開発しています。この1年間で最も多かったリクエストが、cherry-pickへの対応です。GitHub Desktop 2.7でこの機能をリリースでき、とても嬉しく思います。
cherry-pickは、commitを持つブランチから別のブランチにコピーしたいときに役立つ機能です。単にcommitを選んでブランチにドラッグアンドドロップするよりも、もっと直感的な方法でcommitをコピーできます。
例えば、新機能の開発を始めて、開発環境に複数のcommitを行う際、基盤となるアーキテクチャに既存のバグがあることが分かったとします。バグ修正のcommitをいくつか作成したものの、修正プログラムを実稼働環境に適用する必要があり、新機能の開発が終わるまで待てないと判断しました。そんな時は、リリースブランチを作成し、GitHub Desktopで作成したcommitをホットフィックス用の新しいブランチにcherry-pickするだけで済みます。
committをドラッグ&ドロップ
チェリーピックするcommittが1つの場合は、そのcommitをドラッグするだけです。
commitが複数ある場合は、Shiftキーを押しながらコピーしたい範囲をクリックし、ドラッグします。
cherry-pick機能
cherry-pickに伴ういくつかの機能もご紹介します。
- Undo:commitのグループをcherry-pickした直後に、そのcommit数が多すぎた場合には、成功したことを示すバナーの[Undo (元に戻す)]をクリックして、それらのcommitを削除します。すると操作を開始したブランチに戻ります。
- Conflict resolution:全てのcherry-pickが簡単に実行できるわけではなく、競合が発生する場合もあります。mergeとrebaseでいつもの競合解消ダイアログを利用して、mergeのコンフリクトを解消することができます。
- Context menu:ドラッグ&ドロップを使わないcherry-pickも可能です。1つまたは複数のcommitを右クリックし、cherry-pickのオプションを選択してブランチダイアログを開き、ターゲットブランチを選択します。
commit属性の改善
GitHub Desktop version 2.6以降の新機能は、cherry-pickだけではありません。個人用のリポジトリと仕事用のリポジトリを切り替えている方は、GitHub Desktopで、属性を間違えたままでのcommitの実行を回避できます。皆さんのアバターに警告アイコンが表示されるようになったので、そのアイコンをクリックすると、自分のGitHubアカウントに関連付けられたメールに一致するようにGitの設定を簡単に更新できます。
GitHub Desktopに関するリクエスト
cherry-pickは、エンジニアの皆さんのリクエストから導入に至りました。これは、ユーザーフィードバックを踏まえてリリースした機能・改善の一例にすぎません。Gitをよりいっそう活用するために、今後もGitHub製品をユーザーフレンドリーなものにしていきます。そのためにも、皆さんのフィードバックは大変貴重なものとなっています。
GitHub Desktopをダウンロードして、オープンソースリポジトリで皆さんのご意見をお寄せください。