Предположим, я хочу создать репозиторий Git с SVN-подобным рабочим процессом (поэтому централизованный репозиторий по URL-адресу, на который ссылается каждый разработчик).
Я понял, что вы можете добавить sh в репозиторий Bare. без ограничений (но групповые права и лайки), но вы не можете на обычном без использования опции силы. Таким образом, центральный репозиторий типа SVN должен быть инициализирован голым. Правильно ли я понял?
Теперь мне интересно, каков кратчайший способ создания централизованного хранилища из локальной папки, в которой уже есть хранилище git (без клонирования или удаленная ссылка еще), исходные файлы и, возможно, с более чем одной веткой.
Пока я использую следующий метод, но я не уверен, что этого достаточно:
В удаленной папке my_project . git:
А теперь исключительно в локальной папке my_project с существующим репо:
git remote add origin url_to_my_project.git
git push -u --all
Этого достаточно?
Когда я клонирую централизованное репо в другом локальном месте, новое репо не кажется строго эквивалентным, чем оригинальная локальная копия. При использовании команды git branch -a
у меня два разных результата, и моих знаний git в настоящее время недостаточно, чтобы понять, что произошло.
В исходном локальном хранилище:
> git branch -a
* master
remotes/origin/master
В локальном репозиторий, клонированный из централизованного пульта:
> git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Что именно случилось, что две копии не выглядят эквивалентно?
Заранее спасибо.