Как да проверите историята на проекта с Git Log

Как да проверите историята на проекта с Git Log

Една от най -фундаменталните услуги, предоставяни от Git, е историята на проекта. Тъй като Git следи всички промени във файловете, направени в хранилище, той може да предложи много мощни функции за регистриране. Можете да запитвате историята на проекта по много различни начини и можете да извличате и показвате различни данни с една гъвкава команда.





The git log командата е огромна, най -голямата от всяка обикновена команда на Git. Ръководството му е с дължина над 2500 реда. За щастие, git log предоставя голяма част от най -полезното си поведение само от няколко ключови опции.





Основно регистриране с поведение по подразбиране

По подразбиране, git log показва обратен хронологичен списък на ангажименти. Всеки ангажимент включва своя хеш, автор, дата и съобщение за ангажиране:





Командата използва пейджър (например по -малко, повече), за да покаже пълния изход, за да можете лесно да навигирате в резултатите. Можете да конфигурирате Git да използва програма по ваш избор, например най -пейджърът.

Ето някои git log изход от хранилището на изходния код на git себе си:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

Резултатът започва с хеш за предаване ( 670 ...), последвано от списък с клонове, които в момента сочат към този ангажимент ( HEAD -> господар и др.)

софтуер за организиране на файлове и папки

Следващият ред описва автора на този ангажимент, като посочва тяхното име и имейл адрес.





Пълната дата и час на ангажимента следват на следващия ред.

Накрая се появява пълното съдържание на съобщението за ангажиране. Можете да контролирате повечето от всичко останало, което git log предлага с опции за командния ред. Има два основни типа опции:





  • Форматиране, което определя как Git показва всеки ангажимент.
  • Филтриране, което определя кой ангажимент git log включва.

В допълнение към опциите на командния ред, git log приема аргументи, които определят файлове, коммити, клонове или други видове препратки. Те прилагат допълнително филтриране.

Форматиране на Git Log Output

Една от най -простите корекции е --една линия опция, която произвежда много кратък изход:

git log --oneline

Всеки ред в дневника сега съдържа само съкратен хеш за предаване и темата на съобщението за ангажиране. Това е отличен начин да получите преглед на последните ангажименти по проекта:

За съжаление, без друг контекст, тази информация не винаги е толкова полезна. Може да ви даде смътно усещане за проекта, но му липсват дати и друга полезна информация за авторите и файловете.

Преглед на разклонена графика

The --граф опцията ви позволява да визуализирате връзките между клоновете. Това е много елементарно, но може да помогне за разплитането на сложна история.

git log --oneline --graph

Свързани: Как да създадете нов клон в Git

Персонализиран доста изход

Можете да постигнете по -сложно форматиране, като го посочите подробно с помощта на --красива опция. Синтаксисът преминава от много прост към много по -сложен, така че консултирайте се с ръководство за пълни подробности .

как да намерите заглавие на книга, когато не можете да си спомните
git log --pretty=short

По същество е същото като git log без датата или пълното съобщение:

git log --pretty=oneline

Е еквивалентно на git log --oneline .

git log --pretty=fuller

Включва много подробности. Той дори разделя автора и извършителя, които на теория могат да бъдат различни хора:

С формат: вариант, можете да предоставите низ, съдържащ каквото искате съдържание, включително заместители, които са заменени с различни данни. Ето някои примерни заместители:

  • %H ангажирайте хеш
  • %h съкратено хеш за предаване
  • %да се дата на автора
  • дата на автор, роднина
  • ангажирайте темата на съобщението
  • % b ангажиране на тялото на съобщението
  • %p съкратени родителски хешове

Можете да добавите фиксирани символи към изхода и да го оцветите. Този пример също показва промяна във формата на датата:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

Обърнете внимание, че скобите обграждат датата. Каквото и форматиране да изберете, ако искате изходът да бъде полезен в конвейер или за други форми на текстообработка, трябва да помислите как да разграничите всяка част от изхода.

Показване на разликите в дневника

Важен детайл при разглеждане на историята на хранилището са самите разлики. В крайна сметка те представляват това, което всъщност е променено в кода! Като начало можете да получите обобщение на промените заедно с всяко използване на ангажимент -шортстат :

