Pracuję w środowisku zespołowym i jest już .gitignore
plik.
Chcę dodać więcej elementów do .gitignore
pliku, ale nie chcę też sprawdzać tego pliku. Czy można ustawić niestandardowe ignorowanie plików, które dotyczą tylko mnie?
Chcę też dać komuś dostęp tylko do odczytu do prywatnego repozytorium git na naszym serwerze, jeśli dodam jego klucz SSH do naszego serwera, otrzyma pełny dostęp, jak wszyscy inni. Jak mogę ograniczyć to tylko do odczytu, bez zatwierdzeń.
Odpowiedzi:
.git/info/exclude
. Zobaczgitignore(5)
.git-daemon
, a serwerem WWW lub Gitosis lub Gitolite.źródło
.git/info/exclude
katalogu głównym projektu .core.excludesfile
możesz określić globalny plik wykluczeń.ln -s .git/info/exclude .personalGitignore
Następnie możemy dodać# ln -s .git/info/exclude .personalGitignore \n .personalGitignore
do .gitignoreWiem, że trochę się spóźniłem na rozmowę, ale warto rozważyć użycie
Jak stwierdza dokument pomocy git:
Podkreśl moje. Dalej mówi
Pamiętaj więc, że będziesz musiał być świadomy wszelkich zmian wprowadzonych do tych plików.
W przypadku, gdy chcesz ponownie rozpocząć śledzenie pliku, wystarczy użyć
Mam nadzieję, że pomoże to przyszłym widzom tego posta.
źródło
W przypadku części ssh należy rozważyć użycie Gitolite (zamiennik gitozy).
źródło
Jak powiedział Fred Frodo, możesz umieścić swoje prywatne reguły wykluczania w
.git/info/exclude
repozytorium.Jeśli chcesz zastosować te same reguły wykluczania do wszystkich repozytoriów na swoim komputerze, możesz dodać następujące elementy do
.gitconfig
pliku w katalogu użytkownika.Następnie dodaj swoje wzorce wykluczania do
~/.gitexclude
.źródło
Możesz być zainteresowany hakiem do aktualizacji, który napisał Junio i który Carl ulepszył. Umieść poniższy kod w
$GIT_DIR/hooks/update
i nie zapomnij go włączyć za pomocąchmod +x
.Mając ten zaczep na miejscu, dajesz określonym użytkownikom lub grupom wprowadzenie zmian w repozytorium. Każdy, kto może go zobaczyć, ma dostęp tylko do odczytu.
Jeśli ta osoba nie ma jeszcze dostępu do hosta, na którym znajduje się Twoje repozytorium, może powinna mieć tylko
git-shell
dostęp, a nie nieograniczony dostęp. Utwórz specjalnego użytkownika git i~git/.ssh/authorized_keys
dodaj klucz SSH osoby z zewnątrz w następującym formularzu. Zauważ, że klucz powinien znajdować się w jednej długiej linii, ale zawinąłem go poniżej, aby ułatwić prezentację.W zależności od konfiguracji lokalnej może być konieczne dostosowanie ścieżki do
git-shell
. Pamiętaj, żesshd
jest to bardzo paranoiczne w kwestii uprawnień do.ssh
katalogu, więc wyłącz jego bity zapisu grupowego i wszystkie pliki poniżej.Prowadzenie wszystkich przez użytkownika git oznacza, że musisz umieć rozróżniać ludzi i taki jest cel
myorg_git_user
zmiennej środowiskowej. Zamiast polegać na bezwarunkowymusername=$(id -u -n)
, dostosuj swój hak do aktualizacji, aby go używać:W tej konfiguracji znajomy z dostępem tylko do odczytu zostanie sklonowany poleceniem podobnym do poniższego. Konkretna ścieżka będzie zależeć od konfiguracji. Aby ładna ścieżka działała, przenieś swoje repozytorium do katalogu domowego użytkownika git lub utwórz dowiązanie symboliczne, które na nie wskazuje.
ale nie będzie w stanie dokonywać aktualizacji.
Powiedziałeś, że pracujesz w środowisku zespołowym, więc zakładam, że Twoje centralne repozytorium zostało utworzone z tą
--shared
opcją. (Patrzcore.sharedRepository
wgit config
dokumentacji oraz--shared
wgit init
dokumentacji ). Upewnij się, że nowy użytkownik git jest członkiem grupy systemu, który daje wam wszystkim dostęp do centralnego repozytorium.źródło