Close

git config

W tym dokumencie przyjrzymy się dogłębnie poleceniu git config. Krótko omówiliśmy użycie git config na naszej stronie Konfigurowanie repozytorium. Polecenie git config jest wygodną funkcją, która służy do ustawiania wartości konfiguracji Git na poziomie projektu globalnego lub lokalnego. Pliki tekstowe .gitconfig odpowiadają za te poziomy konfiguracji. Wykonanie polecenia git config zmodyfikuje plik tekstowy konfiguracji. Omówimy typowe ustawienia konfiguracji, takie jak e-mail, nazwa użytkownika, i edytor. Opowiemy też o aliasach Git, które umożliwiają tworzenie skrótów do często używanych operacji Git. Znajomość polecenia git config i różnych ustawień konfiguracji Git pomoże Ci stworzyć zaawansowany, niestandardowy przepływ pracy Git.


Użycie


Najbardziej podstawowym przypadkiem użycia polecenia git config jest wywołanie go z nazwą konfiguracji, która wyświetli ustawioną wartość pod tą nazwą. Nazwy konfiguracji to ciągi rozdzielane kropkami składające się z „sekcji” i „klucza” na podstawie ich hierarchii. Na przykład: użytkownik.email

git config user.email

W tym przykładzie „email” jest właściwością podrzędną bloku konfiguracji użytkownika. Spowoduje to zwrócenie skonfigurowanego adresu e-mail, jeśli taki istnieje, który Git skojarzy z lokalnie utworzonymi commitami.

Poziomy i pliki narzędzia git config

Zanim omówimy użycie polecenia git config, poświęćmy chwilę, aby poznać poziomy konfiguracji. Polecenie git config może przyjmować argumenty określające, na którym poziomie konfiguracji ma działać. Dostępne są następujące poziomy konfiguracji:

Gałąź Git
materiały pokrewne

Gałąź Git

Logo Bitbucket
POZNAJ ROZWIĄZANIE

Poznaj środowisko Git z rozwiązaniem Bitbucket Cloud

  • --local

Domyślnie polecenie git config będzie zapisywać na poziomie lokalnym, jeśli nie podano opcji konfiguracji. Konfiguracja poziomu lokalnego jest stosowana do repozytorium kontekstowego, w którym wykonywane jest polecenie git config. Lokalne wartości konfiguracyjne są przechowywane w pliku, który można znaleźć w repozytorium w katalogu .git: .git/config

  • --global

Konfiguracja poziomu globalnego jest powiązana z konkretnym użytkownikiem, co oznacza, że jest stosowana do użytkownika systemu operacyjnego. Globalne wartości konfiguracyjne są przechowywane w pliku, który znajduje się w katalogu domowym użytkownika. ~ /.gitconfig w systemach Unix i C:\Users\\.gitconfig w systemach windows

  • --system

Konfiguracja na poziomie systemu jest stosowana na całym komputerze. Dotyczy to wszystkich użytkowników systemu operacyjnego i wszystkich repozytoriów. Plik konfiguracyjny na poziomie systemu znajduje się w pliku gitconfig poza katalogiem głównym systemu. $(prefix)/etc/gitconfig w systemach Unix. W systemach Windows ten plik można znaleźć w folderze C:\Documents and Settings\All Users\Application Data\Git\config w systemie Windows XP i C:\ProgramData\Git\config w systemie Windows Vista i nowszych wersjach.

Kolejność priorytetów dla poziomów konfiguracji to: lokalny, globalny i systemowy. Oznacza to, że Git zaczyna szukać wartości konfiguracji na poziomie lokalnym, a następnie przechodzi wyżej, aż do poziomu systemu.

Zapisywanie wartości

Rozwijając to, co już wiemy o poleceniu git config, spójrzmy na przykład zapisywania wartości:

git config --global user.email "your_email@example.com"

Ten przykład zapisuje wartość twój_email@przyklad.com do nazwy konfiguracji użytkownik.email. Flaga --global jest użyta w celu ustawienia tej wartości dla bieżącego użytkownika systemu operacyjnego.

