Новый файл git требует слияния, почему?

Дома я добавил do_next.py и успешно толкнул его в хранилище. На работе я создал cat.py, сделал коммит и попытался push который потерпел неудачу:

hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Если я pull, мерзавец просит меня слить (чтобы ввести комментарий слияния) .

Пожалуйста, объясните, почему слияние требуется? Я думаю, что, поскольку я только что добавил новый файл, fast-forward будет достаточно, и слияние не является обязательным.

Кроме того, я не могу придумать разумного сообщения для этого обязательного коммита. Использование: git version 2.1.4 Debian Jessie

2 ответа

Решение

Причина, по которой Git требует слияния, заключается в том, что git pull является комбинацией двух команд, git fetch а также git merge, Поскольку в вашем локальном филиале есть коммит, которого нет в вашем удаленном филиале, а в удаленном филиале есть коммит, которого нет в вашем локальном. Вы "впереди и позади". Если вы не хотите делать слияние, сделайте git pull --rebase который отменит вашу локальную фиксацию, обновит вашу локальную ветку и затем повторно применяет вашу фиксацию. Который, поскольку вы только добавляете новый файл, будет работать гладко.

В git коммит относится к состоянию всего хранилища. У вас есть коммит, который содержит файл "do_next.py", и коммит, который содержит файл "cat.py". Теперь должен быть коммит, который содержит оба этих файла, поэтому он просто предлагает создать его.

Другие вопросы по тегам