GIT: я продолжаю объединять мою новую ветку

Я создал новую ветку, и я работаю над ней с другими разработчиками, но по причинам, когда я хочу выдвинуть свои новые коммиты, я всегда должен 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 ответ

Решение

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

git push (раздел "Заметка о перемотках вперед") упоминает:

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

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

Смотрите также " Я не могу нажать на мерзавца?" Для получения дополнительной информации.

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