git config editor - core.editor


Wiele poleceń Git uruchomia edytor tekstu, aby umożliwić dalsze wprowadzanie danych. Jednym z najczęstszych przypadków użycia polecenia git config jest konfigurowanie edytora, którego ma używać Git. Poniżej znajduje się tabela popularnych edytorów i pasujących poleceń git config:

Edytor

Polecenie config

Atom

Polecenie config

~ git config --global core.editor "atom --wait"~

Emacs

Polecenie config

~ git config --global core.editor "emacs"~

Nano

Polecenie config

~ git config --global core.editor "nano -w"~

Vim

Polecenie config

~ git config --global core.editor "vim"~

Sublime Text (Mac)

Polecenie config

~ git config --global core.editor "subl -n -w"~

Sublime Text (Windows, 32-bitowy)

Polecenie config

~ git config --global core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w" ~

Sublime Text (Windows, 64-bitowy)

Polecenie config

~ git config --global core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w" ~

Textmate

Polecenie config

~ git config --global core.editor "mate -w"~

Narzędzia do scalania


W przypadku konfliktu scalania Git uruchomi narzędzie do scalania. Domyślnie Git używa wewnętrznej implementacji typowego programu różnicowego Unix. Wewnętrzne narzędzie diff w Git jest minimalną przeglądarką konfliktów scalania. Istnieje wiele zewnętrznych rozwiązań konfliktów scalania innych firm, które mogą zostać użyte zamiast niego. Aby poznać różne narzędzia do scalania i konfiguracji, zobacz nasze porady i omówienie narzędzi do rozwiązywania problemów z Git.

git config --global merge.tool kdiff3

Kolorowe dane wyjściowe


Git obsługuje kolorową składnię danych wyjściowych terminala, co pomaga w szybkim czytaniu danych wyjściowych Git. Możesz dostosować dane wyjściowe Git, aby użyć spersonalizowanego motywu kolorystycznego. Polecenie git config służy do ustawiania tych wartości kolorów.

color.ui

Jest to główna zmienna dla kolorów Git. Ustawienie wartości false spowoduje wyłączenie kolorowej składni danych wyjściowych w terminalu Git.

$ git config --global color.ui false

Domyślna wartość color.ui to auto — powoduje zastosowanie kolorów do bieżącego strumienia danych wyjściowych w terminalu. Ustawienie to pominie oznaczanie kolorami danych wyjściowych, jeśli strumień danych wyjściowy zostanie przekierowany do pliku lub innego procesu.

Możesz ustawić wartość color.ui na always (zawsze), aby również stosować oznaczanie kolorami danych wyjściowych podczas przekierowania strumienia danych wyjściowych do plików lub potoków. Może to przypadkowo powodować problemy, ponieważ pipe odbiorczy może nie oczekiwać danych wejściowych oznaczonych kolorami.

Wartości kolorów Git

Oprócz color.ui istnieje wiele innych szczegółowych ustawień kolorów. Podobnie jak w przypadku color.ui, te ustawienia kolorów można ustawić na false, auto lub always. Ustawienia kolorów mogą również mieć określoną wartość koloru. Przykłady obsługiwanych wartości kolorów:

  • normalny
  • czarny
  • czerwony
  • zielony
  • żółty
  • niebieski
  • magenta
  • cyjan
  • biały

Kolory można również określać jako kody szesnastkowe, takie jak #ff0000, lub wartości kolorów ANSI 256, jeśli są obsługiwane przez terminal.

Konfiguracja kolorów w Git

1. color.branch

  • Konfiguruje kolor wyjściowy polecenia Git branch.

2. color.branch.<slot>

  • Ta wartość ma również zastosowanie do wyjścia gałęzi Git. <slot> przyjmuje jedną z następujących wartości:
    • 1. current: bieżąca gałąź,
    • 2. local: lokalna gałąź,
    • 3. remote: odwołanie do zdalnej gałęzi w refs/remotes,
    • 4. upstream: gałąź śledzenia gałęzi nadrzędnej,
    • 5. plain: dowolne inne odwołanie.