git log --shortstat

Това добавя ред като:

1 file changed, 48 insertions(+), 2 deletions(-)

До дъното на всеки ангажимент. Често ще виждате този вид обобщение - например в страниците на GitHub - и това е полезен начин за бързо преценяване на обхвата на конкретен ангажимент. За по -подробна информация можете да включите пълен изход (разлики) с помощта на -стр флаг:

git log -p

Филтриране на Git Log Output

Каквото и форматиране да приложите, пак ще видите пълния регистър на всички коммити в текущия клон. Въпреки че Git ги разделя на страници, все пак може да има много резултати. Следните опции ви позволяват да персонализирате кой ангажимент включва дневника.

Ограничаване по сума

Ако просто искате да отрежете резултатите, за да покажете най -новите няколко коммита, използвайте -[номер] синтаксис:

git log -2

Ограничаване по дата

За да ограничите набора от ангажименти до даден период от време, използвайте --от ( --след ) и --до ( --преди ) настроики. Всеки от тях приема дата във формат ISO 8601. Можете да използвате и двете --от или --до самостоятелно или и двете заедно, за да зададете диапазон. Опциите --след и --преди са синоними.

git log --since='2021-01-01' --until='2021-05-01'

Ограничаване по файл

Git log може да се фокусира върху конкретен файл, а не върху всеки файл във вашето хранилище. Това е чудесно, за да ви помогне да разберете как даден файл се е променил с течение на времето. Просто добавете името на файла в края на вашата команда git:

git log filename

Ще видите само тези ангажименти, които са засегнати име на файл .

Разлики между клоновете

Може да имате някои уникални изисквания, когато разглеждате дневника на клон. Например, вместо да видите цялата история, може просто да искате да видите какво се е променило в този конкретен клон. Git log може да помогне чрез ref1..ref2 синтаксис. Има три леко различни подхода, които можете да използвате:

  1. Преглед на ангажименти, които са в основния, но не и клон: | _+_ |
  2. Преглед на ангажименти, които са в клон, но не са основни: | _+_ |
  3. Преглед на коммити, които съществуват само в клон или main: | _+_ |

Разлики между два етикета

Точно както можете да преглеждате историята между клоновете с помощта на ref1..ref2 синтаксис, можете също да преглеждате историята между маркерите по същия начин. В края на краищата и етикетите, и клоните са типове препратки.

git log --oneline origin/branch..origin/main

Ако подготвяте бележки за изданието за по -голям проект, git shortlog трябва да бъде първото ви пристанище за посещение. Той изготвя списък с автори с ангажирани теми до тях. Можете да му предадете референтен диапазон, за да ограничите историята по подобен начин на git log:

git log --oneline origin/ main ..origin/ branch

The команда git show е дори по -универсален от git log . Той може да работи с тагове и други типове git обекти извън историята на ангажименти. Той споделя много опции с git log , но наистина ще ви трябва само ако трябва да се вкопаете в подробности от по-ниско ниво.

Прегледайте миналото с Git Log

Git log е сложна команда, но можете да използвате много от най -основните му опции. Преглеждането на историята на хранилище е отличен начин да разберете колко често настъпват промените и колко хора ги правят. След като разберете добре историята на проекта, ще бъдете в чудесна позиция да допринесете сами за него.

как да свържете няколко монитора към лаптоп
Дял Дял Туит електронна поща Присъединете се към тенденцията за социално кодиране и допринесете за хранилищата на GitHub

Искате ли да упражнявате кодиращите си мускули и да помогнете за проекти с отворен код? Ето как да допринесете за GitHub.

Прочетете Напред
Свързани теми
  • Програмиране
  • GitHub
  • Съвети за кодиране
За автора Боби Джак(58 статии са публикувани)

Боби е ентусиаст на технологиите, който работи като софтуерен разработчик в продължение на почти две десетилетия. Той е запален по игрите, работи като редактор на рецензии в Switch Player Magazine и е потопен във всички аспекти на онлайн издателството и уеб разработката.

Още от Боби Джак

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате