2014-02-11 4 views
0

Я относительно новичок в git. Я был на ветке под названием temp, которую я создал недавно. Я сделал 3 фиксации и нажал. Затем я сделал перезагрузку ко второй фиксации и внес некоторые изменения.can not git push или git pull

git pull дает мне:

You asked me to pull without telling me which branch you want to merge with, and 'branch.temp.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 '

git push дает мне:

! [rejected] temp -> temp (non-fast-forward) error: failed to push some refs to ' https://myserver.com/git/project ' 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.

Я действительно хочу, чтобы удалить третье обязательство, которое я уже толкали, и нажмите на последний коммит я сделал после сброса ко 2-й фиксации. Как мне это сделать?

ответ

0

Я хотел бы представить это с помощью с осторожностью, используя параметр силы -f. Плохо изменить историю удаленного репозитория. См. this answer для способов обхода проблемы с принудительным нажатием.

Если вы единственный, кто вытаскивает из удаленного репозитория, и если вам абсолютно неинтересно 3-го коммита, который уже был нажат, вы можете сделать принудительный толчок. Я предполагаю, что когда вы проверили свою вторую фиксацию, вы обновили свою локальную ветвь до этой фиксации. Знайте, что вы навсегда потеряете 3-й фиксатор в удаленном репозитории.

git push -f <repo> <branch> (пример: git push -f origin master)

То есть, конечно, если местное название филиала совпадает с именем удаленного филиала. В противном случае вы бы сделали:

git push -f <repo> <local branch>:<remote branch>

Смежные вопросы