git pull из ветки репозитория github дает конфликты - PullRequest
0 голосов
/ 11 сентября 2011

Я раздвоил рельсы git://github.com/rails/rails.git на github.Мой разветвленный репозиторий на git://github.com/waseem/rails.git.Я хочу протестировать некоторые патчи, отправленные другими пользователями на главную линию рельсов.Допустим, я хочу проверить код в migration_status ветви на git://github.com/joelmoss/rails.git.

Допустим, я

master $ git remote add joelmoss git://github.com/joelmoss/rails.git

master $ git remote add mainline git://github.com/rails/rails.git.

Я потянул с магистрали рельсов в своего хозяина.

master $ git pull mainline master

Согласно http://guides.rubyonrails.org/contributing_to_ruby_on_rails.html#testing-patches Я должен создать локальную ветку темы и внести изменения с joelmoss/migration_status.Поэтому я,

master $ git checkout -b migration_status Создаю локальную ветку темы.

И когда я делаю:

migration_status $ git pull joelmoss migration_status

Я получаю большое количествоконфликты.Я также попытался migration_status $ git pull --rebase joelmoss migration_status, но я все еще получаю конфликты.

В случае pull --rebase, я думаю (исправить, если не так), git пытается применить мои локальные изменения поверх изменений, извлеченных из joelmoss/migration_status.В идеале это должно быть наоборот.Чтобы рассмотреть этот вариант, я сделал следующее.

master $ git fetch joelmoss

master $ git checkout -b joel_migration_status joelmoss/migration_status и

joel_migration_status $ git rebase master это все равно дало мне много конфликтов.

Как мне получать патчи, отправленные в одну из моих локальных веток, без конфликтов?Я не могу разрешить эти конфликты, так как я мало знаю о том, какой код хранить, а что нет.

1 Ответ

3 голосов
/ 11 сентября 2011

В этом случае, похоже, что joelmoss/migration_status основано на 3.1.0, который отделился от mainline/master в мае.Поэтому, если вы объединяетесь, вы пытаетесь согласовать 4-месячную разработку всех в ветвях, которые, кажется, никогда не были предназначены для объединения.

То, что вы хотите сделать, это также основывать свои локальные изменения на 3.1,Это не гарантирует удаления всех конфликтов, но, по крайней мере, это должны быть те, о которых вы знаете, потому что это код, который вы изменили напрямую.

git checkout -b master-3-1 master
git rebase --onto joelmoss/migration_status mainline/master master-3-1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...