Aktualizacja 2012:
Zobacz Mike'a Morearty „s odpowiedź :
Obejmuje
Możesz dołączyć jeden plik konfiguracyjny z drugiego, ustawiając specjalną include.path
zmienną na nazwę pliku, który ma być dołączony.
Dołączony plik jest natychmiast rozwijany, tak jakby jego zawartość została znaleziona w miejscu dyrektywy włączającej.
Jeśli wartość include.path
zmiennej jest ścieżką względną, ścieżkę uważa się za względną do pliku konfiguracyjnego, w którym znaleziono dyrektywę dołączającą.
Wartość include.path
podlega rozszerzeniu tyldy: ~/
jest rozwijana do wartości $HOME
i ~user/
do katalogu domowego określonego użytkownika.
Nie sądzę.
Wolę umieścić to ustawienie w ~/.gitconfig
pliku
Plik konfiguracyjny specyficzny dla użytkownika. Nazywany także „konfiguracją globalną”.
W ten sposób uzupełnia plik specyficzny dla projektu .gitconfig, bez publikowania po przekazaniu do GitHub. Zobacz także tę odpowiedź SO, aby uzyskać więcej informacji o globalnym pliku konfiguracyjnym.
Git ma 3 pliki konfiguracyjne .
bjeanes dodaje w komentarzach:
wygląda na to, że wszyscy nie rozumieli sedna tego pytania.
David oczywiście chce push up repo wszystkich jego plików (dot bashrc
, gemrc
itp), w tym jego .gitconfig
więc on może mieć wszystkich swoich ustawień na wszystkich swoich maszynach.
Sposobem na wypychanie części .gitconfig
pliku poprzez dołączanie i ignorowanie prywatnych wpisów jest to, czego on (i ja, jeśli o to chodzi).
Możliwym sposobem byłoby użycie sterownika rozmazywania / czyszczenia filtra do odszyfrowywania / szyfrowania jednego pliku za pomocą poufnych informacji (patrz ten wątek ), aby uzupełnić plik lokalny taki jak ~ / .gitconfig z odszyfrowanymi częściami, które są do tego odpowiednie plik.
W ten sposób możesz mieć repozytorium Git ze wszystkimi plikami kropek oraz jeden plik z zaszyfrowanymi informacjami przeznaczonymi do odszyfrowania i dodania do wspomnianych plików kropek.
W .gitattributes
(lub .git/info/a..
) użyciu:
myPrivateInfosFile filter=gpg diff=gpg
W pliku .config repo:
[filter "gpg"]
smudge = gpg -d -q --batch --no-tty
clean = gpg -ea -q --batch --no-tty -r C920A124
[diff "gpg"]
textconv = decrypt
( rozwiązanie oparte na GPG oznacza oczywiście, że przesłałeś swoje klucze prywatne / publiczne w inny sposób na komputer docelowy, na którym chcesz przywrócić wszystkie pliki kropek poprzez klonowanie tego specjalnego repozytorium)
W twoim przypadku skrypt smudge musi zostać wypełniony, ponieważ po odszyfrowaniu tego pliku kontynuuj dodawanie odpowiednich części do ~/.gitconfig
pliku globalnego (chyba że zastąpisz globalny plik konfiguracyjny inną lokalizacją ) lub inne pliki kropek. materia.
https://kerneltrap.org/mailarchive/git/2008/3/13/1153274/thread
(niedogodności związane z gpg są omówione w dalszej części tego wątku ) (różni się to od posiadania pełnego szyfrowanego repozytorium Git, jak omówiono tutaj )