Визуализиране на топологията на клоновете в git
Играя си с git изолирано на собствената си машина и ми е трудно да поддържам мисловен модел на всички мои клонове и предавания. Знам, че мога да направя git log
, за да видя историята на предаванията от мястото, където се намирам, но има ли начин да видя цялата топография на клона, нещо подобно на тези асизи карти, които изглежда се използват навсякъде за обяснение на клоновете?
.-A---M---N---O---P
/ / / / /
I B C D E
\ / / / /
`-------------'
Просто ми се струва, че някой, който идва и се опитва да подбере моето хранилище, ще има трудности да разбере какво точно се случва.
Предполагам, че съм повлиян от AccuRev's stream browser...
830
3
git log --graph
илиgitk
. (И двата варианта приемат и--all
, което ще покаже всички клонове, а не само текущия.)Редактиране: За имена на клонове и компактен изглед опитайте:
git log --graph --decorate --oneline
Обикновено използвам
С цветове (ако шелът ви е Bash):
Това ще отпечата текстово представяне по следния начин:
(Бихте могли просто да използвате
git log --format=oneline
, но това ще обвърже съобщенията за извършените промени с числа, което не изглежда толкова красиво).За да направите пряк път за тази команда, може да редактирате вашия файл
~/.gitconfig
:Въпреки това, както Sodel the Vociferous отбелязва в коментарите, такава дълга команда за форматиране е трудна за запомняне. Обикновено това'не е проблем, тъй като можете да я поставите във файла
~/.gitconfig
. Въпреки това, ако понякога ви се налага да влизате в отдалечена машина, където не можете да променяте файла с конфигурацията, можете да използвате по-проста, но по-бърза за въвеждане версия:Харесва ми с
git log
да правя:(също и с --all, за преглед и на отдалечени клонове)
Работи с последните версии на Git: въведена от 1.6.3 (Thu, 7 May 2009)
Можете също така да ограничите обхвата на показване на дневника (брой на предаванията):
(показва само последните 5 предавания)
Това, което не ми харесва в сегашното избрано решение, е:
Показва твърде много информация (когато искам да разгледам само кратко резюме):
gitk
е чудесен, но ме принуждава да напускам сесията на шела, за да отида в друг прозорец, докато бързото показване на последните n предавания често е достатъчно.