Trường hợp git config --global được ghi vào đâu?


1025

Khi sử dụng git config --globalđể thiết lập mọi thứ, nó sẽ ghi tập tin nào?

Thí dụ:

git config --global core.editor "blah"

Tôi không thể tìm thấy nó ở những nơi này:

C:\Program Files\Git\etc\gitconfig

C:\myapp\.git\config

Tôi chưa đặt ENV?

Phiên bản Git của tôi: 1.6.5.1.1367.gcd48 - trên Windows 7


1
Bạn đang sử dụng msysgit hay cái gì khác?
codeguru

359
git config --global --editsẽ cho bạn biết vị trí chính xác cho dù bạn có loại thiết lập nào - chỉ cần xem tệp nào xuất hiện trong trình chỉnh sửa của bạn.
MatrixFrog

55
git config --global --listcũng hữu ích khi nó không tồn tại vì nó đã đưa ra vị trí mà git đang mong đợi nó sẽ tồn tại.
AJP

4
@AJP: Đây chính xác là vấn đề của tôi, nhưng làm thế nào để thay đổi nơi nó muốn lưu / đọc nó từ đâu ??
Stijn de Witt

1
git config --list --show-origin sẽ cho bạn biết vị trí
eddyP23

Câu trả lời:


1240

Cập nhật 2016: với git 2.8 (tháng 3 năm 2016), bạn chỉ cần sử dụng:

git config --list --show-origin

Và với Git 2.26 (Q1 2020), bạn có thể thêm --show-scopetùy chọn

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

Bạn sẽ thấy cấu hình nào được đặt ở đâu.
Xem " Cài đặt trong cấu hình Git của tôi đến từ đâu? "

Như Steven Vascellaro chỉ ra trong các ý kiến ,

nó sẽ làm việc với các vị trí cài đặt không chuẩn. (tức là Git Portable )

(như mới nhất PortableGit-2.14.2-64-bit.7z.exe, có thể không bị nén ở bất cứ đâu bạn muốn)


Câu trả lời gốc (2010)

Từ các tài liệu :

--toàn cầu

Đối với tùy chọn ghi: ghi vào ~/.gitconfigtệp toàn cầu thay vì kho lưu trữ .git/config.

Vì bạn đang sử dụng Git cho Windows , nên có thể không rõ vị trí này tương ứng với vị trí nào. Nhưng nếu bạn nhìn vào etc / profile (in C:\Program Files\Git), bạn sẽ thấy:

HOME="$HOMEDRIVE$HOMEPATH"

Ý nghĩa:

C:\Users\MyLogin

(trên Windows 7)

Điều đó có nghĩa là tệp nằm trong C:\Users\MyLogin\.gitconfigGit trong Windows 7.


8
Tôi đã thực sự ngớ ngẩn, tôi đã không thêm cờ "--global" vào lệnh chỉnh sửa! "git config --global --edit" hiển thị tệp với tất cả các thay đổi cấu hình của tôi, "git config --edit" là tệp tôi tiếp tục mở và suy nghĩ, mục cấu hình / so sánh / etc mà tôi vừa đặt! Cảm ơn nhiều.
Ian Vaughan

6
Cảm ơn. Tôi đã thấy những nơi khác nói rằng nó ở% USERPROFILE%. Trên máy tính của tôi HOMEDRIVE và HOMEPATH được ánh xạ vào ổ đĩa mạng. Tìm kiếm trên ổ đĩa địa phương của tôi đã không có gì. Vì vậy, điều này đã giúp rất nhiều.
Mike M. Lin

2
Thực sự hữu ích, tôi đã gặp vấn đề tương tự - nếu bạn đang ở trên một miền có ổ đĩa gia đình được ánh xạ, nó sẽ thử và tạo cấu hình git ở đó. Điều này sẽ thực hiện một yêu cầu tính năng tốt - sử dụng% HOMEDRIVE% hoặc% USERPROFILE%
plasmid87

2
Tại sao điều này được gọi là toàn cầu, khi nó chỉ dành cho một người dùng? Sẽ không (đối với unix) /etc/gitconfiglà "toàn cầu" và ~/.gitconfigchỉ là "cục bộ" ..... và tôi đoán .git/config"siêu cục bộ" ----- Về cơ bản, tôi tìm thấy thuật ngữ "toàn cầu" cho điều này khó hiểu, và tôi đã tự hỏi nếu có một lý do tốt cho danh pháp?
Peter Ajtai

7
@PeterAjtai "toàn cầu" vì nó dành cho tất cả kho lưu trữ của bạn. Trái ngược với "cục bộ" (chỉ dành cho một repo) hoặc "hệ thống" (dành cho tất cả repo, cho tất cả người dùng)
VonC

123

Tôi cũng đang tìm kiếm toàn cầu .gitconfigtrên máy Windows của mình và tìm thấy thủ thuật gọn gàng này bằng git.

Thực hiện: git config --global -evà sau đó, nếu bạn may mắn, bạn sẽ nhận được một trình soạn thảo văn bản được tải với .gitconfigtệp toàn cầu của bạn . Chỉ cần tra cứu thư mục từ đó (hoặc thử lưu dưới dạng ...), et voilà! :-)


Chỉ cần những gì tôi đang tìm kiếm! lệnh -e! Bởi vì chỉnh sửa một tài sản tại một thời điểm không phải là ý chính của tôi.
Patareco

1
Chạy lệnh này cũng sẽ tạo ra C:\Users\<user_name>\.gitconfignếu nó bị thiếu.
pmbanka

Tôi đang chạy ở chế độ không có cửa sổ và không thể tìm thấy vị trí ở bất cứ đâu
Triynko

73

Trên * nixes, nó ở ~/.gitconfig . Có một tập tin tương ứng trong nhà của bạn?

Trên Windows, bạn có thể gõ git bash

notepad ~/.gitconfig

6
Điều này nên giống nhau trên các cửa sổ.
Felix Kling

2
Nếu bạn muốn nhận được nó một cách dễ dàng, hãy viết một bí danh :) Đây là của tôi : alias gitconfig='open -a Sublime\ Text.app ~/.gitconfig'. Sử dụng bất cứ trình soạn thảo văn bản nào bạn muốn.
Tháng Tám

43

Các đường dẫn cho msysgit là:

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

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


17
Có lẽ tốt hơn để mô tả điều này là% USERPROFILE% thì câu trả lời sẽ hoạt động cho tất cả các phiên bản Windows, quá khứ, hiện tại và tương lai.
13 lúc 18 giờ 41

3
Ngoại trừ tôi nghĩ rằng đó thực sự là% HOMEDRIVE %% HOMEPATH% như trong các câu trả lời khác, tương đương với% USERPROFILE% trong nhiều trường hợp, nhưng một số người trong chúng ta có cấu hình CNTT chỉ vào ổ đĩa được ánh xạ.
ojchase

34

Vị trí toàn cầu có nguồn gốc, trên Windows MsysGit, sử dụng các biến môi trường HOMEDRIVE và HOMEPATH, trừ khi bạn đã xác định biến môi trường HOME. Các chi tiết trong kịch bản 'hồ sơ'.

Trong môi trường công ty của tôi, HOMEDRIVE là H:, sau đó được ánh xạ tới một URL mạng \ share \ $. Toàn bộ lô sau đó được ánh xạ là "Tài liệu của tôi", đây không phải là nơi mà người khác mong đợi. Có thể có một số vấn đề nữa với ổ đĩa ánh xạ lại URL. Tôi thậm chí không được điều chỉnh các biến HOMEDRIVE hoặc HOMEPATH.

Trong trường hợp của tôi, tôi đã xác định biến môi trường HOME cá nhân và trỏ nó vào D: \ git \ GitHOME và sao chép tất cả các tệp GIT (không có và mở rộng) vào thư mục GitHOME để giữ an toàn.

Các biến môi trường windows có thể được đặt thông qua tab Advanced trong hộp thoại My Computer property.


