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

1208
mnml

Я создал новую ветку, и я работаю над ней с другими разработчиками, но по причинам, когда я хочу выдвинуть свои новые коммиты, мне всегда приходится. 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
Вы читали документацию, на которую вам указали? Если да, не могли бы вы сказать, что именно вам нужно уточнить? Benjamin Bannier 13 лет назад 0
Ну, мне было просто интересно, почему он больше не сливается автоматически, просто чтобы понять, что я сделал не так. mnml 13 лет назад 0

1 ответ на вопрос

2
VonC

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

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

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

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

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

С ребазом моя ветка будет удалена, как только это будет сделано? Или он просто обновится с изменениями главной ветки? mnml 13 лет назад 0
@mnml: rebase означает, что ваша ветвь воспроизводится поверх того, что было извлечено: она не удаляет вашу ветку. VonC 13 лет назад 1
Можно ли перебазировать мастер поверх новой ветки? mnml 13 лет назад 0
@mnml: так как мастер часто толкает, это не рекомендуется. Каждый обычно перебазирует свою ветку поверх мастера (`git checkout mybranch; git rebase master`) VonC 13 лет назад 0

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