3. color.diff

  • Stosuje kolory do danych wyjściowych poleceń git diff, git log i git show.

4. color.diff.<slot>

  • Konfiguracja wartości <slot> w pliku color.diff informuje narzędzie git, dla której części poprawki użyć określony kolor.
    • 1. context: tekst kontekstu porównania. Kontekst Git to wiersze zawartości tekstowej wyświetlane w porównaniu różnicowym lub poprawce, w której wyróżnione są zmiany.
    • 2. plain: synonim kontekstu.
    • 3. meta: stosuje kolor do metainformacji porównania.
    • 4. frag: stosuje kolor do nagłówka fragmentu ze zmianami lub funkcji w nagłówku fragmentu ze zmianami.
    • 5. old: stosuje kolor do usuniętych wierszy w porównaniu.
    • 6. new: stosuje kolor do dodanych wierszy w porównaniu.
    • 7. commit: stosuje kolor do nagłówków commitów w porównaniu.
    • 8. whitespace: ustawia kolor wszystkich białych znaków odstępu w porównaniu.

5. color.decorate.<slot>

  • Dostosowuje oznaczanie kolorami składni danych wyjściowych polecenia git log --decorate. Obsługiwane wartości zmiennej <slot> to: branch, remoteBranch, tag, stash oraz HEAD. Mają one zastosowanie odpowiednio do lokalnych oddziałów, oddziałów zdalnego śledzenia, tagów, zmian dodanych do schowka i elementów HEAD.

6. color.grep

  • Stosuje kolor do danych wyjściowych polecenia git grep.

7. color.grep. <slot>

  • Również dotyczy polecenia git grep. Zmienna <slot> określa, do której części danych wyjściowych polecenia grep zastosować kolor.
    • 1. context: niepasujący tekst w wierszach kontekstu
    • 2. filename: prefiks nazwy pliku
    • 3. function: wiersze nazwy funkcji
    • 4. linenumber: prefiks numeru wiersza
    • 5. match: pasujący tekst
    • 6. matchContext: pasujący tekst w wierszach kontekstu
    • 7. matchSelected: pasujący tekst w wybranych wierszach
    • 8. selected: niepasujący tekst w wybranych wierszach
    • 9. separator: separatory między polami w wierszu (:, -, and =) i między fragmentami ze zmianami (--)

8. color.interactive

  • Ta zmienna stosuje kolor do interaktywnych monitów i ekranów. Przykładami są git add --interactive i git clean --interactive

9. color.interactive.<slot>

  • Zmienną <slot> można określić w celu bardziej precyzyjnego stosowania ustawień do danych wyjściowych. Dostępne wartości zmiennej <slot> to: prompt, header, help, error. Każda z nich działa na odpowiednie interaktywne dane wyjściowe.

10. color.pager

  • Włącza lub wyłącza kolorową składnię danych wyjściowych, gdy używane jest stronicowanie.

11. color.showBranch

  • Włącza lub wyłącza kolorową składnię danych wyjściowych polecenia git show branch.

12. color.status

  • Wartość logiczna, która włącza lub wyłącza wyświetlanie kolorów dla statusu Git.

13. color.status.<slot>

Służy do ustawiania koloru niestandardowego dla określonych elementów statusu git. Zmienna <slot> obsługuje następujące wartości:

1. header

  • Stosuje ustawienie do tekstu nagłówka obszaru statusu.

2. added lub updated

  • Stosują ustawienie do plików, które zostały dodane, ale nie zatwierdzone.

3. changed

  • Stosuje ustawienie do plików, które zostały zmodyfikowane, ale nie dodane do indeksu git.

4. untracked

  • Stosuje ustawienie do plików, które nie są śledzone przez Git.

5. branch

  • Stosuje kolor do bieżącej gałęzi.

