Kendi makinemde git ile tek başıma oynuyorum ve tüm dallarımın ve taahhütlerimin zihinsel bir modelini sürdürmekte zorlanıyorum. Bulunduğum yerden commit geçmişini görmek için bir git log
yapabileceğimi biliyorum, ancak tüm şube topografyasını görmenin bir yolu var mı, dalları açıklamak için her yerde kullanılıyor gibi görünen bu ascii haritaları gibi bir şey?
.-A---M---N---O---P
/ / / / /
I B C D E
\ / / / /
`-------------'
Sanki biri gelip benim depomu almaya kalksa tam olarak ne olup bittiğini anlamakta zorluk çekecekmiş gibi geliyor.
Sanırım AccuRev'in akış tarayıcısından etkilendim...
git log --graphveya
gitk. (Her ikisi de sadece mevcut dal yerine tüm dalları gösterecek olan
--all` seçeneğini de kabul eder).
Düzenle:
Şube adları ve kompakt bir görünüm için deneyin: git log --graph --decorate --oneline
Ben genellikle
git log --graph --full-history --all --pretty=format:"%h%x09%d%x20%s"
Renklerle (eğer kabuğunuz Bash ise):
git log --graph --full-history --all --color \
--pretty=format:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s"
Bu, metin tabanlı gösterimi aşağıdaki gibi yazdıracaktır:
* 040cc7c (HEAD, master) Mannual 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 succesfully
| * 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
(Sadece git log --format=oneline
kullanabilirsiniz, ancak bu işlem mesajlarını sayılara bağlayacaktır, bu da IMHO'da daha az güzel görünecektir).
Bu komutun kısayolunu oluşturmak için ~/.gitconfig
dosyanızı düzenlemek isteyebilirsiniz:
[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"
Ancak, Sodel the Vociferous'un yorumlarda belirttiği gibi, bu kadar uzun biçimlendirme komutunu ezberlemek zordur. Genellikle, ~/.gitconfig
dosyasına koyabileceğiniz için sorun olmaz. Ancak, bazen yapılandırma dosyasını değiştiremeyeceğiniz uzak bir makinede oturum açmanız gerekiyorsa, daha basit ama yazması daha hızlı bir sürüm kullanabilirsiniz:
git log --graph --oneline
Ben git log
ile yapmayı seviyorum:
git log --graph --oneline --branches
(ayrıca --all ile, uzak şubeleri de görüntülemek için)
Son Git sürümleriyle çalışır: tanıtıldı 1.6.3'ten beri (Per, 7 Mayıs 2009)
- "
--pretty=<style>
" komut ailesinin log seçeneği artık "--format=<style>
" olarak yazılabilir.
Ayrıca,--format=%formatstring
,--pretty=tformat:%formatstring
ifadesinin kısaltmasıdır.
- "
--oneline
" "--pretty=oneline --abbrev-commit
" ile eşanlamlıdır.
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
Ayrıca günlük görüntüleme süresini de sınırlayabilirsiniz (taahhüt sayısı):
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
(yalnızca son 5 işlemi göster)
Seçilen mevcut çözümle ilgili hoşuma gitmeyen şey şu:
git log --graph
Çok fazla bilgi gösteriyordu (sadece hızlı bir özete bakmak istediğimde):
PS D:\git\tests\finalRepo> git log --graph
* commit 4919b681db93df82ead7ba6190eca6a49a9d82e7
| Author: VonC <[email protected]>
| Date: Sat Nov 14 13:42:20 2009 +0100
|
| a second bug10 fix
|
* commit 3469e13f8d0fadeac5fcb6f388aca69497fd08a9
| Author: VonC <[email protected]>
| Date: Sat Nov 14 13:41:50 2009 +0100
|
| a first bug10 fix
|
gitk` harikadır, ancak beni kabuk oturumunu başka bir pencere için terk etmeye zorlar, oysa son n taahhütü hızlı bir şekilde görüntülemek genellikle yeterlidir.