รายการนามแฝง Git


444

ฉันจะพิมพ์รายการนามแฝง git ของฉันได้อย่างไรเช่นมีบางสิ่งที่คล้ายคลึงกับaliasคำสั่งbash


2
ดูเพิ่มเติม: git-alias, จาก git-extras
driftcatcher

7
@MattDiPasquale - ฉันคิดว่าคำตอบยอดนิยมด้านล่างใช้งานได้คุณอาจจะยอมรับมันได้หรือไม่
domoarigato

@domoarigato ขอบคุณ ฉันขอโทษที่ไม่ยอมรับคำตอบ ฉันเพิ่งทำเช่นนั้น
ma11hew28

มันอาจจะเป็นผู้สมัครสำหรับคำถามที่มีประโยชน์ซึ่งหายไปโดยไม่ได้รับคำตอบที่ยาวที่สุด :): P
domoarigato

@domoarigato ฮะ ดีขอบคุณ :-)
ma11hew28

คำตอบ:


124

คำตอบนี้สร้างเมื่อคำตอบโดยจอห์นนี่ ซึ่งจะใช้ถ้าคุณไม่ได้ใช้จากgit-aliasgit-extras

บน Linux รันครั้งเดียว:

git config --global alias.alias "! git config --get-regexp ^alias\. | sed -e s/^alias\.// -e s/\ /\ =\ /"

การดำเนินการนี้จะสร้างนามแฝงคอมไพล์ถาวรaliasซึ่งจะถูกเก็บไว้ใน~/.gitconfigไฟล์ของคุณ การใช้มันจะแสดงรายชื่อนามแฝง git ทั้งหมดของคุณในเกือบจะเป็นรูปแบบเดียวกับที่อยู่ใน~/.gitconfigไฟล์ หากต้องการใช้งานให้พิมพ์:

$ git alias
loga = log --graph --decorate --name-status --all
alias = ! git config --get-regexp ^alias\. | sed -e s/^alias\.// -e s/\ /\ =\ /

ข้อควรพิจารณาต่อไปนี้ใช้:

  • หากต้องการป้องกันนามแฝงaliasจากการแสดงรายการข้างต้นให้ผนวก| grep -v ^'alias 'ก่อนปิดการอ้างสองครั้ง ฉันไม่แนะนำสิ่งนี้ดังนั้นผู้ใช้อย่าลืมว่าคำสั่งaliasนั้นเป็นเพียงนามแฝงและไม่ใช่คุณสมบัติของ git

  • หากต้องการจัดเรียงนามแฝงที่ระบุไว้ให้ต่อท้าย| sortเครื่องหมายอัญประกาศคู่ปิด หรือคุณสามารถ~/.gitconfigจัดเรียงนามแฝงในการเรียงลำดับ

  • หากต้องการเพิ่มนามแฝงเป็นนามแฝงทั้งระบบให้แทนที่--global(สำหรับผู้ใช้ปัจจุบัน) ด้วย--system(สำหรับผู้ใช้ทั้งหมด) โดยทั่วไปสิ่งนี้จะอยู่ใน/etc/gitconfigไฟล์


3
ฉันชอบอันนี้เพราะมันกำจัดalias.จุดเริ่มต้นของแต่ละบรรทัด
Brian J

3
ไม่แน่ใจว่าทำไม แต่คำตอบนี้ไม่ได้ผลสำหรับฉัน fatal: bad configฉันให้ได้รับ วิธีแก้ปัญหาของ Git-Extra ใช้งานได้สำหรับฉัน: github.com/tj/git-extras/blob/master/bin/git-alias
Ashitaka

1
@Ashitaka ลองรุ่นที่ จำกัด git config --global alias.alias "! git config --get-regexp ^alias\."เช่น ตรวจสอบให้แน่ใจgit versionว่าคุณใช้คอมไพล์เวอร์ชันปัจจุบัน
Acumenus

นี่เป็นงานที่ยอดเยี่ยมมากและนำมารวมกันในลักษณะที่ใช้งานได้อย่างยอดเยี่ยม!
ขึ้น

ฉันเชื่อว่าคุณสามารถกำจัดส่วน "! git" ซึ่งโดยพื้นฐานแล้วจะเลิกกัน ดูส่วนปิดของนามแฝง Git
Daniel Stevens

489
$ git config - get-regexp alias

39
เพื่อจะอวดความรู้นั่นควรจะเป็น'^alias\.'
Josh Lee

27
หรือเพียงแค่git config -eใช้ดวงตาของคุณเพื่อค้นหา[alias]ส่วน แต่แฟน ๆ คอมไพล์เสมอดูเหมือนจะโยนในบิตของสคริปต์ทุบตีหรือการจับคู่นิพจน์ปกติในการแก้ปัญหาของพวกเขาแม้ในขณะที่มันไม่จำเป็น :)
MatrixFrog

39
git config -eแก้ไข.git/configไฟล์เท่านั้น ~/.gitconfigแต่ที่สำคัญที่สุดของนามแฝงของฉันถูกกำหนดในทั่วโลก
Boldewyn

21
เพื่อการปฏิบัติที่ควรจะเป็นgit config --global alias.aliases config --get-regexp '^alias\.'"... แล้วgit aliases
Derek Greer

6
@DerekGreer คุณหายไปไหนซัก"แห่ง
Jake Berger

147

ฉันสร้างนามแฝงคอมไพล์ที่เรียกว่า (แปลกพอ) aliasสำหรับวัตถุประสงค์นี้ ... มีประโยชน์ทุกครั้งถ้าคุณใช้นามแฝงมากพอ ...

$ git config --global alias.alias "config --get-regexp ^alias\."

หมายเหตุ regex alias.ทำให้แน่ใจว่าเส้นเริ่มต้นด้วย


ฉันได้เพิ่มคำตอบที่สร้างขึ้นเล็กน้อยเมื่อคำตอบนี้
คิวเมนตัส

1
ฉันแนะนำ--systemแทนที่จะ--globalเป็นสิ่งที่เป็นเช่นนี้มีประโยชน์มากกว่าในระดับระบบไม่ใช่ระดับผู้ใช้
ADTC

1
รักสิ่งนี้. You da You da best
Charles Watson

2
และถ้าคุณต้องการที่จะเพิ่มโดยตรงกับ gitconfig alias = config --get-regexp ^alias\\.ของคุณจะต้องมีลักษณะเช่นนี้
marczych

แล้วgit config --global alias.alias "!git config --get-regexp ^alias\. | grep -Po '(?<=alias\.)\S*' | sort"
Keith Robertson

84

ทางเลือกอื่น (บางสิ่งบางอย่างที่ฉันจำได้ง่าย):

git config --list | grep alias


8
เมื่อพูดถึงเรื่องที่จำง่ายคุณอาจสร้างaliasนามแฝงได้ครั้งเดียวแล้วลืมไปว่าคุณสร้างมันขึ้นมา
คิวเมนตัส

3
คุณสามารถใช้-lเป็นทางลัดที่สะดวกสบายได้--listแต่ฉันชอบความคิดในการสร้างชื่อแทนเพื่อแสดงชื่อแทน
ADTC

1
วิธีแก้ปัญหาที่ดี แต่ควรใช้ grep กับ regex เพื่อให้ได้บรรทัดที่ขึ้นต้นด้วย alias ในกรณีที่การกำหนดค่าบางอย่างมี alias คำสำคัญ:git config --list | grep -E '^alias'
MasterMind

28

การทำงานต่อไปนี้ภายใต้ Linux, MacOSX และ Windows (พร้อม msysgit)

ใช้git laเพื่อแสดงชื่อแทนใน. gitconfig

ฉันเคยได้ยิน 'bash scripting' หรือไม่? ;)

เกี่ยวกับส่วน 'ไม่จำเป็น' ในความคิดเห็นข้างต้นโดยทั่วไปฉันสร้างหน้าคนอย่างภาพรวมสำหรับนามแฝงของฉัน ทำไมความวุ่นวายทั้งหมด? นั่นไม่ใช่การเติมเต็มจนเกินไปใช่ไหม

อ่านต่อ...

ฉันได้ตั้งคำสั่งเช่นนี้ใน. gitconfig ของฉันแยกจากกันเช่นTAB=TAB:

[alias]
        alias1            =            foo -x -y --z-option
        alias2            =            bar -y --z-option --set-something

และเพียงกำหนดนามแฝงอื่นเพื่อ grep TAB=ส่วนหนึ่งของนามแฝงที่กำหนดไว้ (ตัวเลือกอื่น ๆ ทั้งหมดไม่มีแท็บก่อนและหลัง '=' ในคำจำกัดความของพวกเขาเพียงแค่เว้นวรรค)

ความคิดเห็นที่ไม่ได้ต่อท้ายนามแฝงยังมีการTAB=====ต่อท้ายด้วยดังนั้นจึงมีการแสดงความคิดเห็นหลังจาก grepping

เพื่อการรับชมที่ดีขึ้นฉันกำลังส่งออก grep pip ให้น้อยลงเช่นนี้

เวอร์ชั่นพื้นฐาน: (ดำ / ขาว)

  #.gitconfig
  [alias]
        # use 'git h <command>' for help, use 'git la' to list aliases  =====
        h     =     help #... <git-command-in-question>
        la    =     "!grep '\t=' ~/.gitconfig | less" 

ว่า ' \t=' TAB=การแข่งขันส่วนหนึ่ง

เพื่อให้ได้ภาพรวมที่ดียิ่งขึ้นเกี่ยวกับนามแฝงที่ฉันมีและเนื่องจากฉันใช้คอนโซล bash ฉันจึงทาสีเอาท์พุตด้วยสีเทอร์มินัล:

  • ทั้งหมด '=' พิมพ์ด้วยสีแดง
  • พิมพ์ '#' ทั้งหมดเป็นสีเขียว

เวอร์ชั่นขั้นสูง: (สี)

       la      =       "!grep '\t=' ~/.gitconfig | sed -e 's/=/^[[0;31m=^[[0m/g' | sed -e 's/#.*/^[[0;32m&^[[0m/g' | less -R"

โดยทั่วไปเช่นเดียวกับข้างต้นเพียงsedการใช้งานจะมีการเพิ่มที่จะได้รับรหัสสีลงในการส่งออก

-Rธงน้อยเป็นสิ่งจำเป็นที่จะได้รับสีที่แสดงในเวลาน้อย

(เมื่อเร็ว ๆ นี้ฉันพบว่าคำสั่งแบบยาวที่มีแถบเลื่อนใต้หน้าต่างไม่แสดงอย่างถูกต้องบนอุปกรณ์พกพา: ข้อความถูกตัดออกและแถบเลื่อนหายไปง่ายๆนั่นอาจเป็นกรณีที่มีข้อมูลโค้ดสุดท้ายที่นี่เก็บไว้ใน ระวังเมื่อดูที่โค้ดขนาดสั้นในขณะเดินทาง)


ทำไมต้องใช้เวทย์มนตร์เช่นนั้น?

ฉันมีนามแฝงครึ่งไมล์ซึ่งปรับให้เหมาะกับความต้องการของฉัน
นอกจากนี้บางส่วนของพวกเขาเปลี่ยนแปลงตลอดเวลาดังนั้นหลังจากความคิดที่ดีที่สุดที่จะมีรายการที่ทันสมัยอยู่ในมือกำลังแยกวิเคราะห์. gitconfig

ข้อความสั้น ๆ **** ตัดตอนมาจากนามแฝง. gitconfig ของฉัน:

    #  choose       =====
    a       =       add #...
    aa      =       add .
    ai      =       add -i
    #  unchoose     =====
    rm      =       rm -r #... unversion and delete
    rmc     =       rm -r --cached #... unversion, but leave in working copy
    #  do   =====
    c       =       commit -m #...
    fc      =       commit -am "fastcommit"
    ca      =       commit -am #...
    mc      =       commit # think 'message-commit'
    mca     =       commit -a
    cam     =       commit --amend -C HEAD # update last commit
    #  undo =====
    r       =       reset --hard HEAD
    rv      =       revert HEAD

ในเวิร์กสเตชัน linux หรือ mac ของฉันนอกจากนี้ยังมีชื่อแทนเพิ่มเติมอยู่ใน. bashrc ของเรียงลำดับเช่น:

#.bashrc
alias g="git"
alias gh="git h"
alias gla="git la"
function gc { git c "$*" } # this is handy, just type 'gc this is my commitmessage' at prompt

ด้วยวิธีนี้ไม่จำเป็นต้องพิมพ์git help submoduleไม่จำเป็นต้องgit h submoduleมีเพียงgh submoduleทั้งหมดที่จำเป็นในการรับความช่วยเหลือ มันเป็นแค่ตัวละคร แต่คุณพิมพ์บ่อยแค่ไหน?

ฉันใช้สิ่งต่อไปนี้ทั้งหมดแน่นอนด้วยทางลัด ...

  • เพิ่ม
  • ผูกมัด
  • กระทำ - แก้ไข
  • รีเซ็ต - ฮาร์ด HEAD
  • ดัน
  • นำมา
  • rebase
  • เช็คเอาท์
  • สาขา
  • show-branch (มีหลายรูปแบบ)
  • shortlog
  • reflog
  • diff (เป็นรูปแบบ)
  • บันทึก (ในรูปแบบที่หลากหลาย)
  • สถานะ
  • แสดง
  • บันทึก
  • ...

นี่เป็นเพียงส่วนบนของหัวของฉัน

ฉันมักจะต้องใช้ git โดยไม่ต้อง gui เนื่องจากคำสั่ง git จำนวนมากไม่ได้ถูกนำไปใช้อย่างเหมาะสมในส่วนหน้าแบบกราฟิกใด ๆ แต่ทุกครั้งที่ฉันให้พวกเขาใช้มันส่วนใหญ่จะเป็นในลักษณะเดียวกัน

ในส่วน 'ไม่ได้ใช้งาน' ที่กล่าวถึงในย่อหน้าสุดท้าย:
ฉันยังไม่พบสิ่งที่เปรียบเทียบกับสิ่งนี้ใน GUI:
sba = show-branch --color=always -a --more=10 --no-name- แสดงสาขาในพื้นที่และระยะไกลทั้งหมดรวมถึงการกระทำที่มีอยู่ในพวกเขา
ccm = "!git reset --soft HEAD~ && git commit"- เปลี่ยนข้อความยืนยันล่าสุด

จากมุมมองที่เป็นเรื่องง่ายมากขึ้น
บ่อยแค่ไหนที่คุณพิมพ์git add .หรือgit commit -am "..."? ไม่นับแม้แต่ส่วนที่เหลือ ... นำ
สิ่งต่าง ๆ ให้ทำงานเหมือนgit aaหรือgit ca "..."ใน windows
หรือใช้นามแฝงทุบตีgaa/ g aaหรือgca "..."/ g ca "..."ใน linux และใน mac ...

สำหรับความต้องการของฉันมันเป็นเรื่องที่ฉลาดที่ต้องทำเพื่อปรับแต่งคำสั่ง git เช่นนี้ ...
... และสำหรับการใช้งานที่ง่ายขึ้นฉันเพิ่งช่วยตัวเองสำหรับคำสั่งที่ใช้น้อยกว่าดังนั้นฉันไม่จำเป็นต้องปรึกษา man man ทุกครั้ง คำสั่งถูกกำหนดไว้ล่วงหน้าและการค้นหานั้นง่ายที่สุดเท่าที่จะทำได้

ฉันหมายความว่าเราเป็นโปรแกรมเมอร์หลังจากทั้งหมดหรือไม่ การได้รับสิ่งต่าง ๆ เพื่อทำงานเหมือนที่เราต้องการคืองานของเรา

นี่คือภาพหน้าจอเพิ่มเติมซึ่งสามารถใช้งานได้ใน Windows:

สคริปต์ทำงานกับ cmd.exe

โบนัส: ถ้าคุณอยู่บน linux หรือ mac, หน้าคนที่มีสีสามารถช่วยคุณได้เล็กน้อย:

colorized man pages


1
ฉันไม่สามารถทำงานกับ Windows ได้ ผลลัพธ์จะว่างเปล่าสำหรับเช่นla = "!grep '\t=' ~/.gitconfig | less"
chwi

1
@ Wilhelmsen: คุณอาจจะคัดลอกและวางสิ่งของจากรายชื่อข้างต้นหรือไม่? คุณมีมาTABก่อนทุกคนจริง ๆ=หรือไม่? ด้วยช่องว่างมันจะไม่ทำงาน ฉันมีช่องว่างในหน้าต่างของฉันด้วย.gitconfigตัวเองเมื่อฉันแทนที่ด้วย tabstop เดียว cmd.exe จะทำงานเหมือนที่คาดไว้
sjas

2
overengineering
Weapon X

ขึ้นอยู่กับความถี่ที่คุณใช้บางสิ่งบางอย่าง
sjas


14

ตามคำตอบอื่น ๆ ที่กล่าวถึงgit config -lรายการรายละเอียดการกำหนดค่าทั้งหมดของคุณจากไฟล์กำหนดค่าของคุณ นี่คือตัวอย่างบางส่วนของผลลัพธ์นั้นสำหรับการกำหนดค่าของฉัน:

...
alias.force=push -f
alias.wd=diff --color-words
alias.shove=push -f
alias.gitignore=!git ls-files -i --exclude-from=.gitignore | xargs git rm --cached
alias.branches=!git remote show origin | grep \w*\s*(new^|tracked) -E
core.repositoryformatversion=0
core.filemode=false
core.bare=false
...

ดังนั้นเราจึงสามารถพิมพ์บรรทัดนามแฝงโดยใช้git config -l | grep alias:

alias.force=push -f
alias.wd=diff --color-words
alias.shove=push -f
alias.gitignore=!git ls-files -i --exclude-from=.gitignore | xargs git rm --cached
alias.branches=!git remote show origin | grep \w*\s*(new^|tracked) -E

เราสามารถทำให้สวยกว่านี้โดยเพียงแค่cutตัดalias.ส่วนของแต่ละบรรทัดทิ้งไว้ให้เราด้วยคำสั่งนี้:

git config -l | grep alias | cut -c 7-

สิ่งที่พิมพ์:

force=push -f
wd=diff --color-words
shove=push -f
gitignore=!git ls-files -i --exclude-from=.gitignore | xargs git rm --cached
branches=!git remote show origin | grep \w*\s*(new^|tracked) -E

สุดท้ายอย่าลืมเพิ่มชื่อแทน:

git config --global alias.la "!git config -l | grep alias | cut -c 7-"

สนุก!



12

ผมกล่าวถึงในมิถุนายน 2018 ด้วย " รายการภาพรวม - คอมไพล์คำสั่งที่ใช้มากที่สุด " "การใช้ Git 2.18 --list-cmds=alias( กระทำ 3301d36 )" ที่carejรายงานในคำตอบของเขา

 git --list-cmds=alias

นอกเหนือจากนั้นหรือของgit config --get-regexp aliasคุณสามารถรวมเอาท์พุทของมันด้วยgit helpซึ่งเอาท์พุทจะเปลี่ยนแปลงด้วย Git 2.14.x / 2.15

" git help co" ตอนนี้พูดว่า " co is aliased to ..." ไม่ใช่ " git co is"

ดูกระทำ b3a8076 (12 กันยายน 2017) โดยKaartic Sivaraam (sivaraam )
(รวมโดยJunio C Hamano - gitster-ในการกระทำ 5079cc8 , 25 กันยายน 2017)

help: เปลี่ยนข้อความให้แม่นยำยิ่งขึ้น

เมื่อผู้ใช้พยายามที่จะใช้--helpตัวเลือก '' ในข้อมูลคำสั่ง aliased เกี่ยวกับนามแฝงจะถูกพิมพ์ตามที่แสดงด้านล่าง

$ git co --help
`git co' is aliased to `checkout'

ดูเหมือนจะไม่ถูกต้องเนื่องจากผู้ใช้มีนามแฝงเฉพาะ ' co' และไม่ใช่ ' git co'
สิ่งนี้อาจไม่ถูกต้องในกรณีที่ผู้ใช้ใช้นามแฝงเช่น ' tgit'

$ tgit co --help
`git co' is aliased to `checkout'

9

ค้นหาหรือแสดงชื่อแทนทั้งหมด

เพิ่ม.gitconfigภายใต้ของคุณ[alias]:

aliases = !git config --list | grep ^alias\\. | cut -c 7- | grep -Ei --color \"$1\" "#"

จากนั้นคุณสามารถทำได้

  • git aliases - แสดงชื่อแทนทั้งหมด
  • git aliases commit - นามแฝงเท่านั้นที่มี "กระทำ"

9

ฉันใช้นามแฝงนี้ในโลกของฉัน~/.gitconfig

# ~/.gitconfig

[alias]
    aliases = !git config --get-regexp ^alias\\. | sed -e s/^alias.// -e s/\\ /\\ $(printf \"\\043\")--\\>\\ / | column -t -s $(printf \"\\043\") | sort -k 1

เพื่อสร้างผลลัพธ์ต่อไปนี้

$ git aliases
aliases   --> !git config --get-regexp ^alias\. | sed -e s/^alias.// -e s/\ /\ $(printf "\043")--\>\ / | column -t -s $(printf "\043") | sort -k 1
ci        --> commit -v
cim       --> commit -m
co        --> checkout
logg      --> log --graph --decorate --oneline
pl        --> pull
st        --> status
...       --> ...

( หมายเหตุ: วิธีนี้ใช้ได้กับฉันในgit bash บน Windowsสำหรับเทอร์มินัลอื่นคุณอาจต้องปรับการหลบหนี )


คำอธิบาย

  1. !git config --get-regexp ^alias\\. พิมพ์ทุกบรรทัดจากการตั้งค่า git ที่ขึ้นต้นด้วย alias.
  2. sed -e s/^alias.//ลบออกalias.จากบรรทัด
  3. sed -e s/\\ /\\ $(printf \"\\043\")--\\>\\ /แทนที่การเกิดขึ้นครั้งแรกของช่องว่างด้วย\\ $(printf \"\\043\")--\\>(ซึ่งประเมินเป็น#-->)
  4. column -t -s $(printf \"\\043\")จัดรูปแบบบรรทัดทั้งหมดเป็นตารางคอลัมน์ที่เว้นระยะเท่ากัน อักขระ$(printf \"\\043\")ที่ประเมินว่า#ใช้เป็นตัวคั่น
  5. sort -k 1 เรียงลำดับบรรทัดทั้งหมดตามค่าในคอลัมน์แรก

$ (printf \ "\ 043 \")

นี่พิมพ์อักขระ#(ฐานสิบหก 043) ซึ่งใช้สำหรับการแยกคอลัมน์ ฉันใช้แฮ็คตัวน้อยนี้เพื่อที่aliases ว่าชื่อแทนจะไม่มีตัว#อักษร มิฉะนั้นจะแทนที่#อักขระเหล่านั้นเมื่อพิมพ์ หมายเหตุ : เปลี่ยนเป็นอักขระอื่นหากคุณต้องการนามแฝงที่มี#สัญลักษณ์ตามตัวอักษร


ร้ายแรง: นามแฝงซ้ำ: นามแฝง
Urasquirrel

ร้ายแรง: บรรทัดการกำหนดค่าที่ไม่ดี 15 ในไฟล์ C: / Users / ____ /.
gitconfig

@Urasquirrel: ระบบปฏิบัติการใดที่คุณประสบปัญหา สิ่งนี้ใช้ได้กับฉันใน git bash บน Windows และใน bash บน Mac OS X (Apple Git)
โทมัส

เป็นหน้าต่างแน่นอนที่สุด แต่หนึ่งปีขึ้นไปฉันไม่แน่ใจ 100%
Urasquirrel

2

มีฟังก์ชั่นในตัวคือ ... ลอง

$ __git_aliases

แสดงชื่อแทนทั้งหมด :)


3
คุณสามารถแสดงตัวอย่างบรรทัดคำสั่งของวิธีใช้สิ่งนี้พร้อมกับตัวอย่างเอาต์พุตได้หรือไม่
คิวเมนตัส

สร้างขึ้นเพื่ออะไร ฉันไม่พบสิ่งใด ๆ ใน msysgit คุณพบสิ่งนี้ได้ที่ไหน
ADTC

2
ไม่เรียกสิ่งนี้โดยตรงจากเทอร์มินัลหรือเป็นอาร์กิวเมนต์สำหรับ git สร้างเอาต์พุตที่มีค่า สิ่งนี้สร้างขึ้นเพื่ออะไร
เห็นด้วย -cycyous

4
ทำงานให้ฉันด้วยการทุบตีคอมไพล์ $ __git_aliases ส่งคืนรายการนามแฝงถึงแม้ว่ามันจะไม่แสดงสิ่งที่พวกเขานามแฝง
jaypb

1
@ADTC บรรทัดรหัสในคำตอบนี้เป็นตัวอย่างบรรทัดคำสั่ง $ หมายถึงลินุกซ์ทั่วไปขั้วพรอมต์ พิมพ์ส่วนที่เหลือของบรรทัดนี้ลงในเทอร์มินัลดังกล่าวแล้วENTERรายการชื่อแทนของคุณจะเข้ามา ใช้งานได้ทั้ง Linux และ Windows (git bash) เพราะมันติดตั้งมากับ git (อาจเป็นฟังก์ชั่นที่คอมไพล์ใช้ภายในเพื่อแก้ไขสมนามเมื่อใช้ในบรรทัดคำสั่ง)
Superole

1

หากคุณรู้ชื่อของนามแฝงคุณสามารถใช้--helpตัวเลือกเพื่ออธิบาย ตัวอย่างเช่น:

$ git sa --help
`git sa' is aliased to `stash'

$ git a --help
`git a' is aliased to `add'

1

ในฐานะของคอมไพล์ 2.18 คุณสามารถใช้ git --list-cmds=alias


พวกเขาส่งคืนนามแฝง cmd เท่านั้นไม่ใช่เนื้อหา มีตัวเลือกให้รับสิ่งนั้นหรือไม่?
Carles Alcolea

0

อีกgitนามแฝง (เรียกว่าalias) ที่พิมพ์นามแฝง git: เพิ่มสิ่งต่อไปนี้ใน[alias]ส่วนgitconfig ของคุณ:

[alias]
    # lists aliases matching a regular expression
    alias = "!f() { git config --get-regexp "^alias.${1}$" ; }; f"

ตัวอย่างการใช้งานให้ชื่อนามแฝงเต็ม (ตรงกับชื่อนามแฝงว่า: ie, ^foobar$) และแสดงค่าดังนี้:

$ git alias st
alias.st status -s

$ git alias dif
alias.dif diff

หรือให้ regexp ซึ่งแสดงชื่อแทนและค่าที่ตรงกันทั้งหมด:

$ git alias 'dif.*'
alias.dif diff
alias.difs diff --staged
alias.difh diff HEAD
alias.difr diff @{u}
alias.difl diff --name-only

$ git alias '.*ing'
alias.incoming !git remote update -p; git log ..@{u}
alias.outgoing log @{u}..

Caveats: อ้าง regexp เพื่อป้องกันการขยายตัวของเชลล์ในรูปแบบกลมแม้ว่าจะไม่จำเป็นต้องใช้เทคนิคในกรณีที่ / เมื่อไม่มีไฟล์ที่ตรงกับรูปแบบ นอกจากนี้: regexp ใด ๆ ก็ดียกเว้น^(เริ่มต้นรูปแบบ) และ$(สิ้นสุดรูปแบบ) ไม่สามารถใช้; พวกเขาส่อให้เห็น ถือว่าคุณไม่ได้ใช้จากgit-aliasgit-extras

นอกจากนี้เห็นได้ชัดว่านามแฝงของคุณจะแตกต่างกัน นี่เป็นเพียงส่วนหนึ่งที่ฉันได้กำหนดค่าไว้ (บางทีคุณอาจพบว่ามันมีประโยชน์เช่นกัน)

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