3 人が一緒に開発し (たとえば、A、B、C)、コードを開発ブランチに送信します。プロジェクトがオンラインになったので、開発ブランチで A が送信したすべてのコードを次のとおりにする必要があります。提出されたコードに関係なく、これを実装するにはどうすればよいでしょうか?
まず第一に、この開発プロセスには問題があると言わざるを得ません。
ABC が独立した機能を個別に開発する場合は、独自のブランチを使用する必要があります。このようにすると、管理と保守が非常に便利になり、そのような奇妙な問題がなくなります。
それでは、あなたの奇妙なニーズを満たす方法:
git log --author=... --format='%H' commit-range を使用してコミット番号を調べます
次に、逆の順序で rev コマンドにパイプし、それをループして、コミットを 1 つずつ git チェリーピックしてマスター ブランチに送信します
報酬はありません、具体的な注文を書くのが面倒です。結局のところ、完全なコマンドは自分でテストして実行可能にする必要があります。テスト環境を整えるのが面倒。ドキュメントを確認して、自分で試してみてください。
それらは共同で開発ブランチに送信されているため、A は確実に B と C のコードをプルし、マージによってそれらを水のボトルに変えた後に分離することができます。 唯一の方法は、ログと差分を調べて手動で分離することです。
ABCは提出されてdevelopにマージされているので、ABCを区別する方法はありませんよね? Aのコードに問題がないと判断された場合、ブランチAにマージする必要のあるコードを直接マスターに提出しても良いでしょうか?
1. リモート ウェアハウスからプロジェクトのクローンを作成し、ローカル ウェアハウスに配置します。 2. このファイルのマスター ブランチ上に、リモート ウェアハウスの A ブランチと同じ名前の新しいブランチを作成します。 Git を使用している場合は、 checkout -b 'A ブランチ名': create を使用し、このブランチを直接入力することをお勧めします。 3. この新しいブランチでは、リモート倉庫からブランチ A を取得し、ローカル倉庫に送信します。 4. master ブランチに切り替え、新しく作成したブランチをマージして送信します。
2 つの具体的な実装が考えられます:
つまり、開発のためにローカルでブランチをプルし、開発ブランチを経由せずにローカルからマスターに直接マージします (ただし、これは使用しないでください)。この方法では、ローカル コードが確実に実行されるようにする必要があります。開発のものと一致しています
もう 1 つの方法は、B と C は独自のコード行を削除してからマージすることしかできないということです
最後に、この種の Git 操作は、お客様のビジネスおよび開発モデルに基づいて分析する必要がある場合があるため、上記で得られた答えが必ずしも開発仕様を満たしているとは限りません。
1. A がカットブランチで、開発後に開発にマージされた場合、マスターの開発ブランチにコードをマージできます (開発が BC コードを必要としない場合は、コミットされていない元のバージョン番号をロールバックして、A コードをマージできます) 、その後、マスター マージ) 2. A が ローカル開発 の場合、送信があまりない場合は、ログを表示して、マスターで A によって送信されたエントリを直接チェリーピックすることもできます
まず第一に、この開発プロセスには問題があると言わざるを得ません。
ABC が独立した機能を個別に開発する場合は、独自のブランチを使用する必要があります。このようにすると、管理と保守が非常に便利になり、そのような奇妙な問題がなくなります。
それでは、あなたの奇妙なニーズを満たす方法:
git log --author=... --format='%H' commit-range を使用してコミット番号を調べます
次に、逆の順序で rev コマンドにパイプし、それをループして、コミットを 1 つずつ git チェリーピックしてマスター ブランチに送信します
報酬はありません、具体的な注文を書くのが面倒です。結局のところ、完全なコマンドは自分でテストして実行可能にする必要があります。テスト環境を整えるのが面倒。ドキュメントを確認して、自分で試してみてください。
それらは共同で開発ブランチに送信されているため、A は確実に B と C のコードをプルし、マージによってそれらを水のボトルに変えた後に分離することができます。
唯一の方法は、ログと差分を調べて手動で分離することです。
ABCは提出されてdevelopにマージされているので、ABCを区別する方法はありませんよね? Aのコードに問題がないと判断された場合、ブランチAにマージする必要のあるコードを直接マスターに提出しても良いでしょうか?
1. リモート ウェアハウスからプロジェクトのクローンを作成し、ローカル ウェアハウスに配置します。
2. このファイルのマスター ブランチ上に、リモート ウェアハウスの A ブランチと同じ名前の新しいブランチを作成します。 Git を使用している場合は、 checkout -b 'A ブランチ名': create を使用し、このブランチを直接入力することをお勧めします。
3. この新しいブランチでは、リモート倉庫からブランチ A を取得し、ローカル倉庫に送信します。
4. master ブランチに切り替え、新しく作成したブランチをマージして送信します。
2 つの具体的な実装が考えられます:
つまり、開発のためにローカルでブランチをプルし、開発ブランチを経由せずにローカルからマスターに直接マージします (ただし、これは使用しないでください)。この方法では、ローカル コードが確実に実行されるようにする必要があります。開発のものと一致しています
もう 1 つの方法は、B と C は独自のコード行を削除してからマージすることしかできないということです
最後に、この種の Git 操作は、お客様のビジネスおよび開発モデルに基づいて分析する必要がある場合があるため、上記で得られた答えが必ずしも開発仕様を満たしているとは限りません。
1. A がカットブランチで、開発後に開発にマージされた場合、マスターの開発ブランチにコードをマージできます (開発が BC コードを必要としない場合は、コミットされていない元のバージョン番号をロールバックして、A コードをマージできます) 、その後、マスター マージ)
。2. A が ローカル開発 の場合、送信があまりない場合は、ログを表示して、マスターで A によって送信されたエントリを直接チェリーピックすることもできます