目次
拡張: コミット レコードをロールバックするにはどうすればよいですか?
問題現象:
今日、git のチェリーピック機能を学んだので、質問をしました。
IDEA で git チェリーピックの視覚的な操作を実現するにはどうすればよいですか?
問題分析:
まず、git のチェリーピック機能とは何なのかを理解しましょう。
1. まずコマンドの形式について説明します。
git チェリーピックコミットレコードの ID 識別
2. 関数について話しましょう。
git Cherry-pick: 特定のコード ブランチのコミット変更を現在のコード ブランチにマージするために使用されます。
一見すると、merge と似ていることがわかりますが、違いは次のとおりです。
マージ:特定のコード ブランチを現在のコード ブランチに完全にマージすることです。完全なマージとは、マージ後、現在のブランチとマージされたブランチ内のすべてのファイルが完全に一貫していることを意味します。
チェリーピック:特定のブランチ上の特定のコミット操作の変更を現在のコード ブランチに正確にマージできます。つまり、マージ後、現在のブランチとマージされたブランチは、コミット操作によって変更されたファイルと完全に一致します。ただし、他のファイルでは必ずしもそうではありません。
3. 最後に、利点について説明します。
3.1. マージされたブランチに複数のコミット送信レコードがある場合、すべてのコミット送信レコードが現在のブランチに必要なわけではないため、コミット送信レコードに従って実際に必要なものをマージできます。 。
3.2. コミットレコードをユニットとして組み合わせることで、現在のブランチのマージ情報をより明確かつ詳細に作成できますチェリーピックはデフォルトでコミットレコードをマージ操作に取り込むため、どのような操作が行われたかを明確に把握できます現在のブランチ内で、現在のブランチとマージされたブランチのコミット レコードが一貫していることを確認します。マージは 1 回限りのマージであり、ログを書き込めず、コミット レコードに基づいて現在のブランチで何が変更されたかを明確に知ることもできません。マージ レコードまたはマージされたコミット レコードの影響を受けるファイルのみを確認できます。ブランチの欠陥。
しかし、これは意見の問題でもあります。マージの完全なマージは確かに時間と労力を節約しますが、チェリーピックは粒度を追求するためです。したがって、チェリーピックは、マージされたブランチのコミット記録が少ない場合に適しています。たとえば、
テスターはバグごとに問題を記録してディスパッチします。問題記録を受け取った開発者は、バグごとに問題を排除する必要があります。コミットバグが解決されるたびに 1 回実行し、次のテスト計画で検証する必要があるバグに応じてコミット レコードを 1 つずつ厳選します。
解決:
1. まず、IDEA の下部にあるメニュー バーにバージョン コントロール項目 があることを確認します 。ない場合は、次の 2 つの方法でその項目を呼び出すことができます。
1.1: ショートカット キー alt+F9を押します。
1.2:上部のメニュー バーで[表示] - [ツール ウィンドウ] - [バージョン管理]をクリックします。
2. 下部のメニュー バーで[バージョン コントロール] - [ログ]をクリックします。右下隅で、現在のブランチが (開発)であることがわかります。以前にブランチにいくつかのレコードを送信しました ( task/111-001-testing the stash git の関数)、図に示すように:
3. マージするコミット レコードを選択し、右クリックしてチェリーピックします。
ウィンドウがポップアップ表示されたら、左側でこのコミット レコードによって変更されたすべてのファイルを選択し、右側で「それらのファイルを受け入れる」をクリックします。
ポップアップ ウィンドウで、マージされたブランチのコミット レコードのログも取得されていることを確認できます。[コミットしてプッシュ] をクリックします。
プロンプト ウィンドウが表示されます。これはおそらく、このコミット マージのコードが解析されていることを意味します。右下隅に 2 つのプロセスが実行中... という文字が表示されますが、ここでは無視して、[コミット] をクリックします。
コミット&プッシュが成功しました:
ここまで、IDEAにおけるgitのチェリーピック可視化操作は実現できたでしょうか?
拡張: コミット レコードをロールバックするにはどうすればよいですか?
時々間違いを犯したり、間違ってマージしたりすることがあるため、送信されたレコードをロールバック/ロールバックする方法は次のとおりです。
1. まず、コミット レコードが現在のブランチに属していることを確認します。これは、他のブランチのコミット レコードを操作するのは無効であるためです。
2. ロールバックするコミット レコードを選択し、右クリックして [リセット] を選択します。
ポップアップ コミット ウィンドウ。ここで一度コミットしてロールバック操作を記録できます。また、直接閉じたりキャンセルしたりすることもできます。
この方法では、このロールバック操作は記録されません。実際の状況によって異なります。とにかく、送信されたかどうかに関係なく、ロールバックは成功します。
もう一度間違いを犯し、ロールバックすべきではない、または現在のコミット レコードをロールバックすべきではないことがわかった場合は、前のチェリーピック マージが成功した後でコミット レコードをチェリーピックできます。この操作にはコミットは必要ありません。もう一度ログを記録するので、非常に便利です。
別のロールバック操作である [現在のブランチをここにリセット] では、現在のブランチを履歴コミット レコード内の特定の状態にロールバックできます。
ポップアップ ウィンドウ。ここでは [Keep] を選択します。これは、ロールバック後に現在のブランチの変更を保持することを意味します。たとえば、最初に新しいファイルを作成し、次に [Rollback] をクリックすると、新しいファイルはロールバック後もまだ存在します。損失)。