ฉันจะแสดงการกำหนดค่า Git ทั่วโลกของฉันได้อย่างไร


1076

ฉันต้องการแสดงส่วน Git ที่กำหนดค่าทั้งหมด

ฉันเพิ่งพบgit config --get core.editorและฉันต้องการที่จะส่งออกทุกอย่างที่กำหนดค่าทั่วโลกไม่เพียง แต่แก้ไขเริ่มต้นที่กำหนดไว้


3
เกิดอะไรขึ้นกับการดู. gitconfig
โกง

1
โปรดทราบว่าคุณจะเร็ว ๆ นี้ (Q3 / Q4 2015) มีตัวเลือก git 2.6 --name-onlyเพื่อแสดงรายการคีย์การตั้งค่าเท่านั้นโดยไม่มีค่า ดูคำตอบของฉันด้านล่าง
VonC


5
มันควรจะgit config --global --listอธิบายอย่างลึกซึ้งยิ่งขึ้นที่นี่
prosti

คำตอบ:


1721

คุณสามารถใช้ได้:

git config --list

หรือดูที่~/.gitconfigไฟล์ของคุณ การกำหนดค่าท้องถิ่นจะอยู่ใน.git/configไฟล์ของที่เก็บของคุณ

ใช้:

git config --list --show-origin

เพื่อดูว่าการตั้งค่านั้นถูกกำหนดไว้ที่ใด (global, user, repo, ฯลฯ ... )


24
ขอบคุณฉันสนับสนุนคุณทั้งคู่ ผมอยากที่จะรู้ว่าgit config --listคำสั่งเพราะผมสามารถดูการตั้งค่าที่มีประสิทธิภาพในพื้นที่เก็บข้อมูลและฉันสามารถแตกต่างกันในท้องถิ่นทั่วโลกและระบบการกำหนดค่าพารามิเตอร์ที่เหมาะสม ( --global, --local, --system) ฉันจะยอมรับคำตอบของคุณทันทีที่ฉันสามารถเพราะคุณไม่กี่วินาทีเร็ว :)
wullxz

2
โปรดระวังมีแหล่งข้อมูลที่เป็นไปได้จำนวนมากสำหรับการกำหนดค่า git การดูไฟล์ให้เพียงบางส่วน คำตอบของ @ linquize นั้นถูกต้องจริง
vonbrand

2
@vonbrand: - รายการเทียบเท่ากับ -l
Cameron Skinner

9
การจดชวเลข (เหมือน-l) มีประโยชน์เมื่อคุณเป็นผู้ใช้ระดับสูงและใช้คุณสมบัตินี้บ่อยครั้งพอที่จะได้กำไรจากการพิมพ์ตัวอักษรน้อยลง ฉันค้นหาและจดจำ--listตัวเลือกที่ยาวกว่าได้ง่ายกว่า สำหรับชวเลขที่เห็นได้ชัดน้อยฉันมักจะต้องตรวจสอบสิ่งที่พวกเขายืนอยู่ดังนั้นฉันชอบชื่อยาว มันง่ายยิ่งขึ้นเมื่อใช้คำสั่งเสร็จเมื่อคุณไม่ต้องพิมพ์อักขระทั้งหมด แต่ยังเห็นชื่อตัวเลือกทั้งหมด
Krzysztof Jabłoński

1
เกิดอะไรขึ้นถ้าgit config --listพิมพ์อะไร?
Matej J

247

ที่สั้นที่สุด

git config -l

แสดงค่าที่สืบทอดทั้งหมดจาก: ระบบ, โกลบอลและโลคัล


13
สิ่งนี้แตกต่างจากgit config - รายการหรือว่าเป็นวิธีที่สั้นกว่าในการเขียนหรือไม่
Magnilex

8
@Magnilex มันเป็นวิธีที่สั้นกว่าที่จะเขียนมัน
LemenDrop

3
ไฟล์กำหนดค่าอาจไม่แสดงการกำหนดค่าที่สืบทอดมาทั้งหมดแต่git config -lจะแสดงทุกอย่าง บันทึกฉันไว้เพราะชุดคอมไพล์สำหรับ windows autocrlfในการติดตั้งและไม่ได้อยู่ในไฟล์ปรับแต่งใด ๆ ที่ฉันสามารถหาได้
genorama

ใช่นอกจากนี้ยังมีไฟล์ C: \ ProgramData \ Git \ config - ฉันเดาว่านี่เป็นไฟล์โกลบอลหรือไฟล์กำหนดค่าระบบ git
Alex

129

ฉันจะแก้ไขการกำหนดค่า Git ทั่วโลกของฉันได้อย่างไร

คำตอบสั้น ๆ : git config --edit --global


เพื่อทำความเข้าใจกับการกำหนดค่า Git คุณควรรู้ว่า:

ตัวแปรการกำหนดค่า Git สามารถจัดเก็บได้ในสามระดับที่แตกต่างกัน แต่ละระดับจะแทนที่ค่าในระดับก่อนหน้า

1. ระดับระบบ (ใช้กับผู้ใช้ทุกคนในระบบและที่เก็บทั้งหมดของพวกเขา)

  • เพื่อดูgit config --list --system(อาจจำเป็นsudo)
  • เพื่อตั้ง git config --system color.ui true
  • เพื่อแก้ไขไฟล์กำหนดค่าระบบ git config --edit --system

2. ระดับโลก (ค่าเฉพาะสำหรับคุณผู้ใช้)

  • ดู, git config --list --global
  • เพื่อตั้ง git config --global user.name xyz
  • เพื่อแก้ไขไฟล์กำหนดค่าทั่วโลก git config --edit --global

3. ระดับพื้นที่เก็บข้อมูล (เฉพาะที่เก็บข้อมูลเดียว)

  • ดู, git config --list --local
  • เพื่อตั้งค่าgit config --local core.ignorecase true( --localไม่จำเป็น)
  • เพื่อแก้ไขไฟล์กำหนดค่าที่เก็บgit config --edit --local( --localไม่จำเป็น)

ฉันจะดูการตั้งค่าทั้งหมดได้อย่างไร

  • Run git config --listแสดงระบบ , ทั่วโลก , และ (ถ้าภายในพื้นที่เก็บข้อมูล) ท้องถิ่น configs
  • เรียกใช้git config --list --show-originนอกจากนี้ยังแสดงไฟล์กำเนิดของแต่ละรายการกำหนดค่า

ฉันจะอ่านหนึ่งการกำหนดค่าเฉพาะได้อย่างไร

  • เรียกใช้git config user.nameเพื่อรับuser.nameเช่น
  • นอกจากนี้คุณยังอาจระบุตัวเลือก--system, --global, --localการอ่านค่าที่อยู่ในระดับโดยเฉพาะอย่างยิ่ง

ข้อมูลอ้างอิง: 1.6 เริ่มต้นใช้งาน - การตั้งค่า Git ครั้งแรก


1
git config --listแสดงทั้งหมดทั่วโลกระบบและท้องถิ่น? ฉันต้องการการยืนยัน :)
Adi Prasetyo

2
เพียงเพื่อเพิ่มตำแหน่งของไฟล์ปรับแต่ง: ระบบ: C: \ ProgramData \ Git \ config (ใน windows) โกลบอล: C: \ Users \ user \ .gitconfig (Windows) ~ / .gitconfig (Linux) ในพื้นที่: project-repo / .git / config
อเล็กซ์

@AdiPrasetyo ใช่ คุณสามารถเรียกใช้git config --list --show-originเพื่อค้นหาที่มาของรายการกำหนดค่าแต่ละรายการ
kgf3JfUtW

109
git config --list

เป็นวิธีหนึ่งที่จะไป ฉันมักจะเปิด.gitconfigแม้ว่า


2
คุณไม่ได้ตั้งใจ~/.gitconfigหรือหนึ่งไฟล์อื่น ๆ ที่กล่าวถึงในส่วนของไฟล์git help config?
chwarr

1
@chwarr - ขอโทษฉันไม่ได้ขีดล่าง ฉัน "ตั้งใจ" หรือไม่?
โกง

1
ฉันคิดว่าคุณหมายถึงการพูดว่า "ฉันมักจะเปิดขึ้น~/.gitconfig" เพราะ git ไม่ได้ค้นหา.gitconfigในไดเรกทอรีปัจจุบันไม่ว่าคุณจะอยู่ที่ไหน ( .gitconfigและ~/.gitconfigชื่อไฟล์ที่แตกต่าง [ ปกติ ].) ไฟล์อื่น ๆ ที่กล่าวถึงgit help configมีชื่อไฟล์ที่แตกต่างดังนั้นสมมติฐาน
chwarr

32

คุณสามารถโทรgit config -eเพื่อเปิดไฟล์การกำหนดค่าในโปรแกรมแก้ไขของคุณโดยตรง ไฟล์การกำหนดค่า Git นั้นอ่านได้ง่ายกว่ามาก-lดังนั้นเอาต์พุตดังนั้นฉันมักจะใช้-eแฟล็ก

ดังนั้นเพื่อสรุป:

git config -l  # List Git configuration settings (same as --list)
git config -e  # Opens Git configuration in the default editor (same as --edit)
  • .git/configโดยไม่มีพารามิเตอร์มันโต้ตอบกับท้องถิ่น
  • ด้วย--globalการโต้ตอบกับ~/.gitconfigมัน
  • และมีปฏิสัมพันธ์กับ--system$(prefix)/etc/gitconfig

(ฉันไม่พบความ$(prefix)หมายจริงๆแต่ดูเหมือนว่าจะเป็นค่าเริ่มต้น$HOME)



11

Git 2.6 (ก.ย. / ต.ค. 2558) จะเพิ่มตัวเลือก--name-onlyเพื่อทำให้การส่งออกของ a git config -l:

ดูกระทำ a92330d , กระทำ f225987 , กระทำ 9f1429d (20 สิงหาคม 2015) โดยเจฟฟ์คิง (peff )
ดูกระทำ ebca2d4 (20 สิงหาคม 2015) และกระทำ 905f203 , กระทำ 578625f (10 สิงหาคม 2015) โดยSzeder Gábor (szeder )
(ผสานโดยJunio ​​C Hamano - gitster- in fc9dfda , 31 ส.ค. 2558)

config: เพิ่ม--name-onlyตัวเลือก '' เพื่อแสดงรายการชื่อตัวแปรเท่านั้น

' git config' สามารถแสดงค่าหรือคู่ค่าชื่อเท่านั้นดังนั้นหากเชลล์สคริปต์ต้องการชื่อของตัวแปรชุดการตั้งค่าจะต้องเรียกใช้ ' git config --list' หรือ ' --get-regexp' และแยกวิเคราะห์เอาต์พุตเพื่อแยกชื่อตัวแปร config จากค่าของพวกเขา
อย่างไรก็ตามการแยกวิเคราะห์ไม่สามารถรับมือกับค่าหลายบรรทัดได้

แม้ว่า ' git config' สามารถสร้างเอาต์พุตที่สิ้นสุดด้วยค่า null สำหรับการวิเคราะห์คำที่ปลอดภัยขึ้นบรรทัดใหม่ แต่ก็ไม่มีประโยชน์ในกรณีเช่นนี้เนื่องจากเชลล์ไม่สามารถรับมือกับอักขระว่างได้

แม้กระทั่งสคริปต์การทุบตีของเราเองก็ประสบปัญหาเหล่านี้

ช่วยให้สคริปต์เสร็จสมบูรณ์และเชลล์สคริปต์โดยทั่วไปโดยแนะนำ--name-onlyตัวเลือก '' เพื่อแก้ไขเอาต์พุตของ ' --list' และ ' --get-regexp' เพื่อแสดงรายการชื่อตัวแปรปรับแต่งเท่านั้นดังนั้นพวกเขาจึงไม่จำเป็นต้องดำเนินการโพสต์ที่ผิดพลาด แยกชื่อตัวแปรออกจากค่าอีกต่อไป


10

สิ่งหนึ่งที่สำคัญเกี่ยวกับgit config:

git configมี--local, --globalและ--systemระดับและไฟล์ที่สอดคล้องกัน

ดังนั้นคุณอาจจะใช้git config --local, และgit config --globalgit config --system

โดยค่าเริ่มต้นgit configจะเขียนไปยังระดับท้องถิ่นหากไม่มีตัวเลือกการกำหนดค่าผ่าน ค่าคอนฟิกูเรชันโลคัลถูกเก็บไว้ในไฟล์ที่สามารถพบได้ในไดเร็กทอรี. git ของที่เก็บ:.git/config

การกำหนดค่าระดับโกลบอลเป็นแบบเฉพาะผู้ใช้ซึ่งหมายถึงมันถูกใช้กับผู้ใช้ระบบปฏิบัติการ ค่าการกำหนดค่าส่วนกลางถูกเก็บไว้ในไฟล์ที่อยู่ในโฮมไดเร็กตอรี่ของผู้ใช้ ~/.gitconfigบนระบบ Unix และC:\Users\<username>\.gitconfigบน Windows

การกำหนดค่าระดับระบบถูกนำไปใช้กับเครื่องทั้งหมด สิ่งนี้ครอบคลุมผู้ใช้ทั้งหมดบนระบบปฏิบัติการและที่เก็บทั้งหมด ไฟล์คอนฟิกูเรชันระดับระบบอยู่ในgitconfigไฟล์ที่อยู่นอกพา ธ ของรูทของระบบ $ (คำนำหน้า) / etc / gitconfig บนระบบ Linux บน Windows C:\ProgramData\Git\configไฟล์นี้สามารถพบได้ใน

ดังนั้นตัวเลือกของคุณคือค้นหา.gitconfigไฟล์ทั่วโลกและแก้ไข

git config --global --listหรือคุณสามารถใช้

ตรงนี้เป็นสิ่งที่คุณต้องการ

ป้อนคำอธิบายภาพที่นี่


7

หากคุณต้องการแสดงรายการส่วนหนึ่งของการกำหนดค่า Git เช่นนามแฝง , คอร์ , รีโมตและอื่น ๆ คุณสามารถไปป์ผลลัพธ์ผ่าน grep สิ่งที่ต้องการ:

git config --global -l | grep core

4

บนระบบที่ใช้ Linux คุณสามารถดู / แก้ไขไฟล์การตั้งค่าได้

vi/vim/nano .git/config

ตรวจสอบให้แน่ใจว่าคุณอยู่ในโฟลเดอร์ Git init

หากคุณต้องการทำงานกับ--global configมัน

vi/vim/nano .gitconfig

บน / home / ชื่อผู้ใช้

สิ่งนี้จะช่วยในการแก้ไข: https://help.github.com/categories/setup/


3

หากต้องการค้นหาการกำหนดค่าทั้งหมดคุณเพียงแค่เขียนคำสั่งนี้:

git config --list

ในท้องถิ่นของฉันฉันใช้คำสั่งนี้

Md Masud@DESKTOP-3HTSDV8 MINGW64 ~
$ git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
user.email=infomasud@gmail.com
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f

คำสั่ง git config เป็นฟังก์ชั่นอำนวยความสะดวกที่ใช้ในการตั้งค่าการกำหนดค่า Git ในระดับโครงการระดับโลกหรือระดับท้องถิ่น ระดับการกำหนดค่าเหล่านี้สอดคล้องกับไฟล์ข้อความ. gitconfig อ่านเพิ่มเติมที่นี่: atlassian.com/git/tutorials/setting-up-a-repository/git-config
infomasud

เยี่ยมมากคุณสามารถเพิ่มคำตอบของคุณได้ไหม?
RamenChef

1

ตั้งแต่ Git 2.26.0คุณสามารถใช้--show-scopeตัวเลือก:

git config --list --show-scope

ตัวอย่างผลลัพธ์:

system  rebase.autosquash=true
system  credential.helper=helper-selector
global  core.editor='code.cmd' --wait -n
global  merge.tool=kdiff3
local   core.symlinks=false
local   core.ignorecase=true

มันสามารถรวมกับ

  • --localสำหรับการกำหนดค่าโครงการ --globalสำหรับการกำหนดค่าผู้ใช้สำหรับการกำหนดค่าของผู้ใช้ --systemทั้งหมด
  • --show-origin เพื่อแสดงตำแหน่งไฟล์ config ที่แน่นอน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.