Ответ 1
Это очень просто. Git не заботится о том, что имя его каталога. Это только заботит то, что внутри. Поэтому вы можете просто:
# copy the directory into newrepo dir that exists already (else create it)
$ cp -r gitrepo1 newrepo
# remove .git from old repo to delete all history and anything git from it
$ rm -rf gitrepo1/.git
Обратите внимание, что копия довольно дорога, если репозиторий большой и имеет длинную историю. Вы также можете легко избежать этого:
# move the directory instead
$ mv gitrepo1 newrepo
# make a copy of the latest version
# Either:
$ mkdir gitrepo1; cp -r newrepo/* gitrepo1/ # doesn't copy .gitignore (and other hidden files)
# Or:
$ git clone --depth 1 newrepo gitrepo1; rm -rf gitrepo1/.git
# Or (look further here: http://stackoverflow.com/q/1209999/912144)
$ git archive --format=tar --remote=<repository URL> HEAD | tar xf -
Как только вы создадите newrepo
, место назначения для размещения gitrepo1
может быть где угодно, даже внутри newrepo
, если вы этого захотите. Это не изменяет процедуру, просто путь, который вы пишете gitrepo1
назад.