This is an old revision of the document!
Overview
Miscellaneous notes on git commit, using the Linux kernel source as an example.
Examining what is about to be committed
git status
See which files are staged for committing:
$ git status On branch master Your branch is up to date with 'origin/master'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: MAINTAINERS modified: README Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: Makefile $
git diff --cached
To see the entire difference about to be committed:
$ git diff --cached [or --staged]
diff --git a/MAINTAINERS b/MAINTAINERS
index 41ce5f4ad838..202d67e2facb 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1,4 +1,4 @@
-
+New stuff in MAINTAINERS
List of maintainers and how to submit kernel changes
diff --git a/README b/README
index 669ac7c32292..3db2a5b35089 100644
--- a/README
+++ b/README
@@ -1,3 +1,5 @@
+New stuff in README
+
Linux kernel
============
git diff --cached --stat
For a histogram-style summary, add --stat:
$ git diff --cached --stat MAINTAINERS | 2 +- README | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) $
Template
This might be worth setting at the system level.
$ git config --global commit.template ~/.gitmessage.txt
Example ~/.gitmessage.txt:
Subject line (try to keep under 60 characters) Multi-line description of commit, feel free to be detailed. [Ticket: X]