Как связать локальный неверсионный код с удаленным репозиторием git?
Мне нужно связать чистый неверсионный код с существующим удаленным репозиторием git.
Я лучше объясню свою ситуацию. Мой проект перемещен из svn в git. У меня есть локальная рабочая копия svn со старым кодом (ничего нового для фиксации), которая должна быть синхронизирована с новым репозиторием git. Я мог бы клонировать РЕПО, Но я должен вручную восстановить многие игнорируемые файлы конфигурации, и я бы этого избежал.
поэтому я удалил все .каталоги svn, и я буду отслеживать свой код с помощью удаленный репозиторий git.
есть ли способ сделать это?
4 ответов
Я бы зафиксировал ваш рабочий каталог, чтобы убедиться, что он существует в истории перед выборкой. (убедитесь, что вы находитесь в корневой папке проектов)
git init
git add -A
git commit -m "my latest'
теперь у нас есть это
git remote add origin url-to-your-remote
git fetch origin
теперь у нас есть история с удаленным
git reset origin/master
теперь наша текущая фиксация является последней из удаленных
git add -A
git commit -m "Committed my state"
теперь мы используем наш текущий рабочий каталог в качестве снимка для следующей фиксации.
git push -u origin master
push вверх ваши изменения и отслеживать филиал.
ключ . Он сохраняет вашу рабочую папку одинаковой, указывая ветку на то, что вы получили с пульта дистанционного управления.
Ok, Я отправляю правильный ответ на мой вопрос, основанный на Адам Dymitruk и Евгений Sajine ответы. Спасибо всем за поддержку :)
- прежде всего, удалите все
.svn
каталоги в каталоге рабочей копии; -
инициализировать новый репозиторий git в каталоге рабочей копии
cd /path/to/my/project git init
-
добавить удаленный репозиторий git и получить его
git remote add origin url-to-your-remote git fetch origin
-
сброс рабочая копия в удаленный репозиторий
git reset --hard origin/master
в конце локальный репозиторий будет синхронизирован с удаленным репозиторием.
если вы действительно имеете в виду то, что вы говорите, то последовательность будет:
cd {your-project}
git init
git remote add {remote_name} {address}
git fetch {remote_name}
затем вы можете создать локальную ветвь из одной из ветвей, которые удаленный имеет, например:
git branch master {remote_name}/master
и затем вы можете добавить код:
git add {files}
или
git add .
git commit
обновление:
OP указывает, что код, о котором идет речь, является старым и нечего фиксировать, поэтому кажется, что вся ситуация чрезмерно усложняется без причины. OP просто должен клонировать новый репозиторий и сделать с ним. Игнорировать конфигурации следует переделать в соответствии с политиками проекта (либо .gitingore хранится в РЕПО или нет и т. д.)
будет ли работать следующее? Я попробовал это на одном из своих проектов, и это сработало.
1) клонируйте репозиторий git в место, отличное от каталога, содержащего неверсионный код.
2) скопировать .папка git из каталога, созданного в результате (1), в каталог, содержащий неверсионный код.
Это эффективно для меня, что Адам Dymitruk шагов в его ответ выше.