Skip to content

Commit

Permalink
Squash some git pieces
Browse files Browse the repository at this point in the history
  • Loading branch information
Chalarangelo committed May 23, 2023
1 parent 076d572 commit 36d24ed
Show file tree
Hide file tree
Showing 7 changed files with 74 additions and 82 deletions.
2 changes: 1 addition & 1 deletion snippets/git/s/automatic-push-upstream.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Tip: Automate upstream branch creation"
title: "Tip: Automate Git upstream branch creation"
shortTitle: Automate upstream branch creation
type: tip
language: git
Expand Down
25 changes: 0 additions & 25 deletions snippets/git/s/update-commit-contents.md

This file was deleted.

49 changes: 49 additions & 0 deletions snippets/git/s/update-commit-message-or-contents.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
title: Change the last commit's message or contents in Git
shortTitle: Amend last commit
type: story
language: git
tags: [commit]
author: chalarangelo
cover: greek-coffee
excerpt: Learn how to effortlesly amend the last commit's message or contents using Git and fix any mistakes you might have made.
dateModified: 2023-05-23T21:10:59+03:00
---

Have you ever wanted to change the last commit's message or contents? Maybe you forgot to add a file, or you misspelled something in the commit message. Whatever the reason, Git has you covered with the `--amend` option for the `git commit` command.

### Change the last commit's message

If you only want to change the last commit's message, you can use `--amend` and simply add the `-m` option followed by the new message. This will replace the last commit's message with the new one.

```shell
# Syntax: git commit --amend -m <message>

git add .
git commit -m "Fix the network bug"
# Creates the commit: 3050fc0 Fix network bug

git commit --amend -m "Fix the network bug"
# The last commit's message is now "Fix the network bug"
# This also changes its SHA-1 checksum
```

### Change the last commit's contents

If you want to change the last commit's contents, you can use `--amend` after staging the changes you want to add to the last commit. This will add any staged changes to the last commit, without changing its message.

If you want to keep the same commit message and only add the staged changes, you can use `--no-edit` to prevent Git from opening the default editor to change the commit message.

```shell
# Syntax: git commit --amend --no-edit

git add .
git commit -m "Fix the network bug"
# Creates the commit: 3050fc0 Fix network bug

# Edit or add files
git add .
git commit --amend --no-edit
# The last commit includes the edited/added files
# This also changes its SHA-1 checksum
```
23 changes: 0 additions & 23 deletions snippets/git/s/update-commit-message.md

This file was deleted.

22 changes: 0 additions & 22 deletions snippets/git/s/view-commits-summary-no-merges.md

This file was deleted.

31 changes: 22 additions & 9 deletions snippets/git/s/view-commits-summary.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,36 @@
---
title: View a short summary of commits
type: snippet
title: View a short summary of Git commits
shortTitle: Short commits summary
type: story
language: git
tags: [repository,commit]
author: chalarangelo
cover: dark-city
dateModified: 2021-04-13T21:10:59+03:00
excerpt: Learn how to view a short summary of your Git commits using git log.
dateModified: 2023-05-23T21:10:59+03:00
---

Prints a short summary of all commits.
One of the most common things you might need to do when working with Git is to view a short summary of your commits. While `git log` is the go-to command for this, it can be a bit verbose at times. Luckily, it provides a plethora of options to help you customize its output.

- Use `git log --oneline` to list a short summary of all commits.
### Short summary of all commits

One of these is `--oneline`, which is actually a shorthand for `--pretty=oneline --abbrev-commit`. It prints a short summary of all commits, with each commit being printed on a single line.

```shell
git log --oneline
# d540ba1 Merge network bug fix
# 3050fc0 Fix network bug
# c191f90 Initial commit
```

Notice the short, 7-character commit identifiers. This is because of the `--abbrev-commit` option, which abbreviates the commit SHA-1 checksum to 7 characters. This shorter string is enough to uniquely identify a commit.

### Short summary of commits without merges

Other options can be used in conjunction with `--oneline` to further customize the output. For example, you can use `--no-merges` to exclude merge commits from the output.

```shell
git log --oneline
# d540ba1ab Merge network bug fix
# 3050fc0de Fix network bug
# c191f90c7 Initial commit
git log --oneline --no-merges
# 3050fc0 Fix network bug
# c191f90 Initial commit
```
4 changes: 2 additions & 2 deletions snippets/git/s/view-undo-history.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: View "undo" history
title: View Git "undo" history
shortTitle: Undo history
type: story
language: git
tags: [repository,branch]
Expand All @@ -15,7 +16,6 @@ To view you "undo" history, you can use `git reflog`, which displays the git ref

```shell
git reflog

# b6a4f9d6ff9 (HEAD -> patch-1, origin/patch-1) HEAD@{0}: Update docs
# 3050fc0de HEAD@{1}: rebase -i (finish): returning to refs/heads/patch-1
# 3050fc0de HEAD@{2}: rebase -i (pick): Fix network bug
Expand Down

0 comments on commit 36d24ed

Please sign in to comment.