Ricerca…


Sintassi

  • git config [<opzione-file>] nome [valore] # uno dei casi d'uso più comuni di git config

Parametri

Parametro Dettagli
--system Modifica il file di configurazione a livello di sistema, che viene utilizzato per ogni utente (su Linux, questo file si trova a $(prefix)/etc/gitconfig )
--global Modifica il file di configurazione globale, che viene utilizzato per ogni repository su cui lavori (su Linux, questo file si trova in ~/.gitconfig
--local Modifica il file di configurazione specifico del repository, che si trova in .git/config nel repository; Questa è l'impostazione predefinita

Nome utente e indirizzo email

Subito dopo aver installato Git, la prima cosa da fare è impostare il nome utente e l'indirizzo email. Da una shell, digitare:

git config --global user.name "Mr. Bean"
git config --global user.email [email protected]
  • git config è il comando per ottenere o impostare le opzioni
  • --global significa che il file di configurazione specifico per il tuo account utente sarà modificato
  • user.name e user.email sono le chiavi per le variabili di configurazione; user è la sezione del file di configurazione. name e email sono i nomi delle variabili.
  • "Mr. Bean" e [email protected] sono i valori che stai memorizzando nelle due variabili. Notare le virgolette intorno a "Mr. Bean" , che sono obbligatorie in quanto il valore che si sta memorizzando contiene uno spazio.

Configurazioni multiple git

Hai fino a 5 fonti per la configurazione di git:

  • 6 file:
    • %ALLUSERSPROFILE%\Git\Config (solo per Windows)
    • (sistema) <git>/etc/gitconfig , con <git> come percorso di installazione git.
      (su Windows, è <git>\mingw64\etc\gitconfig )
    • (sistema) $XDG_CONFIG_HOME/git/config (solo per Linux / Mac)
    • (globale) ~/.gitconfig (Windows: %USERPROFILE%\.gitconfig )
    • (locale) .git/config (all'interno di un repository git $GIT_DIR )
    • un file dedicato (con git config -f ), usato ad esempio per modificare la configurazione dei sottomoduli: git config -f .gitmodules ...
  • la riga di comando con git -c : git -c core.autocrlf=false fetch sovrascrive qualsiasi altro core.autocrlf su false , solo per quel comando di fetch .

L'ordine è importante: qualsiasi set di configurazione in una fonte può essere sovrascritto da una fonte elencata sotto di essa.

git config --system/global/local è il comando per elencare 3 di queste fonti, ma solo git config -l dovrebbe elencare tutte le configurazioni risolte .
"risolto" significa che elenca solo il valore di configurazione finale sovrascritto.

Dal momento che git 2.8, se vuoi vedere quale configurazione proviene da quale file, digiti:

git config --list --show-origin

Impostazione quale editor utilizzare

Esistono diversi modi per impostare quale editor utilizzare per commit, rebasing, ecc.

  • Modifica le impostazioni di configurazione core.editor .

    $ git config --global core.editor nano
    
  • Imposta la variabile d'ambiente GIT_EDITOR .

    Per un comando:

    $ GIT_EDITOR=nano git commit
    

    O per tutti i comandi eseguiti in un terminale. Nota: questo si applica solo fino alla chiusura del terminale.

    $ export GIT_EDITOR=nano
    
  • Per modificare l'editor di tutti i programmi terminali, non solo Git, impostare la variabile d'ambiente VISUAL o EDITOR . (Vedi VISUAL vs EDITOR .)

    $ export EDITOR=nano
    

    Nota: come sopra, questo si applica solo al terminale corrente; la tua shell di solito ha un file di configurazione per permetterti di impostarlo in modo permanente. (Ad esempio, bash , aggiungi la riga sopra al tuo ~/.bashrc o ~/.bash_profile .)

Alcuni editor di testo (principalmente GUI) eseguiranno solo un'istanza alla volta e in genere si chiuderanno se si dispone già di un'istanza aperta. Se questo è il caso del tuo editor di testo, Git stamperà il messaggio Aborting commit due to empty commit message. del messaggio di Aborting commit due to empty commit message. senza consentire di modificare prima il messaggio di commit. Se ciò accade a te, consulta la documentazione del tuo editor di testo per vedere se ha un flag --wait (o simile) che lo farà mettere in pausa fino alla chiusura del documento.

Configurazione delle terminazioni di linea

Descrizione

Quando si lavora con un team che utilizza diversi sistemi operativi (SO) in tutto il progetto, a volte si possono incontrare problemi quando si tratta di terminazioni di linea.

Microsoft Windows

Quando si lavora su sistema operativo (SO) Microsoft Windows, le terminazioni di linea sono normalmente di forma - ritorno a capo + avanzamento riga (CR + LF). Aprire un file che è stato modificato usando la macchina Unix come Linux o OSX può causare problemi, facendo sembrare che il testo non abbia terminazioni di linea. Ciò è dovuto al fatto che i sistemi Unix applicano solo diverse terminazioni di linea di LF (Form Line Feeds).

Per risolvere questo problema puoi eseguire le seguenti istruzioni

git config --global core.autocrlf=true

Alla cassa , questa istruzione assicurerà che le terminazioni di linea siano configurate in conformità con il sistema operativo Microsoft Windows (LF -> CR + LF)

Basato su Unix (Linux / OSX)

Allo stesso modo, potrebbero esserci problemi quando l'utente su SO basato su Unix prova a leggere i file che sono stati modificati sul sistema operativo Microsoft Windows. Per evitare l'esecuzione di problemi imprevisti

git config --global core.autocrlf=input

In fase di commit , questo cambierà le terminazioni di linea da CR + LF -> + LF

configurazione per un solo comando

puoi usare -c <name>=<value> per aggiungere una configurazione solo per un comando.

Per eseguire il commit come un altro utente senza dover modificare le impostazioni in .gitconfig:

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

Nota: per questo esempio non è necessario specificare sia user.name che user.email , git completerà le informazioni mancanti dai commit precedenti.

Imposta un proxy

Se sei dietro un proxy, devi dirlo a Git:

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

Se non sei più dietro un proxy:

git config --global --unset http.proxy

Errori automatici corretti

git config --global help.autocorrect 17

Ciò abilita la correzione automatica in git e ti perdonerà per i tuoi errori minori (ad es. git stats invece di git status ). Il parametro fornito per help.autocorrect determina per quanto tempo il sistema deve attendere, in decimi di secondo, prima di applicare automaticamente il comando corretto. Nel comando precedente, 17 significa che git deve attendere 1,7 secondi prima di applicare il comando autocorretto.

Tuttavia, gli errori più grandi saranno considerati come mancati comandi, quindi digitando qualcosa come git testingit risulterebbe in testingit is not a git command.

Elenca e modifica la configurazione corrente

Git config ti permette di personalizzare il funzionamento di git. Viene comunemente utilizzato per impostare il proprio nome, l'e-mail o l'editor preferito o il modo in cui devono essere eseguite le unioni.

Per vedere la configurazione corrente.

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

Per modificare la configurazione:

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

Se si intende che la modifica sia vera per tutti i repository, utilizzare --global

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

Puoi elencare di nuovo per vedere le tue modifiche.

Più nomi utente e indirizzo email

Da Git 2.13, è possibile configurare più nomi utente e indirizzi di posta elettronica utilizzando un filtro di cartelle.

Esempio per Windows:

.gitconfig

Modifica: git config --global -e

Inserisci:

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

[includeIf "gitdir:D:/opensource/"]
  path = .gitconfig-opensource.config
Gli appunti
  • L'ordine è dipeso, l'ultimo che corrisponde a "vince".
  • il / alla fine è necessario - es. "gitdir:D:/work" non funzionerà.
  • il gitdir: è richiesto il prefisso.

.gitconfig-work.config

File nella stessa directory di .gitconfig

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

.gitconfig-opensource.config

File nella stessa directory di .gitconfig

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

Esempio per Linux

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

Il contenuto del file e le note sotto la sezione Windows.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow