правильный способ git rebase - PullRequest
1 голос
/ 23 августа 2011

для ребаза нормаль я делаю

$ git checkout branchA
$ git rebase master 
$ git checkout master 
$ git merge branchA

ки.

моя проблема с моим форком из другого репо, я добавляю три коммита и когда я делаю

git pull --rebase otherRepo master 

получить другие коммиты ReRepo, и мои коммиты перейдут в HEAD журнала, но когда я пытаюсь нажать

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

с

 $ git push --force 

Я могу отправить свои коммиты на удаленное репо, но каждый раз, когда вы тянете, одно и то же,
какой правильный способ сделать это?

Ответы [ 3 ]

1 голос
/ 23 августа 2011
git fetch otherRepo master
gitk --all

Сделайте это, и вы сможете увидеть точное состояние otherRepo / master.Это поможет вам понять, что происходит.git fetch обновляет ваше представление о другомRepo / master (чтобы вы могли видеть его последнее состояние), но не объединяет его с чем-либо.

1 голос
/ 23 августа 2011

Ваша проблема здесь:

git pull --rebase otherRepo master 

Когда вы используете git pull --rebase, ваши локальные коммиты на мастере воспроизводятся поверх новых коммитов в мастере другого репо. Как следствие этого, когда вы нажимаете на исходную точку, это становится ускоренной перемоткой вперед (см. здесь для объяснения слияний ускоренной перемотки вперед). И поэтому git запрещает это по умолчанию.

Решение простое, не используйте --rebase с git pull при извлечении из otherRepo:

git pull otherRepo master
0 голосов
/ 23 августа 2011

Если вы вытаскиваете из репо, то сразу же пытаетесь протолкнуть, и это не сработает с «не-быстрой перемоткой вперед», тогда происходит что-то еще. Может быть, кто-то еще подтолкнул коммиты, или, может быть, вы не тянете / толкаете то, что вы думаете. Вынуждая толчок к продолжению, вы уничтожаете историю, и если вы не совсем понимаете, что делаете, вы можете потерять работу, не осознавая этого.

...