Новый файл 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". Теперь должен быть коммит, который содержит оба этих файла, поэтому он просто предлагает создать его.