jak dokładnie dochodzi do konfliktu Git merge?

Zrobiłem repozytorium git i dodałem do niego plik tekstowy. Jest to w 100% do celów edukacyjnych.

  1. Dodałem "1" do pliku tekstowego i zobowiązałem go do mastera.

  2. Stworzył nową gałąź z master i dodał "2".

  3. W końcu stworzył gałąź od mistrza i dodał "3".

Czy mógłby Pan wyjaśnić, jak może dojść do konfliktu w tym lub innym scenariuszu?

Author: Stephan Bauer, 2014-07-20

2 answers

Będziesz miał konflikt jeśli połączysz:

  • branch2 do master (Brak konfliktu)
  • branch3 do master (konflikt):

To dlatego, że:

  • wspólnym przodkiem będzie master (z drugą linią pustą)
  • zawartość źródłowa to branch3 (z drugą linijką zawierającą "3")
  • zawartość docelowa jest najnowsza z master (z drugim wierszem zawierającym "2", od połączenia branch2 do master)

Git poprosi Cię o wybierz zawartość, którą chcesz zachować ("3", "2" lub obie).

Najpierw połącz po:

git config merge.conflictstyle diff3

Zobacz " napraw konflikty merge w Git?".

 21
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:33:26

Konflikt scalania występuje, gdy dwie gałęzie modyfikują ten sam region pliku i są następnie scalane. Git nie może wiedzieć, którą ze zmian zachować, dlatego potrzebuje ludzkiej interwencji, Aby rozwiązać konflikt.

W tym przypadku kroki 2 i 3 tworzą dwie gałęzie, które mają sprzeczne zmiany.

 22
Author: Caleb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-20 15:46:11