2013-10-27 4 views
1

Я пытаюсь перенести один из моих репозиториев SVN в новый репозиторий в GitHub.Перемещение с SVN на GitHub

Поскольку у меня нет большого опыта с Git, я стараюсь следовать инструкциям, которые я нашел в Stack Overflow и GitHub.

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

я выполнил следующие команды. Что мне здесь не хватает/делает не так?

git svn init https://svn.my-domain.org/svn/MyRepository/MyProject/trunk/ 
git svn fetch 
git remote add origin [email protected]:MyUserName/myrepository.git 
git config branch.master.remote origin 
git config branch.master.merge refs/heads/master 
git push 

Последняя команда дает мне следующую ошибку:

To [email protected]:MyUserName/myrepository.git 

! [rejected]  master -> master (fetch first) 
error: failed to push some refs to '[email protected]:MyUserName/myrepository.git' 
hint: Updates were rejected because the remote contains work that you do 
hint: not have locally. This is usually caused by another repository pushing 
hint: to the same ref. You may want to first integrate the remote changes 
hint: (e.g., 'git pull ...') before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

Я понимаю, что я должен объединить мое хранилище GitHub (ведьма имеет только файл README), то с локальным репозиторием Git с файлами/историей от SVN.

Я пробовал по-разному git push, но это не удалось. Как я могу выполнить push?

Заранее спасибо

+0

Ваш Git репо (на GitHub) в настоящее время имеет README, который еще не существует в вашем репо, поэтому при попытке нажать ваши изменения, удаленное репо отклоняет их. Как подсказывает подсказка, попробуйте сделать «git pull» для интеграции удаленных файлов, а затем «git push». – Graham

+0

Bitbucket имеет хороший шаг за шагом [Руководство по перенаправлению для Subversion to Git on Bitbucket] (https://go-dvcs.atlassian.com/display/aod/Migrating+from+Subversion+to+Git+on+Bitbucket). Вы может просто повторно использовать для Github –

+0

@Graham, я попробовал git push, но это не сработало с репозиторием. Однако я просто попытался с другим репозиторием, и он действительно сработал. Не знаю, в чем разница! Спасибо в любом случае – Schiavini

ответ

2

Если вы не заботитесь о файле инициализации GitHub (.gitignore или README.md), вы можете:

git push --force 

Если вы делаете git pull, что добавит к ваш текущий фиксатор один из GitHub с его содержимым.
Тогда git pull будет работать.

Не забывайте, что вы можете create on GitHub a completely empty repo, что означает, что вы можете нажать любую историю, которую хотите.
Просто отмените выбор «Инициализировать этот репозиторий с README» вариант

https://github-images.s3.amazonaws.com/help/repo-create-name.png

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