Szukaj…


Składnia

  • git config [<opcja_pliku]] nazwa [wartość] # jeden z najczęstszych przypadków użycia git config

Parametry

Parametr Detale
--system Edytuje ogólnosystemowy plik konfiguracyjny, który jest używany dla każdego użytkownika (w systemie Linux plik ten znajduje się w $(prefix)/etc/gitconfig )
--global Edytuje globalny plik konfiguracyjny, który jest używany dla każdego repozytorium, na którym pracujesz (w systemie Linux ten plik znajduje się w ~/.gitconfig
--local Edytuje specyficzny dla repozytorium plik konfiguracyjny, który znajduje się w .git/config w twoim repozytorium; to jest ustawienie domyślne

Nazwa użytkownika i adres e-mail

Zaraz po zainstalowaniu Gita, pierwszą rzeczą, którą powinieneś zrobić, to ustawić swoją nazwę użytkownika i adres e-mail. W powłoce wpisz:

git config --global user.name "Mr. Bean"
git config --global user.email [email protected]
  • git config to polecenie pobierania lub ustawiania opcji
  • --global oznacza, że plik konfiguracyjny specyficzny dla twojego konta użytkownika będzie edytowany
  • user.name i user.email są kluczowe dla zmiennych konfiguracji; user to sekcja pliku konfiguracyjnego. name i email - email to nazwy zmiennych.
  • "Mr. Bean" i [email protected] to wartości, które przechowujesz w dwóch zmiennych. Zwróć uwagę na cytaty wokół "Mr. Bean" , które są wymagane, ponieważ przechowywana wartość zawiera spację.

Wiele konfiguracji git

Masz do 5 źródeł konfiguracji git:

  • 6 plików:
    • %ALLUSERSPROFILE%\Git\Config (tylko Windows)
    • (system) <git>/etc/gitconfig , przy czym <git> jest ścieżką instalacji git.
      (w systemie Windows jest to <git>\mingw64\etc\gitconfig )
    • (system) $XDG_CONFIG_HOME/git/config (tylko Linux / Mac)
    • (globalny) ~/.gitconfig (Windows: %USERPROFILE%\.gitconfig )
    • (lokalnie) .git/config (w ramach repozytorium git $GIT_DIR )
    • plik dedykowany (z git config -f ), używany na przykład do modyfikacji konfiguracji submodułów: git config -f .gitmodules ...
  • linia poleceń z git -c : git -c core.autocrlf=false fetch zastąpiłaby każdy inny core.autocrlf na false , tylko dla tej komendy fetch .

Kolejność jest ważna: każdy zestaw konfiguracyjny w jednym źródle może zostać zastąpiony przez źródło wymienione poniżej.

git config --system/global/local to polecenie, aby wyświetlić 3 z tych źródeł, ale tylko git config -l wyświetli wszystkie rozstrzygnięte konfiguracje.
„rozwiązany” oznacza, że wyświetla tylko ostateczną przesłoniętą wartość konfiguracji.

Od wersji git 2.8, jeśli chcesz zobaczyć, która konfiguracja pochodzi z którego pliku, wpisz:

git config --list --show-origin

Ustawienie używanego edytora

Istnieje kilka sposobów ustawienia edytora do zatwierdzania, zmiany bazy itp.

  • Zmień ustawienie konfiguracji core.editor .

    $ git config --global core.editor nano
    
  • Ustaw GIT_EDITOR środowiskową GIT_EDITOR .

    Dla jednego polecenia:

    $ GIT_EDITOR=nano git commit
    

    Lub dla wszystkich poleceń uruchamianych w terminalu. Uwaga: Dotyczy to tylko do momentu zamknięcia terminalu.

    $ export GIT_EDITOR=nano
    
  • Aby zmienić edytor dla wszystkich programów terminalowych, nie tylko Git, ustaw zmienną środowiskową VISUAL lub EDITOR . (Zobacz VISUAL vs EDITOR .)

    $ export EDITOR=nano
    

    Uwaga: jak wyżej, dotyczy to tylko bieżącego terminala; twoja powłoka zwykle ma plik konfiguracyjny, który pozwala ci ustawić go na stałe. (Na przykład w bash dodaj powyższą linię do swojego ~/.bashrc lub ~/.bash_profile .)

Niektóre edytory tekstu (głównie GUI) uruchamiają tylko jedną instancję na raz i generalnie kończą działanie, jeśli masz już otwartą instancję. Jeśli tak jest w przypadku edytora tekstu, Git wydrukuje komunikat Aborting commit due to empty commit message. bez uprzedniej edycji komunikatu zatwierdzenia. Jeśli tak się stanie, zapoznaj się z dokumentacją edytora tekstu, aby sprawdzić, czy ma flagę --wait (lub podobną), która spowoduje, że zatrzyma się do momentu zamknięcia dokumentu.

Konfigurowanie zakończeń linii

Opis

Podczas pracy z zespołem, który korzysta z różnych systemów operacyjnych (OS) w całym projekcie, czasami możesz mieć problemy z zakończeniami linii.

Microsoft Windows

Podczas pracy w systemie operacyjnym Microsoft Windows końce linii zwykle mają postać - powrót karetki + przesunięcie wiersza (CR + LF). Otwarcie pliku, który był edytowany za pomocą komputera z systemem Unix, takiego jak Linux lub OSX, może powodować problemy, sprawiając wrażenie, że tekst w ogóle nie ma końca linii. Wynika to z faktu, że systemy uniksowe stosują różne zakończenia linii tylko do form line feeds (LF).

Aby to naprawić, możesz uruchomić następującą instrukcję

git config --global core.autocrlf=true

Przy kasie ta instrukcja zapewni skonfigurowanie zakończenia linii zgodnie z systemem operacyjnym Microsoft Windows (LF -> CR + LF)

Oparty na Uniksie (Linux / OSX)

Podobnie mogą wystąpić problemy, gdy użytkownik w systemie operacyjnym Unix próbuje odczytać pliki edytowane w systemie Microsoft Windows. Aby zapobiec wystąpieniu nieoczekiwanych problemów

git config --global core.autocrlf=input

Przy zatwierdzeniu zmieni to zakończenia linii z CR + LF -> + LF

konfiguracja tylko dla jednego polecenia

możesz użyć -c <name>=<value> aby dodać konfigurację tylko dla jednego polecenia.

Aby zatwierdzić jako inny użytkownik bez konieczności zmiany ustawień w .gitconfig:

git -c user.email = mail@example commit -m "some message"

Uwaga: w tym przykładzie nie trzeba precyzyjnie zarówno user.name i user.email git uzupełni brakujące informacje z poprzednich zatwierdzeń.

Skonfiguruj serwer proxy

Jeśli jesteś za serwerem proxy, musisz powiedzieć o tym gitowi:

git config --global http.proxy http://my.proxy.com:portnumber

Jeśli nie jesteś już za proxy:

git config --global --unset http.proxy

Automatyczne poprawianie literówek

git config --global help.autocorrect 17

Umożliwia to autokorekty w git i wybacza ci drobne błędy (np. git stats zamiast git status ). Podany parametr help.autocorrect określa, jak długo system powinien czekać, w dziesiętnych częściach sekundy, przed automatycznym zastosowaniem polecenia autokorekty. W powyższym poleceniu 17 oznacza, że git powinien poczekać 1,7 sekundy przed zastosowaniem polecenia autokorekty.

Jednak większe błędy będą uważane za brakujące polecenia, więc wpisanie czegoś takiego jak git testingit spowoduje, że testingit is not a git command.

Wyświetl i edytuj bieżącą konfigurację

Konfiguracja Git pozwala dostosować sposób działania git. Zwykle służy do ustawiania imienia i nazwiska oraz adresu e-mail lub ulubionego edytora lub sposobu łączenia.

Aby zobaczyć bieżącą konfigurację.

$ git config --list
...
core.editor=vim
credential.helper=osxkeychain
...

Aby edytować konfigurację:

$ git config <key> <value>    
$ git config core.ignorecase true

Jeśli chcesz, aby zmiana była prawdziwa dla wszystkich twoich repozytoriów, użyj --global

$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
$ git config --global core.editor vi

Możesz ponownie wyświetlić listę, aby zobaczyć zmiany.

Wiele nazw użytkowników i adresów e-mail

Od wersji Git 2.13 wiele nazw użytkowników i adresów e-mail można skonfigurować za pomocą filtru folderów.

Przykład dla systemu Windows:

.gitconfig

Edycja: git config --global -e

Dodaj:

[includeIf "gitdir:D:/work"]
  path = .gitconfig-work.config    

[includeIf "gitdir:D:/opensource/"]
  path = .gitconfig-opensource.config
Notatki
  • Kolejność jest zależna, ostatni, który pasuje do „wygrywa”.
  • / na koniec jest potrzebny - np "gitdir:D:/work" nie będzie działać.
  • prefiks gitdir: jest wymagany.

.gitconfig-work.config

Plik w tym samym katalogu co .gitconfig

[user]
  name = Money
  email = [email protected]

.gitconfig-opensource.config

Plik w tym samym katalogu co .gitconfig

[user]
  name = Nice
  email = [email protected]

Przykład dla systemu Linux

[includeIf "gitdir:~/work/"]
  path = .gitconfig-work
[includeIf "gitdir:~/opensource/"]
  path = .gitconfig-opensource

Zawartość pliku i uwagi w sekcji Windows.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow