Как преобразовать обычный Git-репозиторий в пустой?

566
задан Boldewyn 30 July 2014 в 18:59
поделиться

5 ответов

Короче: замените содержимое репо содержимым репо / .git , затем сообщите репозиторий, что теперь это пустой репозиторий.

Для этого выполните следующие команды:

cd repo
mv .git ../repo.git # renaming just for clarity
cd ..
rm -fr repo
cd repo.git
git config --bool core.bare true

Обратите внимание, что это отличается от выполнения git clone --bare в новом месте (см. Ниже).

578
ответ дан 22 November 2019 в 22:07
поделиться

Ваш метод выглядит так, как будто он работает; файловая структура чистого репозитория - это то, что находится внутри каталога .git. Но я не знаю, изменился ли какой-либо из файлов на самом деле, поэтому, если это не удастся, вы можете просто сделать

git clone --bare /path/to/repo

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

240
ответ дан 22 November 2019 в 22:07
поделиться

Oneliner для выполнения всех вышеперечисленных операций:

for i in `ls -A .`; do if [ $i != ".git" ]; then rm -rf $i; fi; done; mv .git/* .; rm -rf .git; git config --bool core.bare true

(не вините меня, если что-то взорвется, а у вас не было резервных копий :P)

-4
ответ дан 22 November 2019 в 22:07
поделиться

Думаю, следующая ссылка будет полезна

GitFaq: How do I make existing non-bare repository bare?

$ mv repo/.git repo.git
$ git --git-dir=repo.git config core.bare true
$ rm -rf repo
114
ответ дан 22 November 2019 в 22:07
поделиться

Я прочитал ответы и сделал следующее:

cd repos
mv .git repos.git
cd repos.git
git config --bool core.bare true # from another answer
cd ../
mv repos.git ../
cd ../
rm -rf repos/ # or delete using a file manager if you like

это оставит содержимое repos / .git как голый repos.git

6
ответ дан 22 November 2019 в 22:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: