Git ではコードが自動的にマージされますが、マージ時にバグが発生する可能性はありますか?
迷茫
迷茫 2017-06-17 09:15:34
0
9
1344

以前 SVN を使用していたときにこの問題について考えたことがありましたが、その時は理解できず、バグには遭遇しませんでした。
今、Git を学習しているのですが、同じ質問があるので、質問させていただきました。

質問:
ブランチをマージするときに、競合がなければ、Git によって自動的にマージされたコードにはバグが発生しますか?
マージ中に Git によって検出される競合はすべて編集競合であるため、2 つの編集が同じ行にあるかどうか、2 つの編集に反対の操作があるかどうか (1 つは同じコードを追加し、もう 1 つは同じコードを削除する) など、明らかに Gitコード自体のロジックは気にしませんし、気にすることもできません。
したがって、マージ後にコードの正確性をチェックする必要があると思います。これは、2 つのブランチで解決された問題がマージ後に未解決の状態にあるかどうか、新しいバグが生成されていないかどうかを、マージのたびに検証することに相当します。 、そうすると仕事量が膨大になってしまいますよね?
実際に使ってみて確認してみてはいかがでしょうか?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(9)
淡淡烟草味

Baidu をお持ちの場合は、同様の情報が表示されるはずです。開発はブランチ上にありますが、トランクから大きく逸脱しないようにするには、トランクからブランチに頻繁にマージする必要があります。

チームがプロセスに従えば、それほど問題はありません。

いいねを押す +0
学习ing

複数のユーザーが同じコードを編集すると、Git はマージ競合を報告します。これは手動で解決する必要がありますが、これは避けられません。実際の複数人によるコラボレーション プロジェクトでは、通常、全員がモジュールで開発し、同じファイルを変更する前に共通のモジュールを更新することを避けようとします。

マージ後に競合が報告されない場合は、同じコードがあまり変更されていないことを意味し、マージの正確性をチェックする必要はありません。論理的なバグを引き起こすマージされたコードについては、レビューする必要があります。

いいねを押す +0
phpcn_u1582

もちろん可能です。関数は a b c の 3 つのメソッドを使用する必要があります。3 人の人がその 3 つのメソッドを変更する必要があります (この場合、git はそれを競合とはみなしません)。 ; しかし、この機能が依然として 3 人が望んでいることを保証できますか?

いいねを押す +0
过去多啦不再A梦

いいえ、git merge には 2 つの状況があるためです。1 つ目は、ファイル内で同じコードが 2 人によって同時に変更された場合で、git merge は競合を報告します。手動でマージする必要があります。 2 番目: 2 人が同じファイルの異なるコード セグメントを変更した場合。 git は自動的にマージされます。バグがあるかどうかは、完全にコードを書いた人の問題です。バグはありますし、合併後も当然バグは発生します。バグはなく、マージ後もバグはなくなるでしょう。他人を責めないでください!

いいねを押す +0
三叔

横になっているときに Git が撃たれて、私はコードのマージに対してのみ責任を負い、責任は負わないと言いました。 。 。 。 。 。

いいねを押す +0
typecho

絶対的なものはなく、競合がなく、バグがマージできれば、勝利したとしか言えません。

いいねを押す +0
给我你的怀抱

これはバグとは呼ばれません、冲突と呼ばれます。競合の解決:

  1. 他の人のバージョンを使用する

  2. 独自のバージョンを使用してください

  3. 手動マージ。

競合を回避する非常に一般的な方法は次のとおりです: 変更する前に、まず pullローカル ブランチを作成して競合の可能性を減らします

いいねを押す +0
刘奇

そうですね、git は単なるバージョン管理ツールです。コードをマージしてバグが発生した場合、それはプロジェクト チーム自身のコードの問題であり、テスト コードを作成することで問題が解決されるはずです。

いいねを押す +0
为情所困

それは可能です、宝くじに当たるのと同じです

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート