Memvisualisasikan topologi cabang di Git


884

Saya bermain dengan Git secara terpisah di komputer saya sendiri, dan saya merasa sulit untuk mempertahankan model mental dari semua cabang dan komitmen saya. Saya tahu saya dapat melakukan a git loguntuk melihat komit sejarah dari tempat saya berada, tetapi apakah ada cara untuk melihat seluruh topografi cabang, sesuatu seperti peta ASCII ini yang tampaknya digunakan di mana-mana untuk menjelaskan cabang?

      .-A---M---N---O---P
     /     /   /   /   /
    I     B   C   D   E
     \   /   /   /   /
      `-------------'

Rasanya seperti seseorang datang dan mencoba mengambil repositori saya akan mengalami kesulitan untuk mengetahui persis apa yang sedang terjadi.

Saya kira saya dipengaruhi oleh browser aliran AccuRev ...



1
@ Leif81, setengah duplikat, untuk saya. @Masi secara eksplisit mengecualikan gitk dalam pertanyaannya.
Benjol

Jawaban:


1083

Gunakan git log --graphatau gitk. (Keduanya juga menerima --all, yang akan menampilkan semua cabang bukan hanya yang saat ini.)

Untuk nama cabang dan tampilan ringkas, coba:

git log --graph --decorate --oneline

47
Ini bahkan tidak memberi label komit dengan cabang. Saya tidak akan menyebut ini visualisasi yang baik apa adanya.
Roman Starkov

7
Terima kasih! gitg juga memiliki --allopsi dan juga label komit. Saya juga tidak pernah melihat di dropdown bahwa Anda dapat memilih semua cabang di sana.
Thomas

210
Saya akan merekomendasikan git log --graph --decorate --oneline- menunjukkan satu komit per baris, dan menghiasi dengan nama cabang.
sleske

8
tig (klien ncurse git) juga menyediakan --allopsi. Cukup berguna!
Pierre-Adrien Buisson

5
Lihat juga jawaban oleh Andrew mengenai --simplify-by-decorationopsi.
ruvim

483

Saya biasanya menggunakan

git log --graph --full-history --all --pretty=format:"%h%x09%d%x20%s"

Dengan warna (jika shell Anda adalah Bash):

git log --graph --full-history --all --color \
        --pretty=format:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s"

Ini akan mencetak representasi berbasis teks seperti ini:

* 040cc7c       (HEAD, master) Manual is NOT built by default
* a29ceb7       Removed offensive binary file that was compiled on my machine and was hence incompatible with other machines.
| * 901c7dd     (cvc3) cvc3 now configured before building
| * d9e8b5e     More sane Yices SMT solver caller
| | * 5b98a10   (nullvars) All uninitialized variables get zero inits
| |/
| * 1cad874     CFLAGS for cvc3 to work successfully
| *   1579581   Merge branch 'llvm-inv' into cvc3
| |\
| | * a9a246b   nostaticalias option
| | * 73b91cc   Comment about aliases.
| | * 001b20a   Prints number of iteration and node.
| |/
|/|
| * 39d2638     Included header files to cvc3 sources
| * 266023b     Added cvc3 to blast infrastructure.
| * ac9eb10     Initial sources of cvc3-1.5
|/
* d642f88       Option -aliasstat, by default stats are suppressed

(Anda hanya bisa menggunakan git log --format=oneline, tetapi itu akan mengikat pesan komit ke angka, yang terlihat kurang cantik IMHO).

Untuk membuat pintasan untuk perintah ini, Anda mungkin ingin mengedit ~/.gitconfigfile Anda :

[alias]
  gr = log --graph --full-history --all --color --pretty=tformat:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s%x20%x1b[33m(%an)%x1b[0m"

Namun, seperti dicatat Sodel the Vociferous dalam komentar, perintah format panjang seperti itu sulit untuk dihafalkan. Biasanya, itu bukan masalah karena Anda dapat memasukkannya ke dalam ~/.gitconfigfile. Namun, jika Anda terkadang harus masuk ke mesin jarak jauh di mana Anda tidak dapat memodifikasi file konfigurasi, Anda bisa menggunakan versi yang lebih sederhana tetapi lebih cepat untuk mengetik:

git log --graph --oneline

10
Jika Anda menyukai tanggal: git log --graph --full-history --all --color --date = pendek --pretty = format: "% x1b [31m% h% x09% x1b [32m% d% x1b [ 0m% x20% ad% s "
sehugg

7
--oneline adalah pengganti yang lebih berkesan untuk semua sihir dalam format yang cantik.
Daniel Ralston

1
@ Modelthe Vociferous, memang, saya tidak mendekati masalah dari sisi yang Anda bicarakan; Saya memperluas jawaban saya.
P Shved

2
Catatan: --full-historyhanya relevan ketika menggunakan --simplify-by-decorationatau menentukan suatu filepath.
Slipp D. Thompson

2
Bolehkah saya bertanya dari mana Anda mendapatkan format string? Atau bagaimana Anda mengarang benda itu?
elliotwesoff

444

Saya memiliki 3 alias (dan 4 alias-alias untuk penggunaan cepat) yang biasanya saya masukkan ke ~/.gitconfigfile saya :

[alias]
    lg = lg1
    lg1 = lg1-specific --all
    lg2 = lg2-specific --all
    lg3 = lg3-specific --all

    lg1-specific = log --graph --abbrev-commit --decorate --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(auto)%d%C(reset)'
    lg2-specific = 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(auto)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)'
    lg3-specific = 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 cyan)(committed: %cD)%C(reset) %C(auto)%d%C(reset)%n''          %C(white)%s%C(reset)%n''          %C(dim white)- %an <%ae> %C(reset) %C(dim white)(committer: %cn <%ce>)%C(reset)'

git lgSaya git lg1terlihat seperti ini:

git lg1

git lg2 terlihat seperti ini:

git lg2

dan git lg3terlihat seperti ini:

git lg3

Perlu dicatat bahwa ini tidak dimaksudkan sebagai solusi menyeluruh — ini adalah template untuk Anda ubah, tambahkan, dan perbaiki sesuai dengan keinginan Anda. Jika Anda ingin menggunakan ini, rekomendasi saya adalah untuk:

  1. Tambahkan mereka ke .gitconfig,
  2. Kustomisasi sesuai keinginan Anda (pilihan warna berbeda, pengaturan garis berbeda untuk versi 2- dan 3-baris, dll.),
  3. Dan kemudian menyimpan salinan ke Gist atau alat potongan kode lainnya sehingga Anda dapat menyalin & menempelkannya .gitconfigdi masa mendatang (atau versi lain mengontrol dotfile Anda, tentu saja) .

Catatan: Jawaban disalin dari dan ditingkatkan pada jawaban di stackoverflow.com/questions/1057564/pretty-git-branch-graphs karena jauh lebih sesuai di sini daripada di sana. Tinggalkan salinan pada pertanyaan lain karena alasan historis — sudah ditutup sekarang, dan jawabannya dirujuk oleh banyak jawaban lain.


10
Saran: ganti %C(bold yellow)dengan yang %C(auto)memiliki warna berbeda untuk HEAD, cabang lokal dan jarak jauh ( ref ).
Atcold

2
Perhatikan bahwa Anda dapat menghindari lekukan secara manual dalam string format Anda dengan menggunakan %w(); dengan cara ini Anda juga dapat dengan benar membungkus baris lebih lama atau melakukan banyak pesan komit tanpa mengganggu grafik.
charliegreen

1
@ mbadawi23 Mereka redundan demi konsistensi di seluruh platform dan instalasi Git. --abbrev-commitada di sana karena garis ke-2-ke-3 adalah indentasi tangan dengan spasi, dan saya ingin memastikan bahwa itu akan menggunakan SHA pendek - jadi lebih baik aman daripada menyesal. --decorateada juga di sana karena walaupun default Git melakukan hal yang sama, yang dapat dikonfigurasi secara berbeda atau berbeda dalam versi Git yang berbeda — untuk ini, saya benar-benar ingin dekorasi. Pada akhirnya, flag ekstra / redundan tidak buruk di sini— ini berupa file; itu bukan sesuatu yang Anda ketik sepanjang waktu.
Slipp D. Thompson

1
@TimothyPulliam Di akhir setiap baris yang mewakili ujung setiap cabang / tag, Anda akan melihat nama cabang / tag terkait dalam tanda kurung— misalnya dalam lg1& lg2tangkapan layar Anda dapat melihat (origin/test_on_10.8)tampilan cabang jarak jauh, dan pada lg2tangkapan layar Anda dapat lihat (HEAD -> master, origin/master, origin/HEAD)menunjukkan posisi lokal dan jarak jauh dari mastercabang dan HEAD. Ini cocok dengan apa yang dilakukan alat GUI memvisualisasikan cabang populer untuk Git (gitk, SourceTree, TortoiseGit, Tower, Fork, GitX), meskipun dengan sedikit lebih banyak verbositas (beberapa alat GUI menggunakan kode warna) .
Slipp D. Thompson

2
@TimothyPulliam Untuk memahami apa yang dikomit adalah "bagian dari setiap cabang", Anda harus melacak garis berwarna secara visual. Hampir setiap alat tidak banyak membantu Anda dalam hal ini karena Git yang dilakukan pada dasarnya bukan milik cabang mana pun — mereka tersirat (pada grafik-visualisasi-waktu) milik cabang atau tag apa pun yang memiliki mereka di leluhur-leluhur mereka . Jika tidak ada cabang / tag referensi komit dan menghilang (tetapi tidak dikumpulkan sampah selama sekitar 2 minggu); tambahkan cabang / tag referensi komit yang sebelumnya tidak direferensikan dan muncul kembali. Saya harap ini semua masuk akal.
Slipp D. Thompson

236

Ke salah satu resep ini (berdasarkan log git atau gitk), Anda dapat menambahkan --simplify-by-decorationuntuk meruntuhkan bagian linear yang tidak menarik dari sejarah. Ini membuat topologi lebih terlihat sekaligus. Sekarang saya dapat memahami sejarah besar yang tidak akan dapat dipahami tanpa opsi ini!

Saya merasa perlu memposting ini karena sepertinya tidak sepopuler seharusnya. Itu tidak muncul di sebagian besar pertanyaan Stack Overflow tentang memvisualisasikan sejarah, dan saya butuh sedikit pencarian untuk menemukan - bahkan setelah saya tahu saya menginginkannya! Saya akhirnya menemukannya di laporan bug Debian ini . Penyebutan pertama tentang Stack Overflow tampaknya menjadi jawaban ini oleh Antoine Pelisse.


3
Sempurna - persis apa yang saya cari! Itu harus mendapatkan lebih banyak upvotes; hampir semua orang sudah tahu tentang gitk / gitg / git log --graph, tetapi itu sama sekali tidak sangat berguna jika Anda ingin memvisualisasikan topologi cabang dan tidak peduli dengan komitmen tunggal.
imolit

4
Inilah yang saya butuhkan, fantastis. Satu-satunya hal yang membantu saya, dari semua jawaban. --simplify-by-decorationmemperjelas apa yang terjadi.
Ela782

9
Ini harus menjadi jawabannya. git log --graph --all --simplify-by-decorationberfungsi juga.
Irfy

Kalau saja kita bisa menggunakan --simplify-by-decorationsambil menambahkan n komit sebelum / setelah setiap komit deokrasi (suka -Bdan -Auntuk grep).
junvar

Saya menggunakan solusi ini sehingga sering saya menyebutnya sebagai 'pohon git'.
user16973

76

Gitk kadang menyakitkan bagi saya untuk membaca.

masukkan deskripsi gambar di sini

Memotivasi saya untuk menulis GitVersionTree .

masukkan deskripsi gambar di sini


3
@exhuma Saya memiliki PR dengan penulis untuk mendukung Mono (diuji pada Ubuntu 13.10 melawan Mono 2.10)
Max Ehrlich

1
Saya telah menemukan bahwa GitVersionTree membuat cabang di tempat yang sama dengan waktu, yang membuatnya lebih mudah untuk melihat bagaimana berbagai hal berubah.
sfranky

48

99,999% dari waktu saya melihat sejarah pada git lgdan 0,001% oleh git log.

Saya hanya ingin membagikan dua alias log yang mungkin berguna (konfigurasi dari .gitconfig):

[Alias]
     lg = log --graph --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
     hist = log --graph --full-history --all --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
  • git lg akan melihat riwayat cabang saat ini.
  • git hist akan melihat seluruh sejarah cabang.

44

Lihatlah Gitkraken - GUI lintas platform yang menunjukkan topologi dengan cara yang jelas.

Topologi

Berikut ini adalah video tutorial singkat tentang beberapa fitur canggih.


6
Bagaimana utas ini memiliki GitKraken, tetapi tidak memiliki SourceTree yang lebih lama dan gratis? (Saya tahu, saya tahu, Atlassian tidak selalu mendapatkan segalanya dengan benar. Tetapi SourceTree adalah alat yang sangat bagus untuk memvisualisasikan.)
XML

43

Saya suka, dengan git log, melakukan:

 git log --graph --oneline --branches

(juga dengan --all, untuk melihat cabang jarak jauh juga)

Bekerja dengan rilis Git terbaru: diperkenalkan sejak 1.6.3 ( Kamis, 7 Mei 2009 )

  • " --pretty=<style>" pilihan ke keluarga log dari perintah sekarang dapat dieja sebagai " --format=<style>".
    Selain itu, --format=%formatstringadalah kependekan dari --pretty=tformat:%formatstring.

  • " --oneline" adalah sinonim untuk " --pretty=oneline --abbrev-commit".

PS D:\git\tests\finalRepo> git log --graph --oneline --branches --all
* 4919b68 a second bug10 fix
* 3469e13 a first bug10 fix
* dbcc7aa a first legacy evolution
| * 55aac85 another main evol
| | * 47e6ee1 a second bug10 fix
| | * 8183707 a first bug10 fix
| |/
| * e727105 a second evol for 2.0
| * 473d44e a main evol
|/
* b68c1f5 first evol, for making 1.0

Anda juga dapat membatasi rentang tampilan log (jumlah komit):

PS D:\git\tests\finalRepo> git log --graph --oneline --branches --all -5
* 4919b68 a second bug10 fix
* 3469e13 a first bug10 fix
* dbcc7aa a first legacy evolution
| * 55aac85 another main evol
| | * 47e6ee1 a second bug10 fix

(hanya tampilkan 5 komit terakhir)


Apa yang saya tidak suka tentang solusi yang dipilih saat ini adalah:

 git log --graph

Ini ditampilkan terlalu banyak info (ketika saya hanya ingin melihat ringkasan cepat):

PS D:\git\tests\finalRepo> git log --graph
* commit 4919b681db93df82ead7ba6190eca6a49a9d82e7
| Author: VonC <vonc@laposte.net>
| Date:   Sat Nov 14 13:42:20 2009 +0100
|
|     a second bug10 fix
|
* commit 3469e13f8d0fadeac5fcb6f388aca69497fd08a9
| Author: VonC <vonc@laposte.net>
| Date:   Sat Nov 14 13:41:50 2009 +0100
|
|     a first bug10 fix
|

gitk bagus, tetapi memaksa saya untuk meninggalkan sesi shell untuk jendela lain, sedangkan menampilkan n terakhir melakukan dengan cepat sering kali cukup.


Saya memilih metode ini juga, tetapi saya membuat alias sehingga mengetik "git graph" sama dengan mengeksekusi "git log --graph --decorate --oneline".
Will Pike

@ConnerPike ide bagus. Saya memiliki alias 'lg' sendiri: lihat stackoverflow.com/a/3667139/6309
VonC

35

Gitg adalah alat yang hebat untuk Linux, mirip dengan Gitx untuk OS X. Jalankan saja 'gitg' pada baris perintah dari suatu tempat di dalam struktur pohon repositori Anda (sama dengan gitx).


3
Dalam banyak kata: gitg memiliki menu drop-down di mana orang dapat memilih cabang mana yang akan divisualisasikan. Drop-down ini juga memiliki opsi "Semua".
Phluks

1
Atau Anda bisa memulainya dengan gitg --all, jika Anda ingin menghindari mucking di dalam menu drop down.
imolit

25

Saya menemukan "git-big-picture" cukup berguna: https://github.com/esc/git-big-picture

Ini menciptakan grafik 2D yang cantik menggunakan dot / graphviz alih-alih tampilan linier, "satu dimensi" yang dihasilkan gitk dan teman. Dengan opsi -i, ini menunjukkan titik cabang dan menggabungkan komit tetapi mengabaikan semuanya di antaranya.


cukup mudah digunakan, jika Anda tidak memiliki banyak komitmen dan menginginkan solusi sederhana, mungkin bisa mencobanya.
wiswit

Seharusnya skala dengan jumlah komit baik-baik saja (jika Anda menggunakan -i), mungkin menjadi tidak dapat dibaca jika Anda memiliki cabang dan gabungan kompleks (tapi kemudian, alat mana yang tidak)
Frank Osterfeld

1
Dengan proyek kami skala menengah, ini menghasilkan gambar besar dengan banyak garis. Bisakah saya membatasi kedalamannya? Yaitu komitmen dari N hari terakhir atau lebih.
Ondra Žižka


21

Lihatlah BranchMaster .

Saya menulisnya untuk memvisualisasikan struktur cabang yang kompleks, dengan memangkas semua komit di antara mereka menjadi satu baris. Angka-angka menunjukkan jumlah komit.

masukkan deskripsi gambar di sini


1
Ini yang saya cari. Apakah ada perintah / alat alternatif untuk melakukan ini?
Aalex Gabi

3
@AalexGabi Masukkan ini ke gitconfig Anda, ia melakukan hal yang sama, tetapi di baris perintah gbranch = log --graph --simplify-by-decoration --pretty = format: '% C (kuning)% h% C (putih)% d% C (hitam pekat)% ar% C (reset)% n '--all
kracejic

Bagaimana Anda mendapatkan data untuk memvisualisasikan cabang?
Snowfish

15

Tidak ada yang disebutkan tig? Itu tidak melipat cabang seperti "BranchMaster", tetapi ...

Cepat, berjalan di terminal.

Karena sangat cepat (kontrol keyboard) Anda mendapatkan UX yang hebat, hampir seperti " ls" saya untuk direktori yang berisi repositori git.

https://jonas.github.io/tig/

Ini memiliki cara pintas yang biasa, /untuk mencari, dll.

Grafik revisi

(ps. itu adalah terminal di latar belakang tangkapan layar ini, terlihat lebih baik saat ini, tetapi komputer saya menolak untuk mengambil tangkapan layar, maaf)

(pps. Saya juga menggunakan gitkraken dan memiliki visualisasi yang sangat jelas, tetapi jauh lebih berat daripada tig)


Saya seorang pencinta terminal dan Tig (antarmuka mode teks untuk Git) adalah alat yang baik untuk berinteraksi dengan repositori Git, sangat berguna termasuk tampilan grafik dan riwayat Git. Saya merekomendasikannya kepada pecinta terminal sebagai alat tambahan untuk baris perintah Git.
hermeslm

15

Tortoise Git memiliki alat yang disebut "Grafik Revisi". Jika Anda menggunakan Windows, semudah klik kanan pada repo Anda -> Tortoise Git -> Revision Graph.


1
fitur yang fantastis, menggunakan tortoise git untuk waktu yang lama tetapi tidak tahu fitur ini.
kreamik

Ini cara yang lebih sederhana. Terima kasih.
Anoop


12

Saya menggunakan alias berikut ini.

[alias]
    lol = log --graph --decorate --pretty=oneline --abbrev-commit
    lola = log --graph --decorate --pretty=oneline --abbrev-commit --all

Ini memiliki lebih banyak info dalam skema warna daripada alias yang saya lihat di atas. Tampaknya juga cukup umum, sehingga Anda mungkin memiliki kemungkinan itu ada di lingkungan orang lain atau bisa menyebutkannya dalam percakapan tanpa harus menjelaskannya.

Dengan tangkapan layar dan deskripsi lengkap di sini: http://blog.kfish.org/2010/04/git-lola.html


12

Untuk pengguna Mac, checkout (tanpa maksud kata-kata) alat gratis, sumber terbuka GitUp: http://gitup.co/

Saya suka cara grafik ditampilkan, lebih jelas daripada beberapa alat lain yang pernah saya lihat.

Proyeknya ada di sini: https://github.com/git-up/GitUp

Tangkapan layar GitUp


Ini adalah satu-satunya grafik di mana Anda melihat cabang pada sumbu x dan waktu pada sumbu y. Ini sangat intuitif. GitUp benar-benar luar biasa! macOS tidak, lagi, jadi saya beralih ke Windows dan akan sangat merindukan Gitup.
w00t

11

Saya memiliki git logalias ini ~/.gitconfiguntuk melihat riwayat grafik:

[alias]
l = log --all --graph --pretty=format:'%C(auto)%h%C(auto)%d %s %C(dim white)(%aN, %ar)'

Dengan alias di tempat, git lakan muncul sesuatu seperti ini:

masukkan deskripsi gambar di sini

Di Git 2.12 + Anda bahkan dapat menyesuaikan warna garis grafik menggunakan log.graphColorsopsi konfigurasi.

Adapun format log, mirip dengan --oneline, dengan penambahan nama penulis (menghormati .mailmap) dan tanggal relatif penulis . Perhatikan bahwa %C(auto)sintaks, yang memberi tahu Git untuk menggunakan warna default untuk komit hash, dll. Didukung di Git> = 1.8.3 .


1
Ini pertama kalinya saya melihat tanggal penulis realtive dan cukup bagus! terima kasih, saya akan menambahkannya ke gitconfig saya!
Simon C.

pengguna windows harus mengganti tanda kutip tunggal dengan tanda kutip ganda
PierDipi

11

Saya menemukan posting blog ini yang menunjukkan cara ringkas:

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

Saya biasanya membuat alias untuk perintah di atas:

alias gl='git log --oneline --abbrev-commit --all --graph --decorate --color'

dan cukup gunakan saja gl.

Anda juga dapat menambahkan alias ke konfigurasi git. Buka ~/.gitconfigdan tambahkan baris berikut ke [alias]

[alias]
        lg = log --oneline --abbrev-commit --all --graph --decorate --color

dan gunakan seperti ini: git lg


8

Alias ​​favorit pribadi saya, melalui .gitconfig, adalah:

graph = log --graph --color --all --pretty=format:"%C(yellow)%H%C(green)%d%C(reset)%n%x20%cd%n%x20%cn%x20(%ce)%n%x20%s%n"

6
Sedikit penjelasan seperti apa perintah itu akan sangat bagus.
Max

8

Bagi mereka yang menggunakan editor teks VSCode , pertimbangkan Ekstensi Riwayat Git oleh D. Jayamanne:

masukkan deskripsi gambar di sini


ekstensi ini agak lambat menurut saya. Itu juga tidak secara otomatis memperbarui dan terlihat tidak dipoles. Tapi itu melakukan pekerjaan yang baik memvisualisasikan pohon komit ...
aljazerzen

2
Ekstensi lain untuk Visual Studio Code adalah Git Graph oleh mhutchie. Saya menggunakan ini bersama dengan GitLens.
Josef.B

7

Gitx juga merupakan alat visualisasi yang fantastis jika Anda menggunakan OS X.


3
gitk (untuk semua orang) sangat mirip. tidak persis sama, tetapi sangat mirip.
xero

Ada beberapa garpu Gitx - yang ini (rowanj) tampaknya menjadi yang terbaik saat ini.
rjmunro

7

Perintah git log lainnya. Yang ini dengan kolom lebar tetap :

git log --graph --pretty=format:"%x09%h | %<(10,trunc)%cd |%<(25,trunc)%d | %s" --date=short



2

Saya sudah mencoba --simplify-by-decorationtetapi semua gabungan saya tidak ditampilkan. Jadi saya malah hanya memotong garis tanpa simbol "\" dan "/" di header, sambil selalu menjaga garis dengan "(" menunjukkan cabang segera setelah itu. Ketika menunjukkan sejarah cabang saya secara umum tidak tertarik dalam komentar komit, jadi Saya menghapusnya juga, saya berakhir dengan alias shell berikut.

gbh () { 
    git log --graph --oneline --decorate "$@" | grep '^[^0-9a-f]*[\\/][^0-9a-f]*\( [0-9a-f]\|$\)\|^[^0-9a-f]*[0-9a-f]*\ (' | sed -e 's/).*/)/'
}

2

Bisakah kita membuatnya lebih rumit?

Bagaimana dengan git log --all --decorate --oneline --graph (ingat A Dog = --All --Decorate --Oneline --Graph)


1
Ini sama dengan jawaban yang diterima. Namun alat peraga untuk mnemonik
aljgom

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.