Gadz
@Gadz

Git merge, почему не сливаются ветки?

Только учусь, поэтому может не до конца понимаю логику git.
Суть.

1) создаю локальный репозиторий
2) создаю файл 1.txt
3) делаю коммит в ветку master

4) создаю ветку dev и перехожу на нее
5) создаю файл 2.txt
6) удаляю файл 1.txt
7) делаю коммит в dev

8) после чего в ветке master лежит файл 1.txt, а в ветке dev файл 2.txt
9) Собственно самое главное. Находяcь в ветке dev я делаю git merge master. И получаю сообщение: "Already up-to-date."

Вопрос почему в ветку dev не подтягивается файл 1.txt из ветки master??
  • Вопрос задан
  • 3718 просмотров
Решения вопроса 1
@Alexander1705
Надеюсь, это вы уже прочитали.

При слиянии происходит объединение изменений, а не файлов. То есть, берётся последний общий предок и к нему применяются изменения из обеих веток.

В вашем случае общий предок - это коммит в master (только файл 1.txt). В ветке master после этого коммита изменений нет, зато есть в ветке dev. А именно, удаление 1.txt и создание 2.txt.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
mva
@mva
CEO, CTO, Lua/Gentoo/IPv6 Pioneer
[master] = 1 коммит
[dev] = [master] + 1 коммит.

Соответственно, когда вы пытаетесь смержить master, гит вам справедливо говорит, что master в полном составе уже в dev.

А вы, вероятнее всего, хотите git checkout master -- 1.txt
Ответ написан
Комментировать
@MoonMaster
Программист и этим все сказано
Вадим Мисбах-Соловьёв полностью дал верный ответ. Хочу только добавить что необходимо вам освоить команду git status. Данная команда показывает статусы изменения файлов. А так обычно создают репозиторий и делают ветку dev и туда все коммитят, а потом мержат с master если это необходимо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы