171 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
| git-commit(1)
 | |
| =============
 | |
| 
 | |
| NAME
 | |
| ----
 | |
| git-commit - Record your changes
 | |
| 
 | |
| SYNOPSIS
 | |
| --------
 | |
| [verse]
 | |
| 'git-commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>]
 | |
| 	   [--no-verify] [--amend] [-e] [--author <author>]
 | |
| 	   [--] [[-i | -o ]<file>...]
 | |
| 
 | |
| DESCRIPTION
 | |
| -----------
 | |
| Updates the index file for given paths, or all modified files if
 | |
| '-a' is specified, and makes a commit object.  The command
 | |
| 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.
 | |
| 
 | |
| OPTIONS
 | |
| -------
 | |
| -a|--all::
 | |
| 	Update all paths in the index file.  This flag notices
 | |
| 	files that have been modified and deleted, but new files
 | |
| 	you have not told git about are not affected.
 | |
| 
 | |
| -c or -C <commit>::
 | |
| 	Take existing commit object, and reuse the log message
 | |
| 	and the authorship information (including the timestamp)
 | |
| 	when creating the commit.  With '-C', the editor is not
 | |
| 	invoked; with '-c' the user can further edit the commit
 | |
| 	message.
 | |
| 
 | |
| -F <file>::
 | |
| 	Take the commit message from the given file.  Use '-' to
 | |
| 	read the message from the standard input.
 | |
| 
 | |
| --author <author>::
 | |
| 	Override the author name used in the commit.  Use
 | |
| 	`A U Thor <author@example.com>` format.
 | |
| 
 | |
| -m <msg>::
 | |
| 	Use the given <msg> as the commit message.
 | |
| 
 | |
| -s|--signoff::
 | |
| 	Add Signed-off-by line at the end of the commit message.
 | |
| 
 | |
| -v|--verify::
 | |
| 	Look for suspicious lines the commit introduces, and
 | |
| 	abort committing if there is one.  The definition of
 | |
| 	'suspicious lines' is currently the lines that has
 | |
| 	trailing whitespaces, and the lines whose indentation
 | |
| 	has a SP character immediately followed by a TAB
 | |
| 	character.  This is the default.
 | |
| 
 | |
| -n|--no-verify::
 | |
| 	The opposite of `--verify`.
 | |
| 
 | |
| -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.
 | |
| 
 | |
| --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
 | |
| 	commit the whole index.  This is the traditional
 | |
| 	behaviour.
 | |
| 
 | |
| -o|--only::
 | |
| 	Commit only the files specified on the command line.
 | |
| 	This format cannot be used during a merge, nor when the
 | |
| 	index and the latest commit does not match on the
 | |
| 	specified paths to avoid confusion.
 | |
| 
 | |
| --::
 | |
| 	Do not interpret any more arguments as options.
 | |
| 
 | |
| <file>...::
 | |
| 	Files to be committed.  The meaning of these is
 | |
| 	different between `--include` and `--only`.  Without
 | |
| 	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].
 | |
| 
 | |
| 
 | |
| Discussion
 | |
| ----------
 | |
| 
 | |
| `git commit` without _any_ parameter commits the tree structure
 | |
| recorded by the current index file.  This is a whole-tree commit
 | |
| even the command is invoked from a subdirectory.
 | |
| 
 | |
| `git commit --include paths...` is equivalent to
 | |
| 
 | |
| 	git update-index --remove paths...
 | |
| 	git commit
 | |
| 
 | |
| That is, update the specified paths to the index and then commit
 | |
| the whole tree.
 | |
| 
 | |
| `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.
 | |
| 
 | |
| . It refuses to run during a merge (i.e. when
 | |
|   `$GIT_DIR/MERGE_HEAD` exists), and reminds trained git users
 | |
|   that the traditional semantics now needs -i flag.
 | |
| 
 | |
| . It refuses to run if named `paths...` are different in HEAD
 | |
|   and the index (ditto about reminding).  Added paths are OK.
 | |
|   This is because an earlier `git diff` (not `git diff HEAD`)
 | |
|   would have shown the differences since the last `git
 | |
|   update-index paths...` to the user, and an inexperienced user
 | |
|   may mistakenly think that the changes between the index and
 | |
|   the HEAD (i.e. earlier changes made before the last `git
 | |
|   update-index paths...` was done) are not being committed.
 | |
| 
 | |
| . It reads HEAD commit into a temporary index file, updates the
 | |
|   specified `paths...` and makes a commit.  At the same time,
 | |
|   the real index file is also updated with the same `paths...`.
 | |
| 
 | |
| `git commit --all` updates the index file with _all_ changes to
 | |
| the working tree, and makes a whole-tree commit, regardless of
 | |
| which subdirectory the command is invoked in.
 | |
| 
 | |
| 
 | |
| Author
 | |
| ------
 | |
| Written by Linus Torvalds <torvalds@osdl.org> and
 | |
| Junio C Hamano <junkio@cox.net>
 | |
| 
 | |
| 
 | |
| GIT
 | |
| ---
 | |
| Part of the gitlink:git[7] suite
 |