freeCodeCamp/guide/english/git/git-log/index.md

124 lines
3.8 KiB
Markdown
Raw Normal View History

2018-10-12 19:37:13 +00:00
---
title: Git Log
---
## Git Log
The ```git log``` command displays all of the commits in a respository's history.
By default, the command displays each commit's:
* Secure Hash Algorithm (SHA)
* author
* date
* commit message
### Navigating Git Log
Git uses the Less terminal pager to page through the commit history. You can navigate it with the following commands:
* to scroll down by one line, use j or ↓
* to scroll up by one line, use k or ↑
* to scroll down by one page, use the spacebar or the Page Down button
* to scroll up by one page, use b or the Page Up button
* to quit the log, use q
### Git Log Flags
You can customize the information presented by ```git log``` using flags.
#### --oneline
```git log --oneline```
The ```--oneline``` flag causes ```git log ``` to display
* one commit per line
* the first seven characters of the SHA
* the commit message
#### --stat
```git log --stat```
The ```--stat``` flag causes ```git log ``` to display
* the files that were modified in each commit
* the number of lines added or removed
* a summary line with the total number of files and lines changed
#### --patch or -p
```git log --patch```
or, the shorter version
```git log -p```
The ```--patch``` flag causes ```git log ``` to display
* the files that you modified
* the location of the lines that you added or removed
* the specific changes that you made
### View specified number of commits by author
To view a specified number of commits by an author to the current repo (optionally in a prettified format), the following command can be used
```git log --pretty=format:"%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset" -n {NUMBER_OF_COMMITS} --author="{AUTHOR_NAME}" --all```
#### Start at a specific commit
To start ```git log``` at a specific commit, add the SHA:
```git log 7752b22```
This will display the commit with the SHA 7752b22 and all of the commits made before that commit. You can combine this with any of the other flags.
#### --graph
```git log --graph```
The ```--graph``` flag enables you to view your ```git log ``` as a graph. To make things things interesting, you can combine this command with ```--oneline``` option you learned from above.
```git log --graph --oneline```
The output would be similar to,
* 64e6db0 Update index.md
* b592012 Update Python articles (#5030)
* ecbf9d3 Add latest version and remove duplicate link (#8860)
* 7e3934b Add hint for Compose React Components (#8705)
* 99b7758 Added more frameworks (#8842)
* c4e6a84 Add hint for "Create a Component with Composition" (#8704)
* 907b004 Merge branch 'master' of github.com:freeCodeCamp/guide
|\
| * 275b6d1 Update index.md
* | cb74308 Merge branch 'dogb3rt-patch-3'
|\ \
| |/
|/|
| * 98015b6 fix merge conflicts after folder renaming
| |\
|/ /
| * fa83460 Update index.md
* | 6afb3b5 rename illegally formatted folder name (#8762)
* | 64b1fe4 CSS3: border-radius property (#8803)
One of the benefit of using this command is that it enables you to get a overview of how commits have merged and how the git history was created.
There are may other options you could use in combination with ```--graph```. Couple of them are ```--decorate``` and ```--all```. Make sure to try these out too. And refer to [documantation](https://git-scm.com/docs/git-log) for more helpful info.
#### More Information:
- [Git Basics - Viewing the Commit History](https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History)
- [Git Log](https://git-scm.com/docs/git-log)
##### Other Resources on Git in guide.freecodecamp.org
- [Git Merge](../git-merge/index.md)
- [Git Checkout](../git-checkout/index.md)
- [Git Commit](../git-commit/index.md)
- [Git Stash](../git-stash/index.md)
- [Git Branch](../git-branch/index.md)