2012-06-17 2 views
12

Мы используем git для управления версиями, и сейчас мы получаем много предупреждений при попытке загрузить самую последнюю версию. Я новичок в git и не испытываю терпения к ограничениям, есть ли способ удалить все и загрузить текущую версию?Удалить все и загрузить новую версию

Это то, что я получаю при попытке загрузить.

$ git push origin master 
Username for 'https://code.google.com': 
Password for 'https://<removed>@code.google.com': 
To https://code.google.com/p/<removed>/ 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to 'https://code.google.com/p/<removed>/' 
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') 
hint: before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 
+2

Это поможет показать последовательность команд, которые вы пытаетесь сделать, и вы получите –

+0

«удалить все и загрузить текущую версию» очень похоже на то, что вы не используете git для управления версиями, но используете его в качестве замены для инструмент публикации. Можете ли вы опубликовать предупреждения, которые вы получаете?Даже если у вас нет терпения, чтобы понять их, кому-то еще придется, если они смогут помочь. –

+0

Я вставил подсказки, которые я получаю сейчас. Я понял, что у меня раньше, но это казалось ненужным, так как код моего вычисления хорошо работал, и код в онлайн-версии устарел. Я просто хотел начать новую жизнь. Почему это так плохо, я не знаю – zehelvion

ответ

18

1.) Удалить все в вашей папке хранилища

2.) запустить git rm * сказать ублюдка, чтобы удалить все файлы (проверьте git status есть ли какие-unstaged файлы слева)

3.) общего между git commit -a -m "commitmessage"git push origin master удалить все файлы на удаленном сервере мерзавца

4.) проверить, если у вас есть пустой удаленный репозиторий Теперь

5.) копировать все новые файлы в локальную папку хранилища

6.) запустить git add * сказать ублюдка, чтобы добавить все новые файлы (проверьте git status имеются ли какие-либо файлы unstaged слева)

7.) совершить и нажимать новые файлы

Теперь у вас должна быть версия в удаленном репозитории git.

+0

Привет, я вставил результат, который я получаю сейчас, не могли бы вы помочь? – zehelvion

+1

Почему нельзя использовать 'git push -f'? –

+0

Я написал ответ, прежде чем понял, что проблема заключается в команде push. Я думал, что Артур не знает, как «начать новую». В отредактированном вопросе я думаю, что 'git push -f' работал бы, даже если я не уверен, если удаленный репозиторий git будет делать то, что вы ожидаете. –

12

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

git fetch 
git merge -s ours origin/master 
git push origin master 

Обратите внимание, что это отбрасывает изменения, которые были введены в отдаленных, что вы не имеете в локальном хранилище.

+0

для дальнейшего использования, добавьте '--allow-unrelated-history' в команду слияния в новых версиях git. –

2

Если вы хотите навсегда удалить файлы из удаленного хранилища и в ретроспективе, как если бы они не были вытеснены в первую очередь, чтобы начать свежие, то основание, на this answer вы можете сделать следующее

Выполните следующую локально (Обратите внимание на * удаляет все папки/файла):

git filter-branch -f --index-filter "git rm -rf --cached --ignore-unmatch *" -- --all 

Теперь пришло время обновить ссылки GIT локально для обеспечения того, чтобы забыть всю историю он имел эти файлы

rm -rf .git/refs/original/ 

git reflog expire --expire=now --all 

git gc --prune=now 

git gc --aggressive --prune=now 

Теперь нажмите все изменения в удаленный репозиторий с FORCE, чтобы обеспечить удаленный репо также очищает все эти файлы

git push --all --force 

Это зачистить удаленный репозиторий, как будто никогда не существовало ни одного файла.

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