You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.7 KiB
95 lines
2.7 KiB
4 years ago
|
= History!
|
||
|
Apostolos rootApostolos@swarmlab.io
|
||
|
// Metadata:
|
||
|
:description: Git instructions
|
||
|
:keywords: git
|
||
|
ifndef::env-browser[]
|
||
|
:data-uri:
|
||
|
endif::[]
|
||
|
:images-cdn: http://localhost:3080/images
|
||
|
:toc: right
|
||
|
:toc-title: Table of contents
|
||
|
:toclevels: 4
|
||
|
:source-highlighter: highlight
|
||
|
:no-header-footer:
|
||
|
:nofooter:
|
||
|
:last-update-label!:
|
||
|
:icons: font
|
||
|
:sectnums:
|
||
|
:url_mongodb: https://en.wikipedia.org/wiki/MongoDB
|
||
|
|
||
|
:hardbreaks:
|
||
|
|
||
|
{empty} +
|
||
|
{empty}
|
||
|
|
||
|
:!hardbreaks:
|
||
|
|
||
|
== Viewing the Commit History
|
||
|
|
||
|
After you have created several commits, or if you have cloned a repository with an existing commit history, you’ll probably want to look back to see what has happened.
|
||
|
|
||
|
=== git log
|
||
|
|
||
|
The most basic and powerful tool to do this is the *git log* command.
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
git log
|
||
|
----
|
||
|
|
||
|
By default, with no arguments, git log lists the commits made in that repository in reverse chronological order; that is, the most recent commits show up first.
|
||
|
|
||
|
|
||
|
A huge number and variety of options to the git log command are available to show you exactly what you’re looking for. Here, we’ll show you some of the most popular.
|
||
|
|
||
|
|
||
|
=== git log -p
|
||
|
|
||
|
One of the more helpful options is -p or --patch, which shows the difference (the patch output) introduced in each commit.
|
||
|
|
||
|
You can also limit the number of log entries displayed, such as using -2 to show only the last two entries.
|
||
|
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
git log -p -2
|
||
|
----
|
||
|
|
||
|
|
||
|
This option displays the same information but with a diff directly following each entry. This is very helpful for code review or to quickly browse what happened during a series of commits that a collaborator has added.
|
||
|
|
||
|
=== git log -stat
|
||
|
|
||
|
You can also use a series of summarizing options with git log. For example, if you want to see some abbreviated stats for each commit, you can use the --stat option:
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
git log --stat
|
||
|
----
|
||
|
|
||
|
The --stat option prints below each commit entry a list of modified files, how many files were changed, and how many lines in those files were added and removed. It also puts a summary of the information at the end.
|
||
|
|
||
|
=== git log --pretty
|
||
|
|
||
|
Another really useful option is --pretty. This option changes the log output to formats other than the default.
|
||
|
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
git log --pretty=oneline
|
||
|
----
|
||
|
|
||
|
The most interesting option value is format, which allows you to specify your own log output format. This is especially useful when you’re generating output for machine parsing — because you specify the format explicitly, you know it won’t change with updates to Git:
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
git log --pretty=format:"%h - %an, %ar : %s"
|
||
|
git log --pretty=format:"%h %s" --graph
|
||
|
----
|
||
|
|
||
|
|
||
|
"Pro Git book" by Scott Chacon and Ben Straub , used under CC BY-NC-SA 3.0 / Desaturated from original
|
||
|
|
||
|
|