Używam filtrów do zmiany plików podczas realizacji transakcji, jak opisano tutaj . Teraz problem polega na tym, że definicja filtru jest przechowywana tylko w moim lokalnym pliku konfiguracyjnym:
$ cat .git/config
....
[filter "dater"]
smudge = /home/.../expand_date
clean = perl -pe \"s/\\\\\\$Date[^\\\\\\$]*\\\\\\$/\\\\\\$Date\\\\\\$/\"
Jeśli moi współpracownicy chcą skorzystać z tego Date
rozszerzenia, muszą skopiować moją definicję filtra. A jeśli to zmienię, muszę ich powiadomić itd.
Czy mogę więc przechowywać część definicji filtru .git/config
w repozytorium i sprawić, by Git go użył?
Odpowiedzi:
Istnieją 3 Obsługiwane zakresy
.gitconfig
pliku:--system, --global, --local
. Możesz również utworzyć niestandardowy plik konfiguracyjny i dołączyć go do jednego z obsługiwanych plików.Dla Twoich potrzeb niestandardowych - to właściwy wybór. Zamiast wpisywać swój filtr
.git/config
, powinieneś zapisać go w.gitconfig
pliku w katalogu głównym repozytorium:Utwórz
.gitconfig
z filtrem i zatwierdź zmiany. Wtedy twoi koledzy zawsze będą go aktualizować - ale będą musieli dodać to ręcznie. Nie jest możliwe automatyczne dołączenie niestandardowego pliku konfiguracji za pośrednictwem samego git, ponieważ stwarza to lukę w zabezpieczeniach.Aby zastosować tę konfigurację dla pojedynczego repozytorium, każdy użytkownik będzie musiał uruchomić następujące polecenie w
your-repo/
:Uważaj, aby nie przechowywać danych osobowych w niestandardowym formacie
.gitconfig
, na przykładuser.*
na swoim globalnym.gitconfig
.źródło
.gitconfig
w swoim~/.gitconfig
. Nikt tego nie zapamięta. Czy istnieje sposób, aby Git ZAWSZE czytać repozytoria.gitconfig
.configure
skrypt lub coś podobnego, który użytkownicy muszą uruchomić, możesz ustawić dołączenie (lub zachęcić użytkownika do).--file
włączona opcjagit config
, możesz następnie ustawić ją tak, aby wskazywała na twoje repozytorium.gitconfig
. Jeszcze tego nie testowałem, ale wydaje się, że odpowiada na twoje pytanie. Możesz to przeczytać w dokumentach. git-scm.com/docs/git-config#FILESNie możesz
.gitconfig
domyślnie używać pliku w repozytorium git, ale możesz połączyć się z nim, aby konfiguracja git została wersjonowana.Możesz do niego linkować w ten sposób:
Stworzyłem prosty skrypt,
gitconfig.sh
który zrobi to za Ciebie (znacznie szybciej niż kopiowanie) + prosty.gitconfig
plik, więc jeśli chcesz, zajrzyj do tego repozytorium https://github.com/HoBi/dotfiles .EDYTUJ : Usunąłem plik, ale możesz go znaleźć tutaj https://github.com/tenhobi/dotfiles/blob/7e4376c006c508370b82bc7bd37173fab51dbd01/git/.gitconfig.sh
źródło
~/
folderze. Każdy może mieć inne potrzeby, więc po co wszystkim zawracać sobie głowę konfiguracją w repozytorium git. :-)