6. nobranch

  • Kolor, w którym wyświetlane jest ostrzeżenie o braku gałęzi.

7. unmerged

  • Stosuje kolor do plików, które mają niescalone zmiany.

Aliasy


Być może znasz pojęcie aliasów z wiersza polecenia systemu operacyjnego. Jeśli nie, są to niestandardowe skróty określające polecenie rozwijane do dłuższego polecenia lub kilku połączonych poleceń. Aliasy oszczędzają czas i nakład pracy związane z wpisywaniem często używanych poleceń. Git ma własny system aliasów. Typowym przypadkiem użycia aliasów Git jest skrócenie polecenia commit. Aliasy Git są przechowywane w plikach konfiguracyjnych Git. Oznacza to, że możesz użyć polecenia git config do konfigurowania aliasów.

git config --global alias.ci commit

Ten przykład tworzy alias ci dla polecenia git commit. Następnie można wywołać git commit, wykonując git ci. Aliasy mogą również odwoływać się do innych aliasów, aby tworzyć zaawansowane kombinacje.

git config --global alias.amend ci --amend

Ten przykład tworzy alias amend, który używa aliasu ci w nowym aliasie, który korzystającym z flagi --amend.

Formatowanie i znaki odstępu


Git ma kilka funkcji dotyczących znaków odstępu, które można skonfigurować tak, aby wyróżniały problemy ze znakami odstępu podczas korzystania z narzędzia git diff. Problemy z odstępami będą wyróżniane przy użyciu skonfigurowanego koloru color.diff.whitespace.

Domyślnie włączone są następujące funkcje:

  • blank-at-eol — wyróżnia znaki odstępu na końcu wierszy,
  • space-before-tab — wyróżnia spacje przed tabulatorem wcięcia wiersza,
  • blank-at-eof — wyróżnia puste wiersze wstawione na końcu pliku.

Następujące funkcje są domyślnie wyłączone:

  • indent-with-non-tab — wyróżnia wiersze z wcięciem przy użyciu spacji zamiast tabulatorów,
  • tab-in-indent — wyróżnia początkowe wcięcie tabulatorem jako błąd,
  • trailing-space — to skrót obejmujący funkcje blank-at-eol i blank-at-eof,
  • cr-at-eol — wyróżnia powrót karetki na końcu wierszy,
  • tabwidth= — określa liczbę pozycji znaków zajmowanych przez tabulator. Wartość domyślna to 8. Dozwolone wartości to 1–63.

Podsumowanie


W tym artykule przedstawiono sposób użycia polecenia git config. Omówiliśmy, dlaczego to polecenie jest zalecaną metodą edycji nieprzetworzonych plików git config w systemie plików. Przyjrzeliśmy się podstawowym operacjom odczytu i zapisu opcji konfiguracyjnych oraz typowym wzorcom konfiguracji:

  • Jak skonfigurować edytor Git
  • Jak zastąpić poziomy konfiguracji
  • Jak zresetować konfigurację do ustawień domyślnych
  • Jak dostosować kolory Git

Ogólnie rzecz biorąc, git config jest narzędziem pomocniczym, które ułatwia edytowanie nieprzetworzonych plików git config na dysku.Omówiliśmy szczegółowo opcje personalizacji. Podstawowa znajomość opcji konfiguracji git jest warunkiem wstępnym tworzenia repozytorium. Skorzystaj z naszego przewodnika, aby zapoznać się z podstawami.


Udostępnij ten artykuł
Następny temat

Zalecane lektury

Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat rodzajów zespołów DevOps lub otrzymywać aktualności na temat metodyki DevOps w Atlassian.

Ludzie współpracujący przy ścianie pełnej narzędzi

Blog Bitbucket

Ilustracja DevOps

Ścieżka szkoleniowa DevOps

Demonstracje funkcji z ekspertami Atlassian

Zobacz, jak Bitbucket Cloud współpracuje z Atlassian Open DevOps

Zapisz się do newslettera DevOps

Thank you for signing up