1
Tôi đã cuộn qua các câu trả lời sắp đăng trên HOMEDRIVEHOMEPATHcác biến, vì chúng vừa bắt tôi khi sử dụng Bower. Có vẻ như một số tiện ích trên Windows đã đọc từ <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: `(mạng của chúng tôi sử dụng cùng một ký tự ổ đĩa cho điều đó) vào thư mục người dùng cục bộ của tôi, chỉ sau đó Git mới sử dụng đúng quy tắc khi được Bower gọi.

1
@ZaLiTHkA, Trong mạng công ty của tôi, ổ đĩa Home (H :) của người dùng cũng được ánh xạ trở lại vị trí C: \ User \, vì vậy tôi không nhận thấy điều đó. Nếu bạn có thể xác định các tiện ích FOSS nào mắc lỗi thì đó sẽ là thông tin hữu ích để giúp làm tròn báo cáo / sửa các công cụ đó. Nếu chúng là các công cụ nội bộ của công ty, bạn phải tự mình làm việc ;-)
Philip Oakley

Trừ khi nó phức tạp hơn một dòng setter đơn giản, tôi không thấy HOME được định nghĩa trong tập lệnh hồ sơ vv \. Nó dường như vẫn hoạt động như mô tả, nhưng tôi không rõ HOME hiện đang được đặt ở đâu.
ojchase

@ojchase Một phần câu trả lời của tôi về cấu hình --glob được viết liên quan cụ thể đến Windows. Linux git cốt lõi ghi vào các vị trí như nơi XDG điều hướng (tức là tôi biết rằng linux ghi vào nơi khác và có các quy ước khác, và quan trọng là nó có một thư mục gốc trong khi Windows có 'Ổ đĩa' ;-)
Philip Oakley

@PhilipOakley Tôi cũng đã thực sự đề cập đến Windows; xin lỗi tôi không rõ ràng Kết hợp câu trả lời của bạn và những người khác, tôi đã mong đợi một số dòng HOME = $HOMEDRIVE$HOMEPATH(hoặc tương tự) trong C:\Program Files\Git\etc\profileđó và dòng đó dường như không tồn tại, nhưng có lẽ đã từng? Tôi đã không thể tìm ra chính xác những gì đang thiết lập $ HOME trừ khi nó được đặt theo biến môi trường mà tôi không muốn làm.
ojchase

12

Nếu bạn đang sử dụng TortoiseGit trên PC Windows, bạn có thể sử dụng:

Settings / Git / Config / Edit global .gitconfig

để mở tệp .gitignore toàn cầu.

Nhưng nếu bạn sử dụng PC Windows (7) trong một miền thì thư mục hồ sơ của bạn có thể là một chia sẻ mạng (được gắn dưới dạng một ổ đĩa). Trong trường hợp này, TortoiseGit (ít nhất là: 1.6.5.0) đang chỉ cho bạn đến thư mục sai (trên c: ...). Xem vấn đề rùaGit 922 đã đóng để biết thêm thông tin. Hoặc sử dụng% HOMEDRIVE %% HOMEPATH% để mở thư mục chứa tệp .gitignore.


10

Tôi đang sử dụng SmartGit với msysgit trên Windows 8.1 và nhận thấy rằng có thể có ba vị trí khác nhau cho gitconfigtệp:

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

Nhưng cái được sử dụng là cái từ %USERPROFILE%\.gitconfig.


6

Có thể hữu ích khi lưu ý (đối với nền tảng * nix): một số loại cấu hình / thông tin git toàn cầu được lưu trữ /usr/share/git-core/, chẳng hạn như tập lệnh tự động hoàn thành git và các móc nối (mặc định) sau:

  • áp dụng tin nhắn
  • cập nhật sau
  • Cam kết trước
  • chuẩn bị-cam kết-tin nhắn
  • cam kết tin nhắn
  • đăng ký trước
  • tiền nổi loạn
  • cập nhật

Mỗi trong số chúng có thể chứa tập lệnh riêng để thực thi, tại thời điểm được mô tả bằng tên tệp tương ứng của chúng.


2
Không hữu ích cho câu hỏi OP.
orbfish

5

Tôi cũng có một vấn đề với toàn cầu của tôi .gitconfig Đây là trường hợp ai đó cũng có điều kỳ lạ này

git nói:

gây tử vong: lỗi không xác định xảy ra trong khi đọc các tệp cấu hình

Bây giờ tôi đã sửa nó. Vấn đề là một giây .gitconfigtrong thư mục này:

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

Tôi không biết nó đến từ đâu ... Nhưng bây giờ mọi thứ lại hoạt động như một lá bùa.


5

Khi nào tệp .gitconfig toàn cầu được tạo?

Trước hết, git không tự động tạo tệp cấu hình chung (.gitconfig) trong quá trình cài đặt. Các tập tin không được tạo cho đến khi nó được ghi vào lần đầu tiên. Nếu bạn chưa bao giờ đặt biến hệ thống, nó sẽ không nằm trong hệ thống tệp của bạn.Tôi đoán đó có thể là nguồn gốc của vấn đề.

Một cách để yêu cầu Git tạo nó là yêu cầu chỉnh sửa. Làm như vậy sẽ buộc tạo tệp.

cấu hình git --global --edit

Nếu bạn giám sát thư mục nhà của người dùng khi bạn thực hiện lệnh này, bạn sẽ thấy tệp .gitconfig xuất hiện một cách kỳ diệu.

Cấu hình git được lưu trữ ở đâu?

Dưới đây là một bản tóm tắt nhanh chóng về tên và vị trí của các tệp cấu hình được liên kết với ba phạm vi Git, cụ thể là hệ thống , toàn cầucục bộ :

  • Cấu hình hệ thống Git: Tệp có tên gitconfig nằm trong -git-install-location- / ming <32> / etc
  • Global Git configuraiton: Tệp có tên .gitconfig nằm trong thư mục nhà của người dùng (C: \ Users \ git user)
  • Cấu hình Git cục bộ: Tệp có tên config trong thư mục .git của repo cục bộ

Tất nhiên, nhìn thấy là tin tưởng, vì vậy đây là một hình ảnh hiển thị từng tệp và từng vị trí. Tôi lấy hình ảnh từ một bài báo tôi đã viết về chủ đề này.

Vị trí tệp cấu hình Windows Git (TheServerSide.com)

Vị trí của tệp cấu hình Git


1
có một vị trí thứ tư được gọi là cấu hình di động: ở đây họ đề cập đến 4 địa điểm; Git cho Windows hỗ trợ bốn cấp cấu hình. Ở mức thấp nhất là các cài đặt cấu hình cụ thể của máy được gọi là "xách tay" và tồn tại "% ProgramData% \ Git \ config"
Badr Elmer

1
Tâm thổi! Tôi sẽ cập nhật bài viết với thông tin mới. Chúc mừng!
Cameron McKenzie

4

Tôi đang chạy Windows 7 và sử dụng git làm thiết lập bằng cách làm theo các hướng dẫn trên GitHub (một hoặc hai năm trở lại). Một trường hợp sử dụng khá phổ biến tôi sẽ nghĩ. Không có câu trả lời nào ở trên giúp tôi, và sau nhiều thất vọng, cuối cùng tôi đã tìm thấy tệp gitconfig 'thực' của mình trong thư mục sau;

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

Rõ ràng thay thế tên người dùng của bạn và có lẽ là hậu tố sau PortableGit_ là một GUID duy nhất hoặc tương tự.


1
Đây chỉ là trường hợp khi sử dụng GitHub cho Windows.
Rắn

3

Tôi nghĩ điều quan trọng là phải đăng trích dẫn này:

Git cho Windows hỗ trợ bốn cấp cấu hình. Ở mức thấp nhất là các cài đặt cấu hình cụ thể của máy được gọi là "xách tay" và tồn tại "% ProgramData% \ Git \ config". Một mức độ ưu tiên cho chúng tôi cài đặt cấu hình cụ thể cài đặt được gọi là "hệ thống", hoạt động tại "\ mingw64 \ etc \ gitconfig". Cả hai tệp cấu hình này, thường yêu cầu các đặc quyền nâng cao để sửa đổi.

Bắt đầu với việc sử dụng các giá trị cụ thể được gọi là cấu hình "toàn cầu", có thể tìm thấy tại "% UserProfile% .gitconfig", chúng tôi tìm thấy các tệp cấu hình "người dùng có thể chỉnh sửa". Cài đặt cấu hình ưu tiên cao nhất nằm trong cấu hình "cục bộ", thường có thể được tìm thấy tại ".git \ config".

Nó thấy khuyến nghị trong blog được liên kết là sửa đổi cài đặt cấu hình cụ thể "hệ thống" hoặc "cài đặt", điều này tốt nhưng người dùng nên hy vọng rằng các cài đặt khác của Git sẽ không hấp thụ các cài đặt đã nói. Nếu bạn muốn cài đặt rộng cho máy, hãy sử dụng tệp cấu hình "di động", nếu không hãy chọn tệp cấu hình "toàn cầu" hoặc "cục bộ".

Hy vọng, mọi người tìm thấy thông tin này hữu ích.

nguồn


3

Như @MatrixFrog đã chỉ ra trong bình luận của họ , nếu mục tiêu là chỉnh sửa cấu hình, bạn có thể muốn chạy:

git config --global --edit

Lệnh này sẽ mở tệp cấu hình (trong trường hợp này là tệp --global) trong trình soạn thảo lựa chọn và chờ tệp được đóng (giống như trong khi git rebase -i).


Bạn có thể sử dụng để tìm ra nơi toàn cầu .gitconfignằm -. Miễn là soạn thảo của bạn sẽ cho bạn biết những gì thư mục tập tin nằm trong Bạn cũng có thể sử dụng công tắc khác ( --system, --local, vv) để tìm và chỉnh sửa khác .gitconfigđịa điểm. PS -egiống như--edit
LightCC

1

Gỡ cài đặt Msysgit và cài đặt Cygwin + Git. Sau đó, '.gitconfig' toàn cầu sẽ ở đây: C: \ cygwin (64) \ home \ [userName] \. Gitconfig.

Bây giờ bạn không phải lo lắng về một biến môi trường có thể được sử dụng bởi các chương trình khác. Ví dụ, biến môi trường của tôi chỉ cho tôi một ổ đĩa được ánh xạ trong môi trường miền windows công việc của tôi. Tôi không muốn .gitconfig toàn cầu của tôi ngồi trên ổ đĩa được ánh xạ "nhà" của tôi. Tôi cũng không biết điều gì có thể xảy ra với các ứng dụng khác có thể dựa vào biến môi trường windows đó. Bộ phận vận hành có thể cần biến môi trường đó được đặt thành ổ đĩa được ánh xạ vì một lý do.

Ngoài ra, bạn không phải lo lắng về việc Mysysgit ghi đè cài đặt cấu hình 'hồ sơ' của bạn nếu bạn chỉ định một đường dẫn cụ thể đến toàn cầu '.gitconfig', bằng phương pháp này.

Nói chung, hãy tự cứu mình và sử dụng cygwin bash shell trong windows và hạnh phúc hơn


1

Tôi đã có một vấn đề tương tự; vấn đề là .gitconfigtập tin được đặt ở

C:\Users\MyLogin\.gitconfig\

(trên Windows 7)

Nói cách khác, tệp được đặt ở đó C:\Users\MyLogin\.gitconfig\.gitconfig, thay vì bật C:\Users\MyLogin\.gitconfig(đó là nơi Git đang tìm kiếm các tệp).


1

.gitconfig vị trí tập tin

kiểm tra macOS OK

toàn cầu

# global config
$ cd ~/.gitconfig

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

địa phương

# local config
$ cd .git/config

# view local config
$ git config -l

có thể là phần thưởng cho bạn Vim, hoặc VSCodechỉnh sửa 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


0

Tôi đã cài đặt Git của mình vào: C:\Users\_myuserfolder_\AppData\Local\Programs\Git

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.