.nf
\fIgit\-commit\fR [\-a] [\-s] [\-v] [(\-c | \-C) <commit> | \-F <file> | \-m <msg>]
- [\-e] [\-\-author <author>] [\-\-] [[\-i | \-o ]<file>...]
+ [\-\-no\-verify] [\-\-amend] [\-e] [\-\-author <author>]
+ [\-\-] [[\-i | \-o ]<file>...]
.fi
.SH "DESCRIPTION"
\-e|\-\-edit
The message taken from file with \-F, command line with \-m, and from file with \-C are usually used as the commit log message unmodified\&. This option lets you further edit the message taken from these sources\&.
+.TP
+\-\-amend
+Used to amend the tip of the current branch\&. Prepare the tree object you would want to replace the latest commit as usual (this includes the usual \-i/\-o and explicit paths), and the commit log editor is seeded with the commit message from the tip of the current branch\&. The commit you create replaces the current tip -- if it was a merge, it will have the parents of the current tip as parents -- so the current top commit is discarded\&.
+
+It is a rough equivalent for:
+
+
+.nf
+ $ git reset \-\-soft HEAD^
+ $ \&.\&.\&. do something else to come up with the right tree \&.\&.\&.
+ $ git commit \-c ORIG_HEAD
+.fi
+but can be used to amend a merge commit\&.
+
.TP
\-i|\-\-include
Instead of committing only the files specified on the command line, update them in the index file and then commit the whole index\&. This is the traditional behaviour\&.
\-\-pickaxe\-all
When \-S finds a change, show all the changes in that changeset, not just the files that contain the change in <string>\&.
+.TP
+\-\-pickaxe\-regex
+Make the <string> not a plain string but an extended POSIX regex to match\&.
+
.TP
\-O<orderfile>
Output the patch in the order specified in the <orderfile>, which has one shell glob pattern per line\&.
An output line is formatted this way:
-.IP
+.nf
in\-place edit :100644 100644 bcd1234\&.\&.\&. 0123456\&.\&.\&. M file0
copy\-edit :100644 100644 abcd123\&.\&.\&. 1234567\&.\&.\&. C68 file1 file2
rename\-edit :100644 100644 abcd123\&.\&.\&. 1234567\&.\&.\&. R86 file1 file3
create :000000 100644 0000000\&.\&.\&. 1234567\&.\&.\&. A file4
delete :100644 000000 1234567\&.\&.\&. 0000000\&.\&.\&. D file5
unmerged :000000 000000 0000000\&.\&.\&. 0000000\&.\&.\&. U file6
+.fi
+
That is, from the left to the right:
Example:
-.IP
+.nf
:100644 100644 5be4a4\&.\&.\&.\&.\&.\&. 000000\&.\&.\&.\&.\&.\&. M file\&.c
+.fi
+
When \-z option is not used, TAB, LF, and backslash characters in pathnames are represented as \\t, \\n, and \\\\, respectively\&.
git\-diff\-tree and git\-diff\-files can take \fI\-c\fR or \fI\-\-cc\fR option to produce \fIcombined diff\fR, which looks like this:
-.IP
+.nf
diff \-\-combined describe\&.c
@@@ +98,7 @@@
return (a_date > b_date) ? \-1 : (a_date == b_date) ? 0 : 1;
{
+ unsigned char sha1[20];
+ struct commit *cmit;
+.fi
+
Unlike the traditional \fIunified\fR diff format, which shows two files A and B with a single column that has \- (minus -- appears in A but removed in B), + (plus -- missing in A but added to B), or (space -- unchanged) prefix, this format compares two or more files file1, file2,... with one file X, and shows how X differs from each of fileN\&. One column for each of fileN is prepended to the output line to note how X's line is different from it\&.
\-\-pickaxe\-all
When \-S finds a change, show all the changes in that changeset, not just the files that contain the change in <string>\&.
+.TP
+\-\-pickaxe\-regex
+Make the <string> not a plain string but an extended POSIX regex to match\&.
+
.TP
\-O<orderfile>
Output the patch in the order specified in the <orderfile>, which has one shell glob pattern per line\&.
An output line is formatted this way:
-.IP
+.nf
in\-place edit :100644 100644 bcd1234\&.\&.\&. 0123456\&.\&.\&. M file0
copy\-edit :100644 100644 abcd123\&.\&.\&. 1234567\&.\&.\&. C68 file1 file2
rename\-edit :100644 100644 abcd123\&.\&.\&. 1234567\&.\&.\&. R86 file1 file3
create :000000 100644 0000000\&.\&.\&. 1234567\&.\&.\&. A file4
delete :100644 000000 1234567\&.\&.\&. 0000000\&.\&.\&. D file5
unmerged :000000 000000 0000000\&.\&.\&. 0000000\&.\&.\&. U file6
+.fi
+
That is, from the left to the right:
Example:
-.IP
+.nf
:100644 100644 5be4a4\&.\&.\&.\&.\&.\&. 000000\&.\&.\&.\&.\&.\&. M file\&.c
+.fi
+
When \-z option is not used, TAB, LF, and backslash characters in pathnames are represented as \\t, \\n, and \\\\, respectively\&.
git\-diff\-tree and git\-diff\-files can take \fI\-c\fR or \fI\-\-cc\fR option to produce \fIcombined diff\fR, which looks like this:
-.IP
+.nf
diff \-\-combined describe\&.c
@@@ +98,7 @@@
return (a_date > b_date) ? \-1 : (a_date == b_date) ? 0 : 1;
{
+ unsigned char sha1[20];
+ struct commit *cmit;
+.fi
+
Unlike the traditional \fIunified\fR diff format, which shows two files A and B with a single column that has \- (minus -- appears in A but removed in B), + (plus -- missing in A but added to B), or (space -- unchanged) prefix, this format compares two or more files file1, file2,... with one file X, and shows how X differs from each of fileN\&. One column for each of fileN is prepended to the output line to note how X's line is different from it\&.
\-\-pickaxe\-all
When \-S finds a change, show all the changes in that changeset, not just the files that contain the change in <string>\&.
+.TP
+\-\-pickaxe\-regex
+Make the <string> not a plain string but an extended POSIX regex to match\&.
+
.TP
\-O<orderfile>
Output the patch in the order specified in the <orderfile>, which has one shell glob pattern per line\&.
\-\-pickaxe\-all
When \-S finds a change, show all the changes in that changeset, not just the files that contain the change in <string>\&.
+.TP
+\-\-pickaxe\-regex
+Make the <string> not a plain string but an extended POSIX regex to match\&.
+
.TP
\-O<orderfile>
Output the patch in the order specified in the <orderfile>, which has one shell glob pattern per line\&.
which tells you that the last commit changed just one file (it's from this one:
-.IP
+.nf
commit 3c6f7ca19ad4043e9e72fa94106f352897e651a8
tree 5319e4d609cdd282069cc4dce33c1db559539b03
parent b4e628ea30d5ab3606119d2ea5caeab141d38df7
Once I do the reference tracking, I'll also make it print out all the
HEAD commits it finds, which is even more interesting\&.
+.fi
+
in case you care)\&.
An output line is formatted this way:
-.IP
+.nf
in\-place edit :100644 100644 bcd1234\&.\&.\&. 0123456\&.\&.\&. M file0
copy\-edit :100644 100644 abcd123\&.\&.\&. 1234567\&.\&.\&. C68 file1 file2
rename\-edit :100644 100644 abcd123\&.\&.\&. 1234567\&.\&.\&. R86 file1 file3
create :000000 100644 0000000\&.\&.\&. 1234567\&.\&.\&. A file4
delete :100644 000000 1234567\&.\&.\&. 0000000\&.\&.\&. D file5
unmerged :000000 000000 0000000\&.\&.\&. 0000000\&.\&.\&. U file6
+.fi
+
That is, from the left to the right:
Example:
-.IP
+.nf
:100644 100644 5be4a4\&.\&.\&.\&.\&.\&. 000000\&.\&.\&.\&.\&.\&. M file\&.c
+.fi
+
When \-z option is not used, TAB, LF, and backslash characters in pathnames are represented as \\t, \\n, and \\\\, respectively\&.
git\-diff\-tree and git\-diff\-files can take \fI\-c\fR or \fI\-\-cc\fR option to produce \fIcombined diff\fR, which looks like this:
-.IP
+.nf
diff \-\-combined describe\&.c
@@@ +98,7 @@@
return (a_date > b_date) ? \-1 : (a_date == b_date) ? 0 : 1;
{
+ unsigned char sha1[20];
+ struct commit *cmit;
+.fi
+
Unlike the traditional \fIunified\fR diff format, which shows two files A and B with a single column that has \- (minus -- appears in A but removed in B), + (plus -- missing in A but added to B), or (space -- unchanged) prefix, this format compares two or more files file1, file2,... with one file X, and shows how X differs from each of fileN\&. One column for each of fileN is prepended to the output line to note how X's line is different from it\&.