Pro Git - страница 16

стр.

$ git log

commit ca82a6dff817ec66f44342007202690a93763949

Author: Scott Chacon

Date: Mon Mar 17 21:52:11 2008 -0700


changed the version number


commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7

Author: Scott Chacon

Date: Sat Mar 15 16:40:33 2008 -0700


removed unnecessary test


commit a11bef06a3f659402fe7563abf99ad00de2209e6

Author: Scott Chacon

Date: Sat Mar 15 10:31:28 2008 -0700


first commit

По умолчанию (без аргументов) git log перечисляет коммиты, сделанные в репозитории в обратном к хронологическому порядке – последние коммиты находятся вверху. Из примера можно увидеть, что данная команда перечисляет коммиты с их SHA-1 контрольными суммами, именем и электронной почтой автора, датой создания и сообщением коммита.

Команда git log имеет очень большое количество опций для поиска коммитов по разным критериям. Рассмотрим наиболее популярные из них.

Одним из самых полезных аргументов является -p, который показывает разницу, внесенную в каждый коммит. Так же вы можете использовать аргумент -2, который позволяет установить лимит на вывод количества коммитов. В данном случае их будет только два:

$ git log -p -2

commit ca82a6dff817ec66f44342007202690a93763949

Author: Scott Chacon

Date: Mon Mar 17 21:52:11 2008 -0700


changed the version number


diff --git a/Rakefile b/Rakefile

index a874b73..8f94139 100644

--- a/Rakefile

+++ b/Rakefile

@@ -5,7 +5,7 @@ require 'rake/gempackagetask'

spec = Gem::Specification.new do |s|

s.platform = Gem::Platform::RUBY

s.name = "simplegit"

- s.version = "0.1.0"

+ s.version = "0.1.1"

s.author = "Scott Chacon"

s.email = "schacon@gee-mail.com"

s.summary = "A simple gem for using Git in Ruby code."


commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7

Author: Scott Chacon

Date: Sat Mar 15 16:40:33 2008 -0700


removed unnecessary test


diff --git a/lib/simplegit.rb b/lib/simplegit.rb

index a0a60ae..47c6340 100644

--- a/lib/simplegit.rb

+++ b/lib/simplegit.rb

@@ -18,8 +18,3 @@ class SimpleGit

end


end

-

-if $0 == __FILE__

- git = SimpleGit.new

- puts git.show

-end

\ No newline at end of file

Эта опция отображает аналогичную информацию но содержит разницу для каждой записи. Очень удобно использовать данную опцию для код ревью или для быстрого просмотра серии изменений. Так же есть возможность использовать серию опций для обобщения. Например, если вы хотите увидеть сокращенную статистику для каждого коммита, вы можете использовать опцию --stat:

$ git log --stat

commit ca82a6dff817ec66f44342007202690a93763949

Author: Scott Chacon

Date: Mon Mar 17 21:52:11 2008 -0700


changed the version number


Rakefile | 2 +-

1 file changed, 1 insertion(+), 1 deletion(-)


commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7

Author: Scott Chacon

Date: Sat Mar 15 16:40:33 2008 -0700


removed unnecessary test


lib/simplegit.rb | 5 -----

1 file changed, 5 deletions(-)


commit a11bef06a3f659402fe7563abf99ad00de2209e6

Author: Scott Chacon

Date: Sat Mar 15 10:31:28 2008 -0700


first commit


README | 6 ++++++

Rakefile | 23 +++++++++++++++++++++++

lib/simplegit.rb | 25 +++++++++++++++++++++++++

3 files changed, 54 insertions(+)

Как вы видите, опция --stat печатает под каждым из коммитов список и количество измененных файлов, а также сколько строк в каждом из файлов было добавлено и удалено. В конце можно увидеть суммарную таблицу изменений.

Следующей действительно полезной опцией является --pretty. Эта опция меняет формат вывода. Существует несколько встроенных вариантов отображения. Например, опция oneline печатает каждый коммит в одну строку, что может быть очень удобным если вы просматриваете большое количество коммитов. К тому же, опции short, full и fuller делают вывод приблизительно в том же формате, но с меньшим или большим количеством информации соответственно:

$ git log --pretty=oneline

ca82a6dff817ec66f44342007202690a93763949 changed the version number