2012-08-01 4 views
2

У меня есть несколько репозиториев git, и каждый раз, когда я настраиваю новый, и я делаю первый фиксатор и push, эта команда завершается с ошибкой git push origin master, и я получаю некоторую ошибку о том, как это произошло нажать несколько ссылок.Зачем мне нужно --force my git commits

[email protected] /c/git/repo/---- (master) 
$ git push origin master 
-------------------------------- 
-------------------------------- 
To ----------------------------- 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to 'https://github.com/-----/----.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 origin master это работает, почему это и почему я должен делать это каждый раз?

+0

Похоже, что хранилища, на которые вы нажимаете, не пустые. Каждый раз, когда вы принудительно нажимаете push, вы перезаписываете все, что было на сервере, но не на вашем локальном ПК. Я был бы осторожен в этом. – knittl

+0

вот что я боюсь, но я уверен, что создал репо без каких-либо файлов и еще ... – iKlsR

+0

Вы подталкиваете к github. Вы действительно создали новый проект на github, или вы всегда нажимаете на тот же пульт? – knittl

ответ

4

Эта ошибка ...

! [rejected]  master -> master (non-fast-forward) 

... означает, что удаленный репозиторий содержит изменения, которые еще не в вашем хранилище. Если вы создаете репозиторий в GitHub, можно создать непустой репозиторий, если вы попросите GitHub предварительно заполнить ваш репозиторий файлом .gitignore или README.

В любом случае, когда вы видите эту ошибку, а не с помощью --force (который будет перезаписывать любые изменения в удаленном хранилище), вы, вероятно, следует просто запустить:

git pull 

Это собьет любые изменения и объедините их в свой локальный репозиторий, после чего git push должен работать нормально.

Вы также можете клонировать удаленный репозиторий в другой каталог и проверять его содержимое, если вы не знаете, что там есть.

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