X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;ds=sidebyside;f=Documentation%2Fgit-commit.txt;h=38df59ce2357fcd37810b2aaca9d759e9138e654;hb=3adac0afe2f27aead02ed5dcf918e42e2172c3a4;hp=5b1b4d37804fed9ee353eda1b3a093e692e828c6;hpb=64491e1ea95acde1aa77db539ba498593a0fcbc5;p=git.git diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt index 5b1b4d37..38df59ce 100644 --- a/Documentation/git-commit.txt +++ b/Documentation/git-commit.txt @@ -9,7 +9,8 @@ SYNOPSIS -------- [verse] 'git-commit' [-a] [-s] [-v] [(-c | -C) | -F | -m ] - [-e] [--author ] [--] [[-i | -o ]...] + [--no-verify] [--amend] [-e] [--author ] + [--] [[-i | -o ]...] DESCRIPTION ----------- @@ -18,6 +19,10 @@ Updates the index file for given paths, or all modified files if VISUAL and EDITOR environment variables to edit the commit log message. +Several environment variable are used during commits. They are +documented in gitlink:git-commit-tree[1]. + + This command can run `commit-msg`, `pre-commit`, and `post-commit` hooks. See link:hooks.html[hooks] for more information. @@ -67,6 +72,28 @@ OPTIONS commit log message unmodified. This option lets you further edit the message taken from these sources. +--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: +------ + $ git reset --soft HEAD^ + $ ... do something else to come up with the right tree ... + $ git commit -c ORIG_HEAD + +------ +but can be used to amend a merge commit. +-- + -i|--include:: Instead of committing only the files specified on the command line, update them in the index file and then @@ -79,33 +106,18 @@ OPTIONS index and the latest commit does not match on the specified paths to avoid confusion. ---:: +\--:: Do not interpret any more arguments as options. ...:: Files to be committed. The meaning of these is different between `--include` and `--only`. Without - either, it defaults `--include` semantics. + either, it defaults `--only` semantics. If you make a commit and then found a mistake immediately after that, you can recover from it with gitlink:git-reset[1]. -WARNING -------- - -The 1.2.0 and its maintenance series 1.2.X will keep the -traditional `--include` semantics as the default when neither -`--only` nor `--include` is specified and `paths...` are given. -This *will* change during the development towards 1.3.0 in the -'master' branch of `git.git` repository. If you are using this -command in your scripts, and you depend on the traditional -`--include` semantics, please update them to explicitly ask for -`--include` semantics. Also if you are used to making partial -commit using `--include` semantics, please train your fingers to -say `git commit --include paths...` (or `git commit -i paths...`). - - Discussion ---------- @@ -121,7 +133,7 @@ even the command is invoked from a subdirectory. That is, update the specified paths to the index and then commit the whole tree. -`git commit --only paths...` largely bypasses the index file and +`git commit paths...` largely bypasses the index file and commits only the changes made to the specified paths. It has however several safety valves to prevent confusion.