国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

git の異なるブランチにある同じファイルが競合するとどのようにみなされるのでしょうか?
我想大聲告訴你
我想大聲告訴你 2017-05-02 09:47:39
0
3
842

たとえば、masterdevelop という 2 つのブランチがあります。 1.txt ファイルの場合、

master分支:
222
3333 66
555

develop分支:
222
4444 77
888

最初にマスターがあり、次に開発ブランチを作成し、開発ブランチの下で 1.txt を変更し、追加してコミットし、マスター ブランチに戻してからマージしました。報告された競合は 66 件と 77 件のみでした。その他 2 つの場所の間で紛爭は報告されていません

66 と 77 しかない場合、なぜ競合が発生するのでしょうか?そして4444と3333、555と888は矛盾しないでしょうか?分かりません

上の図を見てください。master ブランチは 555555 です。5445 で dev に変更し、コミットを追加してから master ブランチに戻し、マージします。競合はありません。最後に 5445 にマージします。何を言いましたか?

我想大聲告訴你
我想大聲告訴你

全員に返信(3)
巴扎黑

競合が発生するかどうかはコミット変更の順序によって決まります

上の階の友人は自動マージについて言及しました。これは、競合が発生しないことを意味します。例:
master 上には、コンテンツ「1234」のコミットがあります

この時點で、 develop という名前のマスターに基づいた新しいブランチを作成します。この develop ブランチには、次の內(nèi)容: 「1234」のコミットdevelop,那么這個 develop branch 上面也有內(nèi)容為 "1234" 的那個commit

然后你提交了新的 commit,把 "1234" 變成了 "1234 666",那這個時候你 merge,就不會有沖突


再舉個例子,會產(chǎn)生沖突的情況:

master 里面有一個 commit,內(nèi)容是 "1234"
你在這個 commit 之后創(chuàng)建了新的 branch,叫 develop。那這個時候你的 develop branch 里有第一個 commit,內(nèi)容為 "1234"

然后你在 develop 里面,提交了一個 commit,內(nèi)容是 "1234 777"
在這期間,你的 master 更新了,你的同事或者朋友,或者你自己,在 master その後、新しいコミットを送信して「1234」を「1234 666」に変更します。この時點で merge を?qū)g行すると、競合は発生しません

競合が発生する別の例を見てみましょう:

master そこにはコミットがあり、內(nèi)容は「1234」です

このコミットの後に

、 という新しいブランチを作成しました を開発します。この時點で、develop ブランチに最初のコミットがあり、その內(nèi)容は "1234"#????# #????# 次に、develop でコミットを送信しました。コンテンツは「1234 777」です #????##????# この期間中に、master が更新され、同僚、友人、またはあなた自身が、master で新しいコミットを送信し、それを「1234 666」に更新しました#????##????# #????#この時點で再度マージすると、競合が発生します。これは、git は 2 つのブランチに共通の祖先 (先祖) (「1234」) があることを検出しますが、git は現(xiàn)在何をマージしているのかを認識していないためです。 「666」と「777」どっちがいいですか #????# #????# #????#質(zhì)問に戻りますが、まず 2 つのブランチのコミット履歴を調(diào)べて比較することをお勧めします。このような狀況が見つかるかどうかを確認してください。つまり、2 つのブランチには開始點 (先祖) として共通のコミットがありますが、後続のコミットには分岐 (部分) があります #????# #????# それでも問題を説明できない場合は、ご都合がよければ、github アドレスを送ってください #????#
給我你的懷抱

自動結(jié)合があるので。ブランチを手動でマージするときに競合が発生するのを見ましたか?

洪濤

試してみましたが、うまくいかないことがわかりました。これが元の答えです。

すべて私の推測です。

最初のマスターは次のようになります:

リーリー

次に、開発をフォークして次のように変更します。

リーリー

現(xiàn)時點では、develop はマスターの後にマスターを変更するものであるため、競合することなくマスターと直接マージできます。

しかし、マージ開発ではなく、マスターを変更しました:

リーリー

現(xiàn)時點では、66と77の間に対立があります。 git は、開発中の 4444 が 3333 から変更され、888 が 555 から変更されたことを認識しているため、現(xiàn)在のマスター位置は 3333 と 555 のままです。しかし、77 は元々 22 から変更されましたが、マスターの 22 は 66 になりました。 2 つの競合する変更があるため、git は 77 を 66 にマージできません。

つまり、マスターとデベロップは元々同じ線上にありましたが、マスターを変更すると、新しいマスターは元のデベロップと同じ線上になくなります。

最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート