ดูแผนผังเวอร์ชันเต็มในคอมไพล์


115

ฉันใช้ Git และ gitk เวอร์ชันบรรทัดคำสั่ง ฉันต้องการดูแผนผังเวอร์ชันเต็มไม่ใช่เฉพาะส่วนที่สามารถเข้าถึงได้จากเวอร์ชันเช็คเอาต์ในปัจจุบัน เป็นไปได้ไหม?

คำตอบ:


79

คุณสามารถลองทำสิ่งต่อไปนี้:

gitk --all

คุณสามารถบอกได้gitkว่าจะแสดงอะไรโดยใช้อะไรก็ได้ที่git rev-listเข้าใจดังนั้นหากคุณต้องการเพียงไม่กี่สาขาคุณสามารถทำได้:

gitk master origin/master origin/experiment

... หรือสิ่งที่แปลกใหม่เช่น:

gitk --simplify-by-decoration --all

292

หากคุณไม่มีอินเทอร์เฟซแบบกราฟิกคุณสามารถพิมพ์กราฟคอมมิตในบรรทัดคำสั่ง:

git log --oneline --graph --decorate --all

หากคำสั่งนี้มีตัวเลือกที่ไม่ถูกต้อง --oneline ให้ใช้:

git log --pretty=oneline --graph --decorate --all

6
ใครต้องการ gitk เมื่อเรามี gitl! alias gitl = 'git log --oneline --graph --decorate
Thunder Rabbit

10
alias gl='git log --oneline --graph --decorate --all'. ทำไมพิมพ์เยอะเกินต้องการ;)
Dana Woodman

ฉันหวังว่าจะมีการคิดค้นตัวย่อบรรทัดคำสั่งก่อนที่แท็บจะเสร็จสมบูรณ์ พวกเขาให้ประโยชน์เฉพาะผู้ที่ใช้คำสั่งเหล่านั้นมากและผู้ที่มีความทรงจำที่บ้าคลั่ง
aaaaaa

121
  1. เมื่อฉันอยู่ในสถานที่ทำงานโดยมีเทอร์มินัลเท่านั้นฉันใช้:

    git log --oneline --graph --color --all --decorate

    ใส่คำอธิบายภาพที่นี่

  2. เมื่อ OS รองรับ GUI ฉันใช้:

    gitk --all

    ใส่คำอธิบายภาพที่นี่

  3. เมื่อฉันอยู่ในพีซี Windows ที่บ้านฉันใช้GitVersionTreeของตัวเอง

    ใส่คำอธิบายภาพที่นี่


คำตอบที่สมบูรณ์แบบสำหรับฉัน ระบบปฏิบัติการของฉันรองรับ GUI ดังนั้นตัวเลือกที่สองจึงเป็นวิธีที่ฉันจะไป แต่สมมติว่าฉันแค่อยากดูกราฟจากบรรทัดคำสั่งอย่างรวดเร็ว: มีวิธีหลีกเลี่ยงการพิมพ์สวิตช์ทั้งหมดจากเวอร์ชันแรกหรือไม่หรือคุณเพิ่งเปลี่ยนใหม่ พิมพ์ตลอดเวลา? ขอบคุณ.
rchrd

1
@rchrd ฉันจะตั้งเป็นนามแฝงโดยเรียกใช้git config --global alias.ver "log --oneline --graph --color --all --decorate"และต้องพิมพ์git verหลังจากนั้นเท่านั้น
เช็คซัม

23

มีคำตอบที่ดีมากสำหรับคำถามเดียวกัน
การเพิ่มบรรทัดต่อไปนี้ใน "~ / .gitconfig":

[alias]
lg1 = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
lg = !"git lg1"

5

ชื่อเสียงไม่เพียงพอที่จะแสดงความคิดเห็นเกี่ยวกับคำตอบของ knittl ดังนั้น:

หากคุณไม่ต้องการชื่อสาขาหรือแท็ก:
git log --oneline --graph --all --no-decorate

หากคุณไม่ต้องการสีด้วยซ้ำ (เพื่อหลีกเลี่ยงลำดับคีย์เมื่อวางท่อ):
git log --oneline --graph --all --no-decorate --no-color

คุณอาจต้องการใช้นามแฝง (ใน. gitconfig) เพื่อทำให้ชีวิตง่ายขึ้น:

[alias]
  tree = log --oneline --graph --all --no-decorate

ตัวเลือกสุดท้ายเท่านั้นที่จะมีผลดังนั้นจึงเป็นไปได้ที่จะแทนที่นามแฝงของคุณ:
git tree --decorate

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