Git, jak zmienić bare na shared repo?
Więc tak skonfigurowałem mój projekt:
git init --bare
Później dowiedziałem się, że jeśli chcesz pracować nad projektem z wieloma użytkownikami, to tak powinienem to zrobić:
git init --bare --shared
Teraz próbowałem pracować w ten sposób i na szczęście jesteśmy na początku, więc mogłem ponownie skonfigurować Gita. Wciąż zastanawiam się jednak, kiedy jesteś w trakcie projektu, nie możesz tego zrobić. Czy istnieje sposób, aby zmienić nagą repo na wspólną?
4 answers
Ponieważ opcja --shared
ustawia uprawnienia na wszystko w repozytorium do zapisu grupowego, możesz to zrobić ręcznie później:
$ chmod -R g+w the/repo/path
Plus, dodaj
sharedrepository = 1
W sekcji [core]
w .git/config
. Współdzielone operacje repos mają również następującą opcję receive zdefiniowaną domyślnie (którą możesz lub nie chcesz):
[receive]
denyNonFastforwards = true
Uwaga: aby zdecydować, czy chcesz denyNonFastforwards: ta opcja oznacza, że scalanie nigdy nie nastąpi w udostępnionym repozytorium, które w turn, oznacza, że nigdy nie ma konfliktu scalania w udostępnionym repozytorium. Zamiast tego push jest odrzucany, zmuszając użytkownika do scalenia w lokalnym repozytorium, gdzie jest o wiele łatwiejsze do naprawienia i gdzie nie koliduje to z korzystaniem z udostępnionego repo przez inne osoby.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-09 18:35:01
Oprócz chmod -R g + W, musisz również edytować (.git/)config
i ustawić core.sharedRepository = ...
. Za ..., istnieje kilka wartości, opisanych w git-init(1).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-16 16:44:57
Prawdopodobnie, jeśli spróbujesz udostępnić istniejące repozytorium, możesz mieć wiele różnych commitów użytkowników.
1.Jeśli masz uprawnienia super user, możesz przejść do przodu i zmienić wszystkie uprawnienia samodzielnie za pomocą kroku drugiego, w każdym innym przypadku musisz zapytać wszystkich użytkowników z obiektami utworzonymi przez ich użytkowników, użyj następującego polecenia, aby wiedzieć, kim są: {]}
$ ls -la | awk '{print $3}' | sort -u
<your user_name>
<his user_name>
2.Teraz ty i wszyscy użytkownicy właściciela pliku będą musieli zmienić uprawnienia tych plików, robi:
$ chmod -R 774 .
3.Następnie będziesz musiał dodać nową właściwość, która jest równoważna --shared=group done dla nowego repozytorium, zgodnie z dokumentacją, to sprawia, że grupa repozytorium jest zapisywalna, wykonaj to:
$ git config core.sharedRepository group
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-13 23:16:54
Jeśli próbujesz udostępnić repozytorium poza hostem, na którym się znajduje, musisz wykonać dodatkowe kroki konfiguracji (rzeczy ssh).
Http://shapeshed.com/setting_up_git_for_multiple_developers/
Http://www.jedi.be/blog/2009/05/06/8-ways-to-share-your-git-repository/