1

Я создал новую ветку, и я работаю над ней с другими разработчиками, но по причинам, когда я хочу отправить свои новые коммиты, мне всегда нужно использовать git merge origin/mynewbranch В противном случае я получаю некоторые ошибки:

 ! [rejected]        mynewbranch -> mynewbranch (non-fast-forward)
error: failed to push some refs to 'git@site.com/repo.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git push --help' for details.

You asked me to pull without telling me which branch you
want to merge with, and 'branch.mynewbranch.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.

If you often merge with the same branch, you may want to
use something like the following in your configuration file:

    [branch "mynewbranch"]
    remote = <nickname>
    merge = <remote-ref>

    [remote "<nickname>"]
    url = <url>
    fetch = <refspec>

See git-config(1) for details.

Почему это не автоматически?

Спасибо

1 ответ1

2

Вы сами не сделали ничего плохого, но если удаленная ветка обновляется (push to) от других разработчиков, то ваш собственный вклад (push) не будет принят напрямую.

git push (раздел «Примечание о перемотке вперед») упоминает:

Вы можете выполнить « git pull », разрешить потенциальные конфликты и « git push » результат. « git pull » создаст коммит слияния C между коммитами A и B.

В качестве альтернативы, вы можете отменить изменение между X и B поверх A, с помощью « git pull --rebase », и вернуть результат обратно. Перебазирование создаст новый коммит D, который строит изменение между X и B поверх A.

Смотрите также " Я не могу нажать на мерзавца?" для большего.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .