Di mana git config --global dapat ditulis?

1025

Saat menggunakan git config --globaluntuk mengatur sesuatu, ke file mana ia akan menulis?

Contoh:

git config --global core.editor "blah"

Saya tidak dapat menemukannya di tempat-tempat ini:

C:\Program Files\Git\etc\gitconfig

C:\myapp\.git\config

Saya belum menetapkan ENV?

Versi My Git: 1.6.5.1.1367.gcd48 - di Windows 7

Ian Vaughan
sumber
1
Apakah Anda menggunakan msysgit atau yang lain?
codeguru
359
git config --global --editharus memberi tahu Anda lokasi yang tepat, apa pun jenis penyiapan yang Anda miliki - lihat saja file apa yang muncul di editor Anda.
MatrixFrog
55
git config --global --listjuga berguna ketika tidak ada karena memberi lokasi di mana git mengharapkannya.
AJP
4
@AJP: Ini persis masalah saya, tetapi bagaimana mengubah dari mana ia ingin menyimpan / membacanya?
Stijn de Witt
1
git config --list --show-origin akan memberi tahu Anda lokasi
eddyP23

Jawaban:

1240

Pembaruan 2016: dengan git 2.8 (Maret 2016), Anda cukup menggunakan:

git config --list --show-origin

Dan dengan Git 2.26 (Q1 2020), Anda dapat menambahkan --show-scopeopsi

git config --list --show-origin --show-scope

Anda akan melihat konfigurasi mana yang diatur di mana.
Lihat " Di mana pengaturan dalam konfigurasi Git saya berasal? "

Seperti yang ditunjukkan Steven Vascellaro dalam komentar ,

ini akan bekerja dengan lokasi pemasangan yang tidak standar. (mis. Git Portable )

(seperti yang terbaru PortableGit-2.14.2-64-bit.7z.exe, yang dapat dikompresi di mana pun Anda inginkan)


Jawaban asli (2010)

Dari dokumen :

--global

Untuk opsi penulisan: tulis ke ~/.gitconfigfile global daripada repositori .git/config.

Karena Anda menggunakan Git untuk Windows , mungkin tidak jelas lokasi ini terkait dengan apa. Tetapi jika Anda melihat dll / profil (dalam C:\Program Files\Git), Anda akan melihat:

HOME="$HOMEDRIVE$HOMEPATH"

Berarti:

C:\Users\MyLogin

(pada Windows 7)

Itu berarti file tersebut C:\Users\MyLogin\.gitconfiguntuk Git di Windows 7.

VONC
sumber
8
Saya benar-benar bodoh, saya tidak menambahkan bendera "--global" ke perintah edit! "git config --global --edit" menunjukkan file dengan semua perubahan konfigurasi saya, "git config --edit" adalah file yang terus saya buka dan pikirkan, di mana editor / bandingkan / etc item konfigurasi yang baru saja saya atur! Terimakasih banyak.
Ian Vaughan
6
Terima kasih. Saya telah melihat tempat-tempat lain jika dikatakan pada% USERPROFILE%. Di komputer saya HOMEDRIVE dan HOMEPATH dipetakan ulang ke drive jaringan. Pencarian di drive lokal saya tidak menghasilkan apa-apa. Jadi ini banyak membantu.
Mike M. Lin
2
Sangat berguna, saya mengalami masalah yang sama - jika Anda menggunakan domain dengan home drive yang dipetakan, ia akan mencoba membuat git config di sana. Ini akan membuat permintaan fitur yang baik - gunakan% HOMEDRIVE% atau% USERPROFILE%
plasmid87
2
Mengapa ini disebut global, padahal ini hanya untuk satu pengguna? Bukankah (untuk unix) /etc/gitconfigmenjadi "global" dan ~/.gitconfighanya menjadi "lokal" ..... dan saya kira .git/config"hiper-lokal" ----- Pada dasarnya, saya menemukan istilah "global" untuk membingungkan ini, dan saya bertanya-tanya apakah ada alasan bagus untuk nomenklatur itu?
Peter Ajtai
7
@PeterAjtai "global" karena ini untuk semua repositori Anda. Berbeda dengan "lokal" (hanya untuk satu repo) atau "sistem" (yang untuk semua repo, untuk semua pengguna)
VonC
123

Saya juga mencari global .gitconfigdi mesin Windows saya dan menemukan trik yang rapi ini menggunakan git.

Lakukan: git config --global -edan kemudian, jika Anda beruntung, Anda akan mendapatkan editor teks dimuat dengan .gitconfigfile global Anda . Cukup cari folder dari sana (atau coba save as ...), dan silakan! :-)

GILA
sumber
Apa yang saya cari! perintah -e! Karena mengedit properti sekaligus bukan intisari saya.
Patareco
1
Menjalankan perintah ini juga akan membuat C:\Users\<user_name>\.gitconfigjika tidak ada.
pmbanka
Saya menjalankan dalam mode non-jendela dan tidak dapat menemukan lokasi di mana pun
Triynko
73

Pada * nixes, ada di ~/.gitconfig. Apakah ada file yang sesuai di rumah Anda?

Di Windows Anda bisa mengetikkan git bash

notepad ~/.gitconfig
Ben
sumber
6
Ini harus sama di windows.
Felix Kling
2
Jika Anda ingin mendapatkan itu dengan mudah, menulis alias :) Berikut saya: alias gitconfig='open -a Sublime\ Text.app ~/.gitconfig'. Gunakan editor teks apa pun yang Anda inginkan.
Agustus
43

Path untuk msysgit adalah:

Windows XP -C:\Documents and Settings\<user_name>\.gitconfig

Windows Vista + C:\Users\<user_name>\.gitconfig

hash
sumber
17
Mungkin lebih baik untuk menggambarkan ini sebagai% USERPROFILE% maka jawabannya akan bekerja untuk semua versi Windows, dulu, sekarang, dan di masa depan.
jarmod
3
Kecuali saya pikir itu sebenarnya% HOMEDRIVE %% HOMEPATH% seperti pada jawaban lain, yang sama dengan% USERPROFILE% dalam banyak kasus, tetapi beberapa dari kita memiliki konfigurasi TI yang mengarahkannya ke drive yang dipetakan.
ojchase
34

Lokasi global diturunkan, pada Windows MsysGit, menggunakan variabel lingkungan HOMEDRIVE dan HOMEPATH, kecuali Anda telah menetapkan variabel lingkungan HOME. Detail dalam skrip 'profil'.

Di lingkungan perusahaan saya, HOMEDRIVE adalah H :, yang kemudian dipetakan ke URL jaringan \\ share \ $. Seluruh lot kemudian dipetakan menjadi "My Documents", yang mana tidak seperti yang diharapkan orang lain. Mungkin ada beberapa masalah lebih lanjut dengan pembuatan ulang drive ke URL. Saya bahkan tidak bisa menyesuaikan variabel HOMEDRIVE atau HOMEPATH.

Dalam kasus saya, saya telah mendefinisikan variabel lingkungan HOME pribadi dan mengarahkannya ke D: \ git \ GitHOME dan menyalin semua file GIT (yang tanpa dan ekstensi) ke direktori GitHOME untuk menjaga keamanan.

Variabel lingkungan windows dapat diatur melalui tab Advanced di dialog properti My Computer.

