Один и тот же файл в разных ветках - PullRequest
0 голосов
/ 17 февраля 2020

В моей master и моей welcome ветке один и тот же файл. У моего мастера ничего нет в файле, но в моем приветствии есть много вещей. Что произойдет, когда я соберу все это вместе?

1 Ответ

1 голос
/ 17 февраля 2020

Когда вы объединяете две ветви, Git рассматривает три местоположения: две головки (в данном случае ветви master и welcome) и основа объединения , которая обычно является точкой в котором ветви разветвляются.

Когда происходит слияние, Git по существу смотрит на каждую сторону независимо и сравнивает ее с базой слияния и определяет, что изменилось. Git затем применяет оба набора изменений в результате.

Если одна сторона изменена, а другая нет, Git включает изменения. Таким образом, если в тот момент, когда ваши ветви были разветвлены, файл был пуст, то в результате слияния будет содержаться содержимое файла. Если обе стороны вносят изменения в одну и ту же область, возникнет конфликт слияния, и вам необходимо его разрешить. Нет способа избежать этого, поскольку Git не знает, что вы хотите сделать в этом случае.

Если вы хотите проверить это и посмотреть, что произойдет в вашем случае, вы можете создайте временную ветвь из master и объедините в нее welcome и посмотрите, как будет выглядеть результат:

$ git checkout master
$ git checkout -b temp
$ git merge welcome

Если вы попали в конфликтующее состояние и не хотите продолжать, вы можете запустить git merge --abort, чтобы вернуться туда, где вы были.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...