0

私たちのクライアントは、私たちのプロジェクトの 1 つの大きな新機能 (FA と呼びましょう) について考えを変えました。今、彼はこの機能のサブセットを別の方法で統合 (FB と呼びましょう) したいと考えており、その後、最初に要求されたすべての機能を追加しました。の機能ですが、FB で行われた変更とマージされ、重複する変更は FB から取得されます。

私はこのgitの状況を持っています:

  • 現在運用中の安定版リリースの master ブランチ
  • FA支部

これで、マスターから新しいブランチ FB を作成しました。

FA からいくつかの変更を統合し、いくつかの作業を行ってから、FA を FB に完全にマージし、最後にすべてをマスター ブランチに配置する必要があります。

FAとFBからのコミット履歴を可能な限り保存せずに、これを行うための最良の方法は何ですか?

4

1 に答える 1

0

FAブランチからFBcherry-pickへのコミットの一部を実行できます。を使用して、 FAから取り出したいコミットを選択し、それらをFBに統合できます。cherry-pick

FBブランチにいて、 FAからいくつかのコミットを統合したいとします。

まず、 FAブランチのすべてのコミットのリストを取得します。

git log --oneline

ここで、すべてのコミットを取得すると、ディスプレイに SHA とコミット メッセージが表示されます。

git checkout FB

git cherry-pick SHA

--edit上記の命令にタグを渡すこともできます。コミットメッセージを編集できるようになります。

もう 1 つの便利な点として、オプションを使用してステージング エリアcherry-pickに入ることができます。これにより、cherry-picked コミットがステージング エリアに配置されます。この時点で、ステージング領域を修正して、部分的または完全にコミットできます。--no-commit

チェリーピックした場所を追跡したい場合。オプションを追加でき-xます。これにより、ソース SHA がコミット メッセージに追加されます。また、誰が何をチェリーピックしたかを追跡したい場合は、--signeoffオプションを使用してください。コミットメッセージにユーザーのユーザー名を追加します。

それが役に立てば幸い。

参照

チェリーピック

于 2016-08-10T09:29:25.843 に答える