Philip Oakley
sumber
1
Saya sedang menggulir jawaban untuk memposting pada variabel HOMEDRIVEdan HOMEPATH, karena mereka hanya menangkap saya saat menggunakan Bower. Tampaknya sejumlah utilitas di Windows membaca dari <system>:\User\<username>\.gitconfig, while the Git tool itself saves to % HOMEPATH% \. Gitconfig . I had to go one step further and copy the updated config file from my H: `(jaringan kami menggunakan huruf drive yang sama untuk itu) ke folder pengguna lokal saya, baru kemudian Git menggunakan aturan dengan benar ketika dipanggil oleh Bower.
1
@ ZaLiTHkA, di jaringan korporat saya, drive Home (H :) pengguna kembali dipetakan kembali ke lokasi C: \ User \, jadi saya tidak menyadarinya. Jika Anda dapat mengidentifikasi mana utilitas FOSS yang melakukan kesalahan maka itu akan menjadi info yang berguna untuk membantu berkeliling melaporkan / memperbaiki alat-alat tersebut. Jika itu adalah alat internal perusahaan, Anda sendiri ;-)
Philip Oakley
Kecuali itu lebih rumit daripada garis setter sederhana, saya tidak melihat HOME didefinisikan dalam skrip profil dll \. Tampaknya masih bertindak seperti yang dijelaskan, tapi saya tidak jelas di mana HOME sedang diatur saat ini.
ojchase
@ojchase Bagian saya dari jawaban di mana --glob config ditulis terkait khusus untuk Windows. Inti Linux git menulis ke tempat-tempat seperti tempat XDG mengarahkan (yaitu saya sadar bahwa linux menulis ke tempat lain dan memiliki konvensi lain, dan yang penting ia memiliki direktori root sementara Windows memiliki 'Drives' ;-)
Philip Oakley
@ PhilipOakley Saya sebenarnya merujuk ke Windows juga; maaf saya tidak jelas. Menggabungkan jawaban Anda dan yang lain, saya mengharapkan semacam HOME = $HOMEDRIVE$HOMEPATH(atau serupa) baris di C:\Program Files\Git\etc\profiledan garis itu tampaknya tidak ada, tetapi mungkin dulu? Saya belum dapat mengetahui dengan tepat apa yang mengatur $ HOME kecuali itu ditetapkan oleh variabel lingkungan yang saya lebih suka tidak melakukannya.
ojchase
12

Jika Anda menggunakan TortoiseGit pada PC windows Anda dapat menggunakan:

Settings / Git / Config / Edit global .gitconfig

untuk membuka file global .gitignore.

Tetapi jika Anda menggunakan Windows (7) PC Anda di domain, profil Anda dir mungkin merupakan jaringan berbagi (dipasang sebagai drive). Dalam hal ini TortoiseGit (setidaknya: 1.6.5.0) mengarahkan Anda ke direktori yang salah (di c: ...). Lihat masalah TortoiseGit 922 yang ditutup untuk informasi lebih lanjut. Atau menggunakan% HOMEDRIVE %% HOMEPATH% untuk membuka direktori yang berisi file .gitignore.

DanielaWaranie
sumber
10

Saya menggunakan SmartGit dengan msysgit di Windows 8.1 dan memperhatikan bahwa ada tiga lokasi berbeda untuk gitconfigfile tersebut:

%USERPROFILE%\.gitconfig
C:\Program Files (x86)\Git\etc\gitconfig
C:\Program Files (x86)\SmartGitHg\git\etc\gitconfig

Tetapi yang digunakan adalah yang dari %USERPROFILE%\.gitconfig.

Benny Neugebauer
sumber
6

Mungkin berguna untuk mencatat (untuk platform * nix): beberapa jenis konfigurasi / informasi global git disimpan /usr/share/git-core/, seperti skrip pelengkapan otomatis git dan kait berikut (default):

  • applypatch-msg
  • pasca pembaruan
  • pra-komit
  • prep-commit-msg
  • commit-msg
  • pra-applypatch
  • pra-rebase
  • memperbarui

Masing-masing dapat berisi set perintah mereka sendiri untuk dieksekusi, pada saat yang dijelaskan oleh nama file masing-masing.

samstav
sumber
2
Tidak berguna untuk pertanyaan OP.
orbfish
5

Saya juga punya masalah dengan global saya .gitconfig Ini untuk kasus seseorang juga memiliki ini aneh

git berkata:

fatal: kesalahan tidak dikenal terjadi saat membaca file konfigurasi

Sekarang saya memperbaikinya. Masalahnya adalah yang kedua .gitconfigdi folder ini:

c: \ Users \ myUser.config \ git \ config

Saya tidak tahu dari mana asalnya ... Tapi sekarang semuanya berfungsi seperti mantra lagi.

Surai
sumber
5

Kapan file global .gitconfig dibuat?

Pertama, git tidak secara otomatis membuat file konfigurasi global (.gitconfig) selama instalasi. File tidak dibuat sampai ditulis untuk pertama kali. Jika Anda belum pernah menetapkan variabel sistem, itu tidak akan berada di sistem file Anda. Saya menduga itu mungkin sumber masalahnya.

Salah satu cara untuk meminta Git membuatnya adalah meminta edit. Melakukan hal itu akan memaksa pembuatan file.

git config --global --edit

Jika Anda memantau folder rumah pengguna ketika Anda mengeluarkan perintah ini, Anda akan melihat file .gitconfig muncul secara ajaib.

Di mana konfigurasi git disimpan?

Berikut adalah ikhtisar cepat dari nama dan lokasi file konfigurasi yang terkait dengan tiga ruang lingkup Git, yaitu sistem , global dan lokal :

  • Konfigurasi System Git: File bernama gitconfig yang terletak di -git-install-location- / ming <32> / etc
  • Konfigurasi Git Global: File bernama .gitconfig yang terletak di folder beranda pengguna (C: \ Users \ git pengguna)
  • Konfigurasi Local Git: File dengan nama config di folder .git dari repo lokal

Tentu saja, melihat itu percaya, jadi inilah gambar yang menunjukkan setiap file dan setiap lokasi. Saya menarik gambar dari artikel yang saya tulis pada topik.

Lokasi file konfigurasi Windows Git (TheServerSide.com)

Lokasi file konfigurasi Git

Cameron McKenzie
sumber
1
ada tempat keempat yang disebut konfigurasi portabel: di sini mereka menyebutkan 4 tempat; Git untuk Windows mendukung empat tingkat konfigurasi. Pada level terendah adalah pengaturan konfigurasi khusus mesin yang dikenal sebagai "portable" dan menjalankan "% ProgramData% \ Git \ config"
Badr Elmers
1
Pikiran meledak! Saya akan memperbarui artikel dengan informasi baru. Bersulang!
Cameron McKenzie
4

Saya menjalankan Windows 7 dan menggunakan git sebagai pengaturan dengan mengikuti instruksi pada GitHub (satu atau dua tahun lalu). Kasus penggunaan yang agak umum saya pikir. Tidak ada jawaban di atas yang membantu saya, dan setelah frustrasi saya akhirnya menemukan file gitconfig 'asli' saya di direktori berikut;

C: \ Users \ Bill \ AppData \ Local \ GitHub \ PortableGit_054f2e797ebafd44a30203088cd 3d58663c627ef \ dll

Ganti nama pengguna Anda dengan jelas dan mungkin suffix setelah PortableGit_ adalah GUID unik atau serupa.

Bill Forster
sumber
1
Ini hanya terjadi ketika menggunakan GitHub untuk Windows.
Snake
3

Saya pikir penting untuk mengirim kutipan ini:

Git untuk Windows mendukung empat tingkat konfigurasi. Pada level terendah adalah pengaturan konfigurasi khusus mesin yang dikenal sebagai "portable" dan menjalankan "% ProgramData% \ Git \ config". Satu tingkat prioritas adalah pengaturan konfigurasi khusus instalasi yang dikenal sebagai "sistem", yang hidup di "\ mingw64 \ etc \ gitconfig". Kedua file konfigurasi ini, umumnya memerlukan hak yang lebih tinggi untuk memodifikasi.

Dimulai dengan menggunakan nilai spesifik yang dikenal sebagai konfigurasi "global", yang dapat ditemukan di "% UserProfile% .gitconfig", kami menemukan file konfigurasi "yang dapat diedit". Pengaturan konfigurasi prioritas tertinggi adalah dalam konfigurasi "lokal", yang biasanya dapat ditemukan di ".git \ config".

Ia melihat rekomendasi di blog yang tertaut adalah untuk memodifikasi pengaturan konfigurasi khusus "sistem" atau "instalasi", yang baik-baik saja tetapi pengguna harus berharap bahwa instalasi Git lainnya tidak akan menyerap pengaturan tersebut. Jika Anda menginginkan pengaturan lebar mesin, gunakan file konfigurasi "portable", jika tidak pilih file konfigurasi "global" atau "lokal".

Semoga orang menemukan informasi ini berguna.

sumber

Badr Elmers
sumber
3

Seperti @MatrixFrog tunjukkan dalam komentar mereka , jika tujuannya adalah untuk mengedit konfigurasi, Anda mungkin ingin menjalankan:

git config --global --edit

Perintah ini akan membuka file konfigurasi (dalam hal ini, yang --global) di editor pilihan, dan menunggu file ditutup (seperti saat git rebase -i).

Dmitry Parzhitsky
sumber
Anda dapat menggunakan ini untuk mencari tahu di mana global .gitconfigterletak -. Asalkan editor Anda memberitahu Anda apa direktori file tersebut berada di Anda juga dapat menggunakan switch lain ( --system, --local, dll) untuk menemukan dan mengedit lainnya .gitconfiglokasi. PS -esama dengan--edit
LightCC
1

Hapus instalan Msysgit dan instal Cygwin + Git. Maka global '.gitconfig' akan ada di sini: C: \ cygwin (64) \ home \ [userName] \. Gitconfig.

Sekarang Anda tidak perlu khawatir tentang variabel lingkungan yang dapat digunakan oleh program lain. Misalnya, variabel lingkungan saya mengarahkan saya ke drive yang dipetakan di lingkungan domain windows pekerjaan saya. Saya tidak ingin .gitconfig global saya duduk di drive "home" yang dipetakan. Saya juga tidak tahu apa yang mungkin terjadi pada aplikasi lain yang mungkin bergantung pada variabel lingkungan windows itu. Divisi operasi mungkin memerlukan variabel lingkungan yang disetel ke drive yang dipetakan karena suatu alasan.

Anda juga tidak perlu khawatir tentang Mysysgit menimpa pengaturan konfigurasi 'profil' Anda jika Anda menentukan jalur spesifik ke global '.gitconfig', menggunakan metode ini.

Secara umum, selamatkan diri Anda dan gunakan shell bash cygwin di windows dan lebih bahagia

meffect
sumber
1

Saya memiliki masalah serupa; masalahnya adalah .gitconfigfile tersebut berada di

C:\Users\MyLogin\.gitconfig\

(pada Windows 7)

Dengan kata lain, file itu berada di C:\Users\MyLogin\.gitconfig\.gitconfig, bukan pada C:\Users\MyLogin\.gitconfig(yang merupakan tempat Git mencari file).

rolandog
sumber
1

.gitconfig lokasi file

pengujian macOS OK

global

# global config
$ cd ~/.gitconfig

# view global config
$ git config --global -l

lokal

# local config
$ cd .git/config

# view local config
$ git config -l

mungkin bonus untuk Anda :Vimatau VSCodeuntuk edit git config


# open config with Vim

# global config
$ vim ~/.gitconfig

# local config
$ vim .git/config


# open config with VSCode

# global config
$ code ~/.gitconfig

# local config
$ code .git/config
xgqfrms
sumber
0

Saya telah menginstal Git saya di: C:\Users\_myuserfolder_\AppData\Local\Programs\Git

KikeSP
sumber