mirror of
https://github.com/git/git
synced 2024-10-30 03:58:42 +00:00
Merge remote branch 'ko/master' into jc/read-tree-cache-tree-fix
* ko/master: (2325 commits) Git 1.7.2-rc2 backmerge a few more fixes to 1.7.1.X series fix git branch -m in presence of cross devices t/t0006: specify timezone as EST5 not EST to comply with POSIX add missing && to submodule-merge testcase t/README: document more test helpers test-date: fix sscanf type conversion xdiff: optimise for no whitespace difference when ignoring whitespace. gitweb: Move evaluate_gitweb_config out of run_request parse_date: fix signedness in timezone calculation t0006: test timezone parsing rerere.txt: Document forget subcommand t/README: proposed rewording... t/README: Document the do's and don'ts of tests t/README: Add a section about skipping tests t/README: Document test_expect_code t/README: Document test_external* t/README: Document the prereq functions, and 3-arg test_* t/README: Typo: paralell -> parallel t/README: The trash is in 't/trash directory.$name' ... Conflicts: builtin-read-tree.c
This commit is contained in:
commit
037c43c68e
997 changed files with 83071 additions and 17219 deletions
1
.gitattributes
vendored
1
.gitattributes
vendored
|
@ -1,2 +1,3 @@
|
||||||
* whitespace=!indent,trail,space
|
* whitespace=!indent,trail,space
|
||||||
*.[ch] whitespace=indent,trail,space
|
*.[ch] whitespace=indent,trail,space
|
||||||
|
*.sh whitespace=indent,trail,space
|
||||||
|
|
373
.gitignore
vendored
373
.gitignore
vendored
|
@ -1,179 +1,206 @@
|
||||||
GIT-BUILD-OPTIONS
|
/GIT-BUILD-OPTIONS
|
||||||
GIT-CFLAGS
|
/GIT-CFLAGS
|
||||||
GIT-GUI-VARS
|
/GIT-GUI-VARS
|
||||||
GIT-VERSION-FILE
|
/GIT-VERSION-FILE
|
||||||
git
|
/bin-wrappers/
|
||||||
git-add
|
/git
|
||||||
git-add--interactive
|
/git-add
|
||||||
git-am
|
/git-add--interactive
|
||||||
git-annotate
|
/git-am
|
||||||
git-apply
|
/git-annotate
|
||||||
git-archimport
|
/git-apply
|
||||||
git-archive
|
/git-archimport
|
||||||
git-bisect
|
/git-archive
|
||||||
git-bisect--helper
|
/git-bisect
|
||||||
git-blame
|
/git-bisect--helper
|
||||||
git-branch
|
/git-blame
|
||||||
git-bundle
|
/git-branch
|
||||||
git-cat-file
|
/git-bundle
|
||||||
git-check-attr
|
/git-cat-file
|
||||||
git-check-ref-format
|
/git-check-attr
|
||||||
git-checkout
|
/git-check-ref-format
|
||||||
git-checkout-index
|
/git-checkout
|
||||||
git-cherry
|
/git-checkout-index
|
||||||
git-cherry-pick
|
/git-cherry
|
||||||
git-clean
|
/git-cherry-pick
|
||||||
git-clone
|
/git-clean
|
||||||
git-commit
|
/git-clone
|
||||||
git-commit-tree
|
/git-commit
|
||||||
git-config
|
/git-commit-tree
|
||||||
git-count-objects
|
/git-config
|
||||||
git-cvsexportcommit
|
/git-count-objects
|
||||||
git-cvsimport
|
/git-cvsexportcommit
|
||||||
git-cvsserver
|
/git-cvsimport
|
||||||
git-daemon
|
/git-cvsserver
|
||||||
git-diff
|
/git-daemon
|
||||||
git-diff-files
|
/git-diff
|
||||||
git-diff-index
|
/git-diff-files
|
||||||
git-diff-tree
|
/git-diff-index
|
||||||
git-difftool
|
/git-diff-tree
|
||||||
git-difftool--helper
|
/git-difftool
|
||||||
git-describe
|
/git-difftool--helper
|
||||||
git-fast-export
|
/git-describe
|
||||||
git-fast-import
|
/git-fast-export
|
||||||
git-fetch
|
/git-fast-import
|
||||||
git-fetch--tool
|
/git-fetch
|
||||||
git-fetch-pack
|
/git-fetch--tool
|
||||||
git-filter-branch
|
/git-fetch-pack
|
||||||
git-fmt-merge-msg
|
/git-filter-branch
|
||||||
git-for-each-ref
|
/git-fmt-merge-msg
|
||||||
git-format-patch
|
/git-for-each-ref
|
||||||
git-fsck
|
/git-format-patch
|
||||||
git-fsck-objects
|
/git-fsck
|
||||||
git-gc
|
/git-fsck-objects
|
||||||
git-get-tar-commit-id
|
/git-gc
|
||||||
git-grep
|
/git-get-tar-commit-id
|
||||||
git-hash-object
|
/git-grep
|
||||||
git-help
|
/git-hash-object
|
||||||
git-http-fetch
|
/git-help
|
||||||
git-http-push
|
/git-http-backend
|
||||||
git-imap-send
|
/git-http-fetch
|
||||||
git-index-pack
|
/git-http-push
|
||||||
git-init
|
/git-imap-send
|
||||||
git-init-db
|
/git-index-pack
|
||||||
git-instaweb
|
/git-init
|
||||||
git-log
|
/git-init-db
|
||||||
git-lost-found
|
/git-instaweb
|
||||||
git-ls-files
|
/git-log
|
||||||
git-ls-remote
|
/git-lost-found
|
||||||
git-ls-tree
|
/git-ls-files
|
||||||
git-mailinfo
|
/git-ls-remote
|
||||||
git-mailsplit
|
/git-ls-tree
|
||||||
git-merge
|
/git-mailinfo
|
||||||
git-merge-base
|
/git-mailsplit
|
||||||
git-merge-index
|
/git-merge
|
||||||
git-merge-file
|
/git-merge-base
|
||||||
git-merge-tree
|
/git-merge-index
|
||||||
git-merge-octopus
|
/git-merge-file
|
||||||
git-merge-one-file
|
/git-merge-tree
|
||||||
git-merge-ours
|
/git-merge-octopus
|
||||||
git-merge-recursive
|
/git-merge-one-file
|
||||||
git-merge-resolve
|
/git-merge-ours
|
||||||
git-merge-subtree
|
/git-merge-recursive
|
||||||
git-mergetool
|
/git-merge-resolve
|
||||||
git-mergetool--lib
|
/git-merge-subtree
|
||||||
git-mktag
|
/git-mergetool
|
||||||
git-mktree
|
/git-mergetool--lib
|
||||||
git-name-rev
|
/git-mktag
|
||||||
git-mv
|
/git-mktree
|
||||||
git-pack-redundant
|
/git-name-rev
|
||||||
git-pack-objects
|
/git-mv
|
||||||
git-pack-refs
|
/git-notes
|
||||||
git-parse-remote
|
/git-pack-redundant
|
||||||
git-patch-id
|
/git-pack-objects
|
||||||
git-peek-remote
|
/git-pack-refs
|
||||||
git-prune
|
/git-parse-remote
|
||||||
git-prune-packed
|
/git-patch-id
|
||||||
git-pull
|
/git-peek-remote
|
||||||
git-push
|
/git-prune
|
||||||
git-quiltimport
|
/git-prune-packed
|
||||||
git-read-tree
|
/git-pull
|
||||||
git-rebase
|
/git-push
|
||||||
git-rebase--interactive
|
/git-quiltimport
|
||||||
git-receive-pack
|
/git-read-tree
|
||||||
git-reflog
|
/git-rebase
|
||||||
git-relink
|
/git-rebase--interactive
|
||||||
git-remote
|
/git-receive-pack
|
||||||
git-repack
|
/git-reflog
|
||||||
git-repo-config
|
/git-relink
|
||||||
git-request-pull
|
/git-remote
|
||||||
git-rerere
|
/git-remote-curl
|
||||||
git-reset
|
/git-remote-http
|
||||||
git-rev-list
|
/git-remote-https
|
||||||
git-rev-parse
|
/git-remote-ftp
|
||||||
git-revert
|
/git-remote-ftps
|
||||||
git-rm
|
/git-remote-testgit
|
||||||
git-send-email
|
/git-repack
|
||||||
git-send-pack
|
/git-replace
|
||||||
git-sh-setup
|
/git-repo-config
|
||||||
git-shell
|
/git-request-pull
|
||||||
git-shortlog
|
/git-rerere
|
||||||
git-show
|
/git-reset
|
||||||
git-show-branch
|
/git-rev-list
|
||||||
git-show-index
|
/git-rev-parse
|
||||||
git-show-ref
|
/git-revert
|
||||||
git-stage
|
/git-rm
|
||||||
git-stash
|
/git-send-email
|
||||||
git-status
|
/git-send-pack
|
||||||
git-stripspace
|
/git-sh-setup
|
||||||
git-submodule
|
/git-shell
|
||||||
git-svn
|
/git-shortlog
|
||||||
git-symbolic-ref
|
/git-show
|
||||||
git-tag
|
/git-show-branch
|
||||||
git-tar-tree
|
/git-show-index
|
||||||
git-unpack-file
|
/git-show-ref
|
||||||
git-unpack-objects
|
/git-stage
|
||||||
git-update-index
|
/git-stash
|
||||||
git-update-ref
|
/git-status
|
||||||
git-update-server-info
|
/git-stripspace
|
||||||
git-upload-archive
|
/git-submodule
|
||||||
git-upload-pack
|
/git-svn
|
||||||
git-var
|
/git-symbolic-ref
|
||||||
git-verify-pack
|
/git-tag
|
||||||
git-verify-tag
|
/git-tar-tree
|
||||||
git-web--browse
|
/git-unpack-file
|
||||||
git-whatchanged
|
/git-unpack-objects
|
||||||
git-write-tree
|
/git-update-index
|
||||||
git-core-*/?*
|
/git-update-ref
|
||||||
gitk-wish
|
/git-update-server-info
|
||||||
gitweb/gitweb.cgi
|
/git-upload-archive
|
||||||
test-chmtime
|
/git-upload-pack
|
||||||
test-ctype
|
/git-var
|
||||||
test-date
|
/git-verify-pack
|
||||||
test-delta
|
/git-verify-tag
|
||||||
test-dump-cache-tree
|
/git-web--browse
|
||||||
test-genrandom
|
/git-whatchanged
|
||||||
test-match-trees
|
/git-write-tree
|
||||||
test-parse-options
|
/git-core-*/?*
|
||||||
test-path-utils
|
/gitk-git/gitk-wish
|
||||||
test-sha1
|
/gitweb/GITWEB-BUILD-OPTIONS
|
||||||
test-sigchain
|
/gitweb/gitweb.cgi
|
||||||
common-cmds.h
|
/gitweb/gitweb.min.*
|
||||||
|
/test-chmtime
|
||||||
|
/test-ctype
|
||||||
|
/test-date
|
||||||
|
/test-delta
|
||||||
|
/test-dump-cache-tree
|
||||||
|
/test-genrandom
|
||||||
|
/test-index-version
|
||||||
|
/test-match-trees
|
||||||
|
/test-parse-options
|
||||||
|
/test-path-utils
|
||||||
|
/test-run-command
|
||||||
|
/test-sha1
|
||||||
|
/test-sigchain
|
||||||
|
/common-cmds.h
|
||||||
*.tar.gz
|
*.tar.gz
|
||||||
*.dsc
|
*.dsc
|
||||||
*.deb
|
*.deb
|
||||||
git.spec
|
/git.spec
|
||||||
*.exe
|
*.exe
|
||||||
*.[aos]
|
*.[aos]
|
||||||
*.py[co]
|
*.py[co]
|
||||||
config.mak
|
.depend/
|
||||||
autom4te.cache
|
*+
|
||||||
config.cache
|
/config.mak
|
||||||
config.log
|
/autom4te.cache
|
||||||
config.status
|
/config.cache
|
||||||
config.mak.autogen
|
/config.log
|
||||||
config.mak.append
|
/config.status
|
||||||
configure
|
/config.mak.autogen
|
||||||
tags
|
/config.mak.append
|
||||||
TAGS
|
/configure
|
||||||
cscope*
|
/tags
|
||||||
|
/TAGS
|
||||||
|
/cscope*
|
||||||
|
*.obj
|
||||||
|
*.lib
|
||||||
|
*.sln
|
||||||
|
*.suo
|
||||||
|
*.ncb
|
||||||
|
*.vcproj
|
||||||
|
*.user
|
||||||
|
*.idb
|
||||||
|
*.pdb
|
||||||
|
/Debug/
|
||||||
|
/Release/
|
||||||
|
|
5
.mailmap
5
.mailmap
|
@ -5,6 +5,7 @@
|
||||||
# same person appearing not to be so.
|
# same person appearing not to be so.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
Alex Bennée <kernel-hacker@bennee.com>
|
||||||
Alexander Gavrilov <angavrilov@gmail.com>
|
Alexander Gavrilov <angavrilov@gmail.com>
|
||||||
Aneesh Kumar K.V <aneesh.kumar@gmail.com>
|
Aneesh Kumar K.V <aneesh.kumar@gmail.com>
|
||||||
Brian M. Carlson <sandals@crustytoothpaste.ath.cx>
|
Brian M. Carlson <sandals@crustytoothpaste.ath.cx>
|
||||||
|
@ -15,6 +16,7 @@ Daniel Barkalow <barkalow@iabervon.org>
|
||||||
David D. Kilzer <ddkilzer@kilzer.net>
|
David D. Kilzer <ddkilzer@kilzer.net>
|
||||||
David Kågedal <davidk@lysator.liu.se>
|
David Kågedal <davidk@lysator.liu.se>
|
||||||
David S. Miller <davem@davemloft.net>
|
David S. Miller <davem@davemloft.net>
|
||||||
|
Deskin Miller <deskinm@umich.edu>
|
||||||
Dirk Süsserott <newsletter@dirk.my1.cc>
|
Dirk Süsserott <newsletter@dirk.my1.cc>
|
||||||
Fredrik Kuivinen <freku045@student.liu.se>
|
Fredrik Kuivinen <freku045@student.liu.se>
|
||||||
H. Peter Anvin <hpa@bonde.sc.orionmulti.com>
|
H. Peter Anvin <hpa@bonde.sc.orionmulti.com>
|
||||||
|
@ -36,11 +38,13 @@ Li Hong <leehong@pku.edu.cn>
|
||||||
Lukas Sandström <lukass@etek.chalmers.se>
|
Lukas Sandström <lukass@etek.chalmers.se>
|
||||||
Martin Langhoff <martin@catalyst.net.nz>
|
Martin Langhoff <martin@catalyst.net.nz>
|
||||||
Michael Coleman <tutufan@gmail.com>
|
Michael Coleman <tutufan@gmail.com>
|
||||||
|
Michael J Gruber <git@drmicha.warpmail.net> <michaeljgruber+gmane@fastmail.fm>
|
||||||
Michael W. Olson <mwolson@gnu.org>
|
Michael W. Olson <mwolson@gnu.org>
|
||||||
Michele Ballabio <barra_cuda@katamail.com>
|
Michele Ballabio <barra_cuda@katamail.com>
|
||||||
Nanako Shiraishi <nanako3@bluebottle.com>
|
Nanako Shiraishi <nanako3@bluebottle.com>
|
||||||
Nanako Shiraishi <nanako3@lavabit.com>
|
Nanako Shiraishi <nanako3@lavabit.com>
|
||||||
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
|
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
|
||||||
|
<nico@fluxnic.net> <nico@cam.org>
|
||||||
Philippe Bruhat <book@cpan.org>
|
Philippe Bruhat <book@cpan.org>
|
||||||
Ramsay Allan Jones <ramsay@ramsay1.demon.co.uk>
|
Ramsay Allan Jones <ramsay@ramsay1.demon.co.uk>
|
||||||
René Scharfe <rene.scharfe@lsrfire.ath.cx>
|
René Scharfe <rene.scharfe@lsrfire.ath.cx>
|
||||||
|
@ -58,6 +62,7 @@ Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
|
||||||
Uwe Kleine-König <uzeisberger@io.fsforth.de>
|
Uwe Kleine-König <uzeisberger@io.fsforth.de>
|
||||||
Uwe Kleine-König <zeisberg@informatik.uni-freiburg.de>
|
Uwe Kleine-König <zeisberg@informatik.uni-freiburg.de>
|
||||||
Ville Skyttä <scop@xemacs.org>
|
Ville Skyttä <scop@xemacs.org>
|
||||||
|
Vitaly "_Vi" Shukela <public_vi@tut.by>
|
||||||
William Pursell <bill.pursell@gmail.com>
|
William Pursell <bill.pursell@gmail.com>
|
||||||
YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
|
YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
|
||||||
anonymous <linux@horizon.com>
|
anonymous <linux@horizon.com>
|
||||||
|
|
25
COPYING
25
COPYING
|
@ -22,8 +22,8 @@
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ software--to make sure the software is free for all its users. This
|
||||||
General Public License applies to most of the Free Software
|
General Public License applies to most of the Free Software
|
||||||
Foundation's software and to any other program whose authors commit to
|
Foundation's software and to any other program whose authors commit to
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
the GNU Library General Public License instead.) You can apply it to
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
your programs, too.
|
your programs, too.
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
@ -76,7 +76,7 @@ patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
The precise terms and conditions for copying, distribution and
|
||||||
modification follow.
|
modification follow.
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ above, provided that you also meet all of these conditions:
|
||||||
License. (Exception: if the Program itself is interactive but
|
License. (Exception: if the Program itself is interactive but
|
||||||
does not normally print such an announcement, your work based on
|
does not normally print such an announcement, your work based on
|
||||||
the Program is not required to print an announcement.)
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
These requirements apply to the modified work as a whole. If
|
||||||
identifiable sections of that work are not derived from the Program,
|
identifiable sections of that work are not derived from the Program,
|
||||||
and can be reasonably considered independent and separate works in
|
and can be reasonably considered independent and separate works in
|
||||||
|
@ -189,7 +189,7 @@ access to copy from a designated place, then offering equivalent
|
||||||
access to copy the source code from the same place counts as
|
access to copy the source code from the same place counts as
|
||||||
distribution of the source code, even though third parties are not
|
distribution of the source code, even though third parties are not
|
||||||
compelled to copy the source along with the object code.
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
except as expressly provided under this License. Any attempt
|
except as expressly provided under this License. Any attempt
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
@ -246,7 +246,7 @@ impose that choice.
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
This section is intended to make thoroughly clear what is believed to
|
||||||
be a consequence of the rest of this License.
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
original copyright holder who places the Program under this License
|
original copyright holder who places the Program under this License
|
||||||
|
@ -299,7 +299,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
@ -324,10 +324,9 @@ the "copyright" line and a pointer to where the full notice is found.
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License along
|
||||||
along with this program; if not, write to the Free Software
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
@ -357,5 +356,5 @@ necessary. Here is a sample; alter the names:
|
||||||
This General Public License does not permit incorporating your program into
|
This General Public License does not permit incorporating your program into
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
consider it more useful to permit linking proprietary applications with the
|
consider it more useful to permit linking proprietary applications with the
|
||||||
library. If this is what you want to do, use the GNU Library General
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License.
|
Public License instead of this License.
|
||||||
|
|
1
Documentation/.gitignore
vendored
1
Documentation/.gitignore
vendored
|
@ -8,3 +8,4 @@ gitman.info
|
||||||
howto-index.txt
|
howto-index.txt
|
||||||
doc.dep
|
doc.dep
|
||||||
cmds-*.txt
|
cmds-*.txt
|
||||||
|
manpage-base-url.xsl
|
||||||
|
|
|
@ -17,6 +17,7 @@ DOC_HTML=$(MAN_HTML)
|
||||||
ARTICLES = howto-index
|
ARTICLES = howto-index
|
||||||
ARTICLES += everyday
|
ARTICLES += everyday
|
||||||
ARTICLES += git-tools
|
ARTICLES += git-tools
|
||||||
|
ARTICLES += git-bisect-lk2009
|
||||||
# with their own formatting rules.
|
# with their own formatting rules.
|
||||||
SP_ARTICLES = howto/revert-branch-rebase howto/using-merge-subtree user-manual
|
SP_ARTICLES = howto/revert-branch-rebase howto/using-merge-subtree user-manual
|
||||||
API_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technical/api-index.txt, $(wildcard technical/api-*.txt)))
|
API_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technical/api-index.txt, $(wildcard technical/api-*.txt)))
|
||||||
|
@ -103,6 +104,25 @@ ifdef DOCBOOK_SUPPRESS_SP
|
||||||
XMLTO_EXTRA += -m manpage-suppress-sp.xsl
|
XMLTO_EXTRA += -m manpage-suppress-sp.xsl
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Newer DocBook stylesheet emits warning cruft in the output when
|
||||||
|
# this is not set, and if set it shows an absolute link. Older
|
||||||
|
# stylesheets simply ignore this parameter.
|
||||||
|
#
|
||||||
|
# Distros may want to use MAN_BASE_URL=file:///path/to/git/docs/
|
||||||
|
# or similar.
|
||||||
|
ifndef MAN_BASE_URL
|
||||||
|
MAN_BASE_URL = file://$(htmldir)/
|
||||||
|
endif
|
||||||
|
XMLTO_EXTRA += -m manpage-base-url.xsl
|
||||||
|
|
||||||
|
# If your target system uses GNU groff, it may try to render
|
||||||
|
# apostrophes as a "pretty" apostrophe using unicode. This breaks
|
||||||
|
# cut&paste, so you should set GNU_ROFF to force them to be ASCII
|
||||||
|
# apostrophes. Unfortunately does not work with non-GNU roff.
|
||||||
|
ifdef GNU_ROFF
|
||||||
|
XMLTO_EXTRA += -m manpage-quote-apos.xsl
|
||||||
|
endif
|
||||||
|
|
||||||
SHELL_PATH ?= $(SHELL)
|
SHELL_PATH ?= $(SHELL)
|
||||||
# Shell quote;
|
# Shell quote;
|
||||||
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
||||||
|
@ -184,7 +204,7 @@ install-pdf: pdf
|
||||||
install-html: html
|
install-html: html
|
||||||
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)
|
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)
|
||||||
|
|
||||||
../GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
|
../GIT-VERSION-FILE: FORCE
|
||||||
$(QUIET_SUBDIR0)../ $(QUIET_SUBDIR1) GIT-VERSION-FILE
|
$(QUIET_SUBDIR0)../ $(QUIET_SUBDIR1) GIT-VERSION-FILE
|
||||||
|
|
||||||
-include ../GIT-VERSION-FILE
|
-include ../GIT-VERSION-FILE
|
||||||
|
@ -222,6 +242,7 @@ clean:
|
||||||
$(RM) howto-index.txt howto/*.html doc.dep
|
$(RM) howto-index.txt howto/*.html doc.dep
|
||||||
$(RM) technical/api-*.html technical/api-index.txt
|
$(RM) technical/api-*.html technical/api-index.txt
|
||||||
$(RM) $(cmds_txt) *.made
|
$(RM) $(cmds_txt) *.made
|
||||||
|
$(RM) manpage-base-url.xsl
|
||||||
|
|
||||||
$(MAN_HTML): %.html : %.txt
|
$(MAN_HTML): %.html : %.txt
|
||||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||||
|
@ -229,7 +250,10 @@ $(MAN_HTML): %.html : %.txt
|
||||||
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) -o $@+ $< && \
|
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) -o $@+ $< && \
|
||||||
mv $@+ $@
|
mv $@+ $@
|
||||||
|
|
||||||
%.1 %.5 %.7 : %.xml
|
manpage-base-url.xsl: manpage-base-url.xsl.in
|
||||||
|
sed "s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)|" $< > $@
|
||||||
|
|
||||||
|
%.1 %.5 %.7 : %.xml manpage-base-url.xsl
|
||||||
$(QUIET_XMLTO)$(RM) $@ && \
|
$(QUIET_XMLTO)$(RM) $@ && \
|
||||||
xmlto -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
|
xmlto -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
|
||||||
|
|
||||||
|
@ -240,7 +264,9 @@ $(MAN_HTML): %.html : %.txt
|
||||||
mv $@+ $@
|
mv $@+ $@
|
||||||
|
|
||||||
user-manual.xml: user-manual.txt user-manual.conf
|
user-manual.xml: user-manual.txt user-manual.conf
|
||||||
$(QUIET_ASCIIDOC)$(ASCIIDOC) $(ASCIIDOC_EXTRA) -b docbook -d book $<
|
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||||
|
$(ASCIIDOC) $(ASCIIDOC_EXTRA) -b docbook -d book -o $@+ $< && \
|
||||||
|
mv $@+ $@
|
||||||
|
|
||||||
technical/api-index.txt: technical/api-index-skel.txt \
|
technical/api-index.txt: technical/api-index-skel.txt \
|
||||||
technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
|
technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
|
||||||
|
@ -254,7 +280,9 @@ XSLT = docbook.xsl
|
||||||
XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
|
XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
|
||||||
|
|
||||||
user-manual.html: user-manual.xml
|
user-manual.html: user-manual.xml
|
||||||
$(QUIET_XSLTPROC)xsltproc $(XSLTOPTS) -o $@ $(XSLT) $<
|
$(QUIET_XSLTPROC)$(RM) $@+ $@ && \
|
||||||
|
xsltproc $(XSLTOPTS) -o $@+ $(XSLT) $< && \
|
||||||
|
mv $@+ $@
|
||||||
|
|
||||||
git.info: user-manual.texi
|
git.info: user-manual.texi
|
||||||
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi
|
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi
|
||||||
|
@ -313,4 +341,4 @@ quick-install-man:
|
||||||
quick-install-html:
|
quick-install-html:
|
||||||
'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REF) $(DESTDIR)$(htmldir)
|
'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REF) $(DESTDIR)$(htmldir)
|
||||||
|
|
||||||
.PHONY: .FORCE-GIT-VERSION-FILE
|
.PHONY: FORCE
|
||||||
|
|
20
Documentation/RelNotes-1.6.5.1.txt
Normal file
20
Documentation/RelNotes-1.6.5.1.txt
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
GIT v1.6.5.1 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.6.5
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* An corrupt pack could make codepath to read objects into an
|
||||||
|
infinite loop.
|
||||||
|
|
||||||
|
* Download throughput display was always shown in KiB/s but on fast links
|
||||||
|
it is more appropriate to show it in MiB/s.
|
||||||
|
|
||||||
|
* "git grep -f filename" used uninitialized variable and segfaulted.
|
||||||
|
|
||||||
|
* "git clone -b branch" gave a wrong commit object name to post-checkout
|
||||||
|
hook.
|
||||||
|
|
||||||
|
* "git pull" over http did not work on msys.
|
||||||
|
|
||||||
|
Other minor documentation updates are included.
|
19
Documentation/RelNotes-1.6.5.2.txt
Normal file
19
Documentation/RelNotes-1.6.5.2.txt
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
GIT v1.6.5.2 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.6.5.1
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* Installation of templates triggered a bug in busybox when using tar
|
||||||
|
implementation from it.
|
||||||
|
|
||||||
|
* "git add -i" incorrectly ignored paths that are already in the index
|
||||||
|
if they matched .gitignore patterns.
|
||||||
|
|
||||||
|
* "git describe --always" should have produced some output even there
|
||||||
|
were no tags in the repository, but it didn't.
|
||||||
|
|
||||||
|
* "git ls-files" when showing tracked files incorrectly paid attention
|
||||||
|
to the exclude patterns.
|
||||||
|
|
||||||
|
Other minor documentation updates are included.
|
63
Documentation/RelNotes-1.6.5.3.txt
Normal file
63
Documentation/RelNotes-1.6.5.3.txt
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
Git v1.6.5.3 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.6.5.2
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* info/grafts file didn't ignore trailing CR at the end of lines.
|
||||||
|
|
||||||
|
* Packages generated on newer FC were unreadable by older versions of
|
||||||
|
RPM as the new default is to use stronger hash.
|
||||||
|
|
||||||
|
* output from "git blame" was unreadable when the file ended in an
|
||||||
|
incomplete line.
|
||||||
|
|
||||||
|
* "git add -i/-p" didn't handle deletion of empty files correctly.
|
||||||
|
|
||||||
|
* "git clone" takes up to two parameters, but did not complain when
|
||||||
|
given more arguments than necessary and silently ignored them.
|
||||||
|
|
||||||
|
* "git cvsimport" did not read files given as command line arguments
|
||||||
|
correctly when it is run from a subdirectory.
|
||||||
|
|
||||||
|
* "git diff --color-words -U0" didn't work correctly.
|
||||||
|
|
||||||
|
* The handling of blank lines at the end of file by "git diff/apply
|
||||||
|
--whitespace" was inconsistent with the other kinds of errors.
|
||||||
|
They are now colored, warned against, and fixed the same way as others.
|
||||||
|
|
||||||
|
* There was no way to allow blank lines at the end of file without
|
||||||
|
allowing extra blanks at the end of lines. You can use blank-at-eof
|
||||||
|
and blank-at-eol whitespace error class to specify them separately.
|
||||||
|
The old trailing-space error class is now a short-hand to set both.
|
||||||
|
|
||||||
|
* "-p" option to "git format-patch" was supposed to suppress diffstat
|
||||||
|
generation, but it was broken since 1.6.1.
|
||||||
|
|
||||||
|
* "git imap-send" did not compile cleanly with newer OpenSSL.
|
||||||
|
|
||||||
|
* "git help -a" outside of a git repository was broken.
|
||||||
|
|
||||||
|
* "git ls-files -i" was supposed to be inverse of "git ls-files" without -i
|
||||||
|
with respect to exclude patterns, but it was broken since 1.6.5.2.
|
||||||
|
|
||||||
|
* "git ls-remote" outside of a git repository over http was broken.
|
||||||
|
|
||||||
|
* "git rebase -i" gave bogus error message when the command word was
|
||||||
|
misspelled.
|
||||||
|
|
||||||
|
* "git receive-pack" that is run in response to "git push" did not run
|
||||||
|
garbage collection nor update-server-info, but in larger hosting sites,
|
||||||
|
these almost always need to be run. To help site administrators, the
|
||||||
|
command now runs "gc --auto" and "u-s-i" by setting receive.autogc
|
||||||
|
and receive.updateserverinfo configuration variables, respectively.
|
||||||
|
|
||||||
|
* Release notes spelled the package name with incorrect capitalization.
|
||||||
|
|
||||||
|
* "gitweb" did not escape non-ascii characters correctly in the URL.
|
||||||
|
|
||||||
|
* "gitweb" showed "patch" link even for merge commits.
|
||||||
|
|
||||||
|
* "gitweb" showed incorrect links for blob line numbers in pathinfo mode.
|
||||||
|
|
||||||
|
Other minor documentation updates are included.
|
32
Documentation/RelNotes-1.6.5.4.txt
Normal file
32
Documentation/RelNotes-1.6.5.4.txt
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
Git v1.6.5.4 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.6.5.3
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* "git help" (without argument) used to check if you are in a directory
|
||||||
|
under git control. There was no breakage in behaviour per-se, but this
|
||||||
|
was unnecessary.
|
||||||
|
|
||||||
|
* "git prune-packed" gave progress output even when its standard error is
|
||||||
|
not connected to a terminal; this caused cron jobs that run it to
|
||||||
|
produce crufts.
|
||||||
|
|
||||||
|
* "git pack-objects --all-progress" is an option to ask progress output
|
||||||
|
from write-object phase _if_ progress output were to be produced, and
|
||||||
|
shouldn't have forced the progress output.
|
||||||
|
|
||||||
|
* "git apply -p<n> --directory=<elsewhere>" did not work well for a
|
||||||
|
non-default value of n.
|
||||||
|
|
||||||
|
* "git merge foo HEAD" was misparsed as an old-style invocation of the
|
||||||
|
command and produced a confusing error message. As it does not specify
|
||||||
|
any other branch to merge, it shouldn't be mistaken as such. We will
|
||||||
|
remove the old style "git merge <message> HEAD <commit>..." syntax in
|
||||||
|
future versions, but not in this release,
|
||||||
|
|
||||||
|
* "git merge -m <message> <branch>..." added the standard merge message
|
||||||
|
on its own after user-supplied message, which should have overrided the
|
||||||
|
standard one.
|
||||||
|
|
||||||
|
Other minor documentation updates are included.
|
49
Documentation/RelNotes-1.6.5.5.txt
Normal file
49
Documentation/RelNotes-1.6.5.5.txt
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
Git v1.6.5.5 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.6.5.4
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* Manual pages can be formatted with older xmlto again.
|
||||||
|
|
||||||
|
* GREP_OPTIONS exported from user's environment could have broken
|
||||||
|
our scripted commands.
|
||||||
|
|
||||||
|
* In configuration files, a few variables that name paths can begin with
|
||||||
|
~/ and ~username/ and they are expanded as expected. This is not a
|
||||||
|
bugfix but 1.6.6 will have this and without backporting users cannot
|
||||||
|
easily use the same ~/.gitconfig across versions.
|
||||||
|
|
||||||
|
* "git diff -B -M" did the same computation to hash lines of contents
|
||||||
|
twice, and held onto memory after it has used the data in it
|
||||||
|
unnecessarily before it freed.
|
||||||
|
|
||||||
|
* "git diff -B" and "git diff --dirstat" was not counting newly added
|
||||||
|
contents correctly.
|
||||||
|
|
||||||
|
* "git format-patch revisions... -- path" issued an incorrect error
|
||||||
|
message that suggested to use "--" on the command line when path
|
||||||
|
does not exist in the current work tree (it is a separate matter if
|
||||||
|
it makes sense to limit format-patch with pathspecs like that
|
||||||
|
without using the --full-diff option).
|
||||||
|
|
||||||
|
* "git grep -F -i StRiNg" did not work as expected.
|
||||||
|
|
||||||
|
* Enumeration of available merge strategies iterated over the list of
|
||||||
|
commands in a wrong way, sometimes producing an incorrect result.
|
||||||
|
|
||||||
|
* "git shortlog" did not honor the "encoding" header embedded in the
|
||||||
|
commit object like "git log" did.
|
||||||
|
|
||||||
|
* Reading progress messages that come from the remote side while running
|
||||||
|
"git pull" is given precedence over reading the actual pack data to
|
||||||
|
prevent garbled progress message on the user's terminal.
|
||||||
|
|
||||||
|
* "git rebase" got confused when the log message began with certain
|
||||||
|
strings that looked like Subject:, Date: or From: header.
|
||||||
|
|
||||||
|
* "git reset" accidentally run in .git/ directory checked out the
|
||||||
|
work tree contents in there.
|
||||||
|
|
||||||
|
|
||||||
|
Other minor documentation updates are included.
|
23
Documentation/RelNotes-1.6.5.6.txt
Normal file
23
Documentation/RelNotes-1.6.5.6.txt
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
Git v1.6.5.6 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.6.5.5
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* "git add -p" had a regression since v1.6.5.3 that broke deletion of
|
||||||
|
non-empty files.
|
||||||
|
|
||||||
|
* "git archive -o o.zip -- Makefile" produced an archive in o.zip
|
||||||
|
but in POSIX tar format.
|
||||||
|
|
||||||
|
* Error message given to "git pull --rebase" when the user didn't give
|
||||||
|
enough clue as to what branch to integrate with still talked about
|
||||||
|
"merging with" the branch.
|
||||||
|
|
||||||
|
* Error messages given by "git merge" when the merge resulted in a
|
||||||
|
fast-forward still were in plumbing lingo, even though in v1.6.5
|
||||||
|
we reworded messages in other cases.
|
||||||
|
|
||||||
|
* The post-upload-hook run by upload-pack in response to "git fetch" has
|
||||||
|
been removed, due to security concerns (the hook first appeared in
|
||||||
|
1.6.5).
|
19
Documentation/RelNotes-1.6.5.7.txt
Normal file
19
Documentation/RelNotes-1.6.5.7.txt
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
Git v1.6.5.7 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.6.5.6
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* If a user specifies a color for a <slot> (i.e. a class of things to show
|
||||||
|
in a particular color) that is known only by newer versions of git
|
||||||
|
(e.g. "color.diff.func" was recently added for upcoming 1.6.6 release),
|
||||||
|
an older version of git should just ignore them. Instead we diagnosed
|
||||||
|
it as an error.
|
||||||
|
|
||||||
|
* With help.autocorrect set to non-zero value, the logic to guess typoes
|
||||||
|
in the subcommand name misfired and ran a random nonsense command.
|
||||||
|
|
||||||
|
* If a command is run with an absolute path as a pathspec inside a bare
|
||||||
|
repository, e.g. "rev-list HEAD -- /home", the code tried to run
|
||||||
|
strlen() on NULL, which is the result of get_git_work_tree(), and
|
||||||
|
segfaulted.
|
28
Documentation/RelNotes-1.6.5.8.txt
Normal file
28
Documentation/RelNotes-1.6.5.8.txt
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
Git v1.6.5.8 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.6.5.7
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* "git count-objects" did not handle packfiles that are bigger than 4G on
|
||||||
|
platforms with 32-bit off_t.
|
||||||
|
|
||||||
|
* "git rebase -i" did not abort cleanly if it failed to launch the editor.
|
||||||
|
|
||||||
|
* "git blame" did not work well when commit lacked the author name.
|
||||||
|
|
||||||
|
* "git fast-import" choked when handling a tag that points at an object
|
||||||
|
that is not a commit.
|
||||||
|
|
||||||
|
* "git reset --hard" did not work correctly when GIT_WORK_TREE environment
|
||||||
|
variable is used to point at the root of the true work tree.
|
||||||
|
|
||||||
|
* "git grep" fed a buffer that is not NUL-terminated to underlying
|
||||||
|
regexec().
|
||||||
|
|
||||||
|
* "git checkout -m other" while on a branch that does not have any commit
|
||||||
|
segfaulted, instead of failing.
|
||||||
|
|
||||||
|
* "git branch -a other" should have diagnosed the command as an error.
|
||||||
|
|
||||||
|
Other minor documentation updates are also included.
|
169
Documentation/RelNotes-1.6.5.txt
Normal file
169
Documentation/RelNotes-1.6.5.txt
Normal file
|
@ -0,0 +1,169 @@
|
||||||
|
GIT v1.6.5 Release Notes
|
||||||
|
========================
|
||||||
|
|
||||||
|
In git 1.7.0, which was planned to be the release after 1.6.5, "git
|
||||||
|
push" into a branch that is currently checked out will be refused by
|
||||||
|
default.
|
||||||
|
|
||||||
|
You can choose what should happen upon such a push by setting the
|
||||||
|
configuration variable receive.denyCurrentBranch in the receiving
|
||||||
|
repository.
|
||||||
|
|
||||||
|
Also, "git push $there :$killed" to delete the branch $killed in a remote
|
||||||
|
repository $there, when $killed branch is the current branch pointed at by
|
||||||
|
its HEAD, will be refused by default.
|
||||||
|
|
||||||
|
You can choose what should happen upon such a push by setting the
|
||||||
|
configuration variable receive.denyDeleteCurrent in the receiving
|
||||||
|
repository.
|
||||||
|
|
||||||
|
To ease the transition plan, the receiving repository of such a
|
||||||
|
push running this release will issue a big warning when the
|
||||||
|
configuration variable is missing. Please refer to:
|
||||||
|
|
||||||
|
http://git.or.cz/gitwiki/GitFaq#non-bare
|
||||||
|
http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
|
||||||
|
|
||||||
|
for more details on the reason why this change is needed and the
|
||||||
|
transition plan.
|
||||||
|
|
||||||
|
Updates since v1.6.4
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
(subsystems)
|
||||||
|
|
||||||
|
* various updates to gitk, git-svn and gitweb.
|
||||||
|
|
||||||
|
(portability)
|
||||||
|
|
||||||
|
* more improvements on mingw port.
|
||||||
|
|
||||||
|
* mingw will also give FRSX as the default value for the LESS
|
||||||
|
environment variable when the user does not have one.
|
||||||
|
|
||||||
|
* initial support to compile git on Windows with MSVC.
|
||||||
|
|
||||||
|
(performance)
|
||||||
|
|
||||||
|
* On major platforms, the system can be compiled to use with Linus's
|
||||||
|
block-sha1 implementation of the SHA-1 hash algorithm, which
|
||||||
|
outperforms the default fallback implementation we borrowed from
|
||||||
|
Mozilla.
|
||||||
|
|
||||||
|
* Unnecessary inefficiency in deepening of a shallow repository has
|
||||||
|
been removed.
|
||||||
|
|
||||||
|
* "git clone" does not grab objects that it does not need (i.e.
|
||||||
|
referenced only from refs outside refs/heads and refs/tags
|
||||||
|
hierarchy) anymore.
|
||||||
|
|
||||||
|
* The "git" main binary used to link with libcurl, which then dragged
|
||||||
|
in a large number of external libraries. When using basic plumbing
|
||||||
|
commands in scripts, this unnecessarily slowed things down. We now
|
||||||
|
implement http/https/ftp transfer as a separate executable as we
|
||||||
|
used to.
|
||||||
|
|
||||||
|
* "git clone" run locally hardlinks or copies the files in .git/ to
|
||||||
|
newly created repository. It used to give new mtime to copied files,
|
||||||
|
but this delayed garbage collection to trigger unnecessarily in the
|
||||||
|
cloned repository. We now preserve mtime for these files to avoid
|
||||||
|
this issue.
|
||||||
|
|
||||||
|
(usability, bells and whistles)
|
||||||
|
|
||||||
|
* Human writable date format to various options, e.g. --since=yesterday,
|
||||||
|
master@{2000.09.17}, are taught to infer some omitted input properly.
|
||||||
|
|
||||||
|
* A few programs gave verbose "advice" messages to help uninitiated
|
||||||
|
people when issuing error messages. An infrastructure to allow
|
||||||
|
users to squelch them has been introduced, and a few such messages
|
||||||
|
can be silenced now.
|
||||||
|
|
||||||
|
* refs/replace/ hierarchy is designed to be usable as a replacement
|
||||||
|
of the "grafts" mechanism, with the added advantage that it can be
|
||||||
|
transferred across repositories.
|
||||||
|
|
||||||
|
* "git am" learned to optionally ignore whitespace differences.
|
||||||
|
|
||||||
|
* "git am" handles input e-mail files that has CRLF line endings sensibly.
|
||||||
|
|
||||||
|
* "git am" learned "--scissors" option to allow you to discard early part
|
||||||
|
of an incoming e-mail.
|
||||||
|
|
||||||
|
* "git archive -o output.zip" works without being told what format to
|
||||||
|
use with an explicit "--format=zip".option.
|
||||||
|
|
||||||
|
* "git checkout", "git reset" and "git stash" learned to pick and
|
||||||
|
choose to use selected changes you made, similar to "git add -p".
|
||||||
|
|
||||||
|
* "git clone" learned a "-b" option to pick a HEAD to check out
|
||||||
|
different from the remote's default branch.
|
||||||
|
|
||||||
|
* "git clone" learned --recursive option.
|
||||||
|
|
||||||
|
* "git clone" from a local repository on a different filesystem used to
|
||||||
|
copy individual object files without preserving the old timestamp, giving
|
||||||
|
them extra lifetime in the new repository until they gc'ed.
|
||||||
|
|
||||||
|
* "git commit --dry-run $args" is a new recommended way to ask "what would
|
||||||
|
happen if I try to commit with these arguments."
|
||||||
|
|
||||||
|
* "git commit --dry-run" and "git status" shows conflicted paths in a
|
||||||
|
separate section to make them easier to spot during a merge.
|
||||||
|
|
||||||
|
* "git cvsimport" now supports password-protected pserver access even
|
||||||
|
when the password is not taken from ~/.cvspass file.
|
||||||
|
|
||||||
|
* "git fast-export" learned --no-data option that can be useful when
|
||||||
|
reordering commits and trees without touching the contents of
|
||||||
|
blobs.
|
||||||
|
|
||||||
|
* "git fast-import" has a pair of new front-end in contrib/ area.
|
||||||
|
|
||||||
|
* "git init" learned to mkdir/chdir into a directory when given an
|
||||||
|
extra argument (i.e. "git init this").
|
||||||
|
|
||||||
|
* "git instaweb" optionally can use mongoose as the web server.
|
||||||
|
|
||||||
|
* "git log --decorate" can optionally be told with --decorate=full to
|
||||||
|
give the reference name in full.
|
||||||
|
|
||||||
|
* "git merge" issued an unnecessarily scary message when it detected
|
||||||
|
that the merge may have to touch the path that the user has local
|
||||||
|
uncommitted changes to. The message has been reworded to make it
|
||||||
|
clear that the command aborted, without doing any harm.
|
||||||
|
|
||||||
|
* "git push" can be told to be --quiet.
|
||||||
|
|
||||||
|
* "git push" pays attention to url.$base.pushInsteadOf and uses a URL
|
||||||
|
that is derived from the URL used for fetching.
|
||||||
|
|
||||||
|
* informational output from "git reset" that lists the locally modified
|
||||||
|
paths is made consistent with that of "git checkout $another_branch".
|
||||||
|
|
||||||
|
* "git submodule" learned to give submodule name to scripts run with
|
||||||
|
"foreach" subcommand.
|
||||||
|
|
||||||
|
* various subcommands to "git submodule" learned --recursive option.
|
||||||
|
|
||||||
|
* "git submodule summary" learned --files option to compare the work
|
||||||
|
tree vs the commit bound at submodule path, instead of comparing
|
||||||
|
the index.
|
||||||
|
|
||||||
|
* "git upload-pack", which is the server side support for "git clone" and
|
||||||
|
"git fetch", can call a new post-upload-pack hook for statistics purposes.
|
||||||
|
|
||||||
|
(developers)
|
||||||
|
|
||||||
|
* With GIT_TEST_OPTS="--root=/p/a/t/h", tests can be run outside the
|
||||||
|
source directory; using tmpfs may give faster turnaround.
|
||||||
|
|
||||||
|
* With NO_PERL_MAKEMAKER set, DESTDIR= is now honoured, so you can
|
||||||
|
build for one location, and install into another location to tar it
|
||||||
|
up.
|
||||||
|
|
||||||
|
Fixes since v1.6.4
|
||||||
|
------------------
|
||||||
|
|
||||||
|
All of the fixes in v1.6.4.X maintenance series are included in this
|
||||||
|
release, unless otherwise noted.
|
37
Documentation/RelNotes-1.6.6.1.txt
Normal file
37
Documentation/RelNotes-1.6.6.1.txt
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
Git v1.6.6.1 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.6.6
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* "git blame" did not work well when commit lacked the author name.
|
||||||
|
|
||||||
|
* "git branch -a name" wasn't diagnosed as an error.
|
||||||
|
|
||||||
|
* "git count-objects" did not handle packfiles that are bigger than 4G on
|
||||||
|
platforms with 32-bit off_t.
|
||||||
|
|
||||||
|
* "git checkout -m other" while on a branch that does not have any commit
|
||||||
|
segfaulted, instead of failing.
|
||||||
|
|
||||||
|
* "git fast-import" choked when fed a tag that do not point at a
|
||||||
|
commit.
|
||||||
|
|
||||||
|
* "git grep" finding from work tree files could have fed garbage to
|
||||||
|
the underlying regexec(3).
|
||||||
|
|
||||||
|
* "git grep -L" didn't show empty files (they should never match, and
|
||||||
|
they should always appear in -L output as unmatching).
|
||||||
|
|
||||||
|
* "git rebase -i" did not abort cleanly if it failed to launch the editor.
|
||||||
|
|
||||||
|
* "git reset --hard" did not work correctly when GIT_WORK_TREE environment
|
||||||
|
variable is used to point at the root of the true work tree.
|
||||||
|
|
||||||
|
* http-backend was not listed in the command list in the documentation.
|
||||||
|
|
||||||
|
* Building on FreeBSD (both 7 and 8) needs OLD_ICONV set in the Makefile
|
||||||
|
|
||||||
|
* "git checkout -m some-branch" while on an unborn branch crashed.
|
||||||
|
|
||||||
|
Other minor documentation updates are included.
|
46
Documentation/RelNotes-1.6.6.2.txt
Normal file
46
Documentation/RelNotes-1.6.6.2.txt
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
Git v1.6.6.2 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.6.6.1
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* recursive merge didn't correctly diagnose its own programming errors,
|
||||||
|
and instead caused the caller to segfault.
|
||||||
|
|
||||||
|
* The new "smart http" aware clients probed the web servers to see if
|
||||||
|
they support smart http, but did not fall back to dumb http transport
|
||||||
|
correctly with some servers.
|
||||||
|
|
||||||
|
* Time based reflog syntax e.g. "@{yesterday}" didn't diagnose a misspelled
|
||||||
|
time specification and instead assumed "@{now}".
|
||||||
|
|
||||||
|
* "git archive HEAD -- no-such-directory" produced an empty archive
|
||||||
|
without complaining.
|
||||||
|
|
||||||
|
* "git blame -L start,end -- file" misbehaved when given a start that is
|
||||||
|
larger than the number of lines in the file.
|
||||||
|
|
||||||
|
* "git checkout -m" didn't correctly call custom merge backend supplied
|
||||||
|
by the end user.
|
||||||
|
|
||||||
|
* "git config -f <file>" misbehaved when run from a subdirectory.
|
||||||
|
|
||||||
|
* "git cvsserver" didn't like having regex metacharacters (e.g. '+') in
|
||||||
|
CVSROOT environment.
|
||||||
|
|
||||||
|
* "git fast-import" did not correctly handle large blobs that may
|
||||||
|
bust the pack size limit.
|
||||||
|
|
||||||
|
* "git gui" is supposed to work even when launched from inside a .git
|
||||||
|
directory.
|
||||||
|
|
||||||
|
* "git gui" misbehaved when applying a hunk that ends with deletion.
|
||||||
|
|
||||||
|
* "git imap-send" did not honor imap.preformattedHTML as documented.
|
||||||
|
|
||||||
|
* "git log" family incorrectly showed the commit notes unconditionally by
|
||||||
|
mistake, which was especially irritating when running "git log --oneline".
|
||||||
|
|
||||||
|
* "git status" shouldn't require an write access to the repository.
|
||||||
|
|
||||||
|
Other minor documentation updates are included.
|
224
Documentation/RelNotes-1.6.6.txt
Normal file
224
Documentation/RelNotes-1.6.6.txt
Normal file
|
@ -0,0 +1,224 @@
|
||||||
|
Git v1.6.6 Release Notes
|
||||||
|
========================
|
||||||
|
|
||||||
|
Notes on behaviour change
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
* In this release, "git fsck" defaults to "git fsck --full" and
|
||||||
|
checks packfiles, and because of this it will take much longer to
|
||||||
|
complete than before. If you prefer a quicker check only on loose
|
||||||
|
objects (the old default), you can say "git fsck --no-full". This
|
||||||
|
has been supported by 1.5.4 and newer versions of git, so it is
|
||||||
|
safe to write it in your script even if you use slightly older git
|
||||||
|
on some of your machines.
|
||||||
|
|
||||||
|
Preparing yourselves for compatibility issues in 1.7.0
|
||||||
|
------------------------------------------------------
|
||||||
|
|
||||||
|
In git 1.7.0, which is planned to be the release after 1.6.6, there will
|
||||||
|
be a handful of behaviour changes that will break backward compatibility.
|
||||||
|
|
||||||
|
These changes were discussed long time ago and existing behaviours have
|
||||||
|
been identified as more problematic to the userbase than keeping them for
|
||||||
|
the sake of backward compatibility.
|
||||||
|
|
||||||
|
When necessary, a transition strategy for existing users has been designed
|
||||||
|
not to force them running around setting configuration variables and
|
||||||
|
updating their scripts in order to either keep the traditional behaviour
|
||||||
|
or adjust to the new behaviour, on the day their sysadmin decides to install
|
||||||
|
the new version of git. When we switched from "git-foo" to "git foo" in
|
||||||
|
1.6.0, even though the change had been advertised and the transition
|
||||||
|
guide had been provided for a very long time, the users procrastinated
|
||||||
|
during the entire transtion period, and ended up panicking on the day
|
||||||
|
their sysadmins updated their git installation. We are trying to avoid
|
||||||
|
repeating that unpleasantness in the 1.7.0 release.
|
||||||
|
|
||||||
|
For changes decided to be in 1.7.0, commands that will be affected
|
||||||
|
have been much louder to strongly discourage such procrastination, and
|
||||||
|
they continue to be in this release. If you have been using recent
|
||||||
|
versions of git, you would have seen warnings issued when you used
|
||||||
|
features whose behaviour will change, with a clear instruction on how
|
||||||
|
to keep the existing behaviour if you want to. You hopefully are
|
||||||
|
already well prepared.
|
||||||
|
|
||||||
|
Of course, we have also been giving "this and that will change in
|
||||||
|
1.7.0; prepare yourselves" warnings in the release notes and
|
||||||
|
announcement messages for the past few releases. Let's see how well
|
||||||
|
users will fare this time.
|
||||||
|
|
||||||
|
* "git push" into a branch that is currently checked out (i.e. pointed by
|
||||||
|
HEAD in a repository that is not bare) will be refused by default.
|
||||||
|
|
||||||
|
Similarly, "git push $there :$killed" to delete the branch $killed
|
||||||
|
in a remote repository $there, when $killed branch is the current
|
||||||
|
branch pointed at by its HEAD, will be refused by default.
|
||||||
|
|
||||||
|
Setting the configuration variables receive.denyCurrentBranch and
|
||||||
|
receive.denyDeleteCurrent to 'ignore' in the receiving repository
|
||||||
|
can be used to override these safety features. Versions of git
|
||||||
|
since 1.6.2 have issued a loud warning when you tried to do these
|
||||||
|
operations without setting the configuration, so repositories of
|
||||||
|
people who still need to be able to perform such a push should
|
||||||
|
already have been future proofed.
|
||||||
|
|
||||||
|
Please refer to:
|
||||||
|
|
||||||
|
http://git.or.cz/gitwiki/GitFaq#non-bare
|
||||||
|
http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
|
||||||
|
|
||||||
|
for more details on the reason why this change is needed and the
|
||||||
|
transition process that already took place so far.
|
||||||
|
|
||||||
|
* "git send-email" will not make deep threads by default when sending a
|
||||||
|
patch series with more than two messages. All messages will be sent
|
||||||
|
as a reply to the first message, i.e. cover letter. Git 1.6.6 (this
|
||||||
|
release) will issue a warning about the upcoming default change, when
|
||||||
|
it uses the traditional "deep threading" behaviour as the built-in
|
||||||
|
default. To squelch the warning but still use the "deep threading"
|
||||||
|
behaviour, give --chain-reply-to option or set sendemail.chainreplyto
|
||||||
|
to true.
|
||||||
|
|
||||||
|
It has been possible to configure send-email to send "shallow thread"
|
||||||
|
by setting sendemail.chainreplyto configuration variable to false.
|
||||||
|
The only thing 1.7.0 release will do is to change the default when
|
||||||
|
you haven't configured that variable.
|
||||||
|
|
||||||
|
* "git status" will not be "git commit --dry-run". This change does not
|
||||||
|
affect you if you run the command without pathspec.
|
||||||
|
|
||||||
|
Nobody sane found the current behaviour of "git status Makefile" useful
|
||||||
|
nor meaningful, and it confused users. "git commit --dry-run" has been
|
||||||
|
provided as a way to get the current behaviour of this command since
|
||||||
|
1.6.5.
|
||||||
|
|
||||||
|
* "git diff" traditionally treated various "ignore whitespace" options
|
||||||
|
only as a way to filter the patch output. "git diff --exit-code -b"
|
||||||
|
exited with non-zero status even if all changes were about changing the
|
||||||
|
ammount of whitespace and nothing else. and "git diff -b" showed the
|
||||||
|
"diff --git" header line for such a change without patch text.
|
||||||
|
|
||||||
|
In 1.7.0, the "ignore whitespaces" will affect the semantics of the
|
||||||
|
diff operation itself. A change that does not affect anything but
|
||||||
|
whitespaces will be reported with zero exit status when run with
|
||||||
|
--exit-code, and there will not be "diff --git" header for such a
|
||||||
|
change.
|
||||||
|
|
||||||
|
|
||||||
|
Updates since v1.6.5
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
(subsystems)
|
||||||
|
|
||||||
|
* various gitk updates including use of themed widgets under Tk 8.5,
|
||||||
|
Japanese translation, a fix to a bug when running "gui blame" from
|
||||||
|
a subdirectory, etc.
|
||||||
|
|
||||||
|
* various git-gui updates including new translations, wm states fixes,
|
||||||
|
Tk bug workaround after quitting, improved heuristics to trigger gc,
|
||||||
|
etc.
|
||||||
|
|
||||||
|
* various git-svn updates.
|
||||||
|
|
||||||
|
* "git fetch" over http learned a new mode that is different from the
|
||||||
|
traditional "dumb commit walker".
|
||||||
|
|
||||||
|
(portability)
|
||||||
|
|
||||||
|
* imap-send can be built on mingw port.
|
||||||
|
|
||||||
|
(performance)
|
||||||
|
|
||||||
|
* "git diff -B" has smaller memory footprint.
|
||||||
|
|
||||||
|
(usability, bells and whistles)
|
||||||
|
|
||||||
|
* The object replace mechanism can be bypassed with --no-replace-objects
|
||||||
|
global option given to the "git" program.
|
||||||
|
|
||||||
|
* In configuration files, a few variables that name paths can begin with ~/
|
||||||
|
and ~username/ and they are expanded as expected.
|
||||||
|
|
||||||
|
* "git subcmd -h" now shows short usage help for many more subcommands.
|
||||||
|
|
||||||
|
* "git bisect reset" can reset to an arbitrary commit.
|
||||||
|
|
||||||
|
* "git checkout frotz" when there is no local branch "frotz" but there
|
||||||
|
is only one remote tracking branch "frotz" is taken as a request to
|
||||||
|
start the named branch at the corresponding remote tracking branch.
|
||||||
|
|
||||||
|
* "git commit -c/-C/--amend" can be told with a new "--reset-author" option
|
||||||
|
to ignore authorship information in the commit it is taking the message
|
||||||
|
from.
|
||||||
|
|
||||||
|
* "git describe" can be told to add "-dirty" suffix with "--dirty" option.
|
||||||
|
|
||||||
|
* "git diff" learned --submodule option to show a list of one-line logs
|
||||||
|
instead of differences between the commit object names.
|
||||||
|
|
||||||
|
* "git diff" learned to honor diff.color.func configuration to paint
|
||||||
|
function name hint printed on the hunk header "@@ -j,k +l,m @@" line
|
||||||
|
in the specified color.
|
||||||
|
|
||||||
|
* "git fetch" learned --all and --multiple options, to run fetch from
|
||||||
|
many repositories, and --prune option to remove remote tracking
|
||||||
|
branches that went stale. These make "git remote update" and "git
|
||||||
|
remote prune" less necessary (there is no plan to remove "remote
|
||||||
|
update" nor "remote prune", though).
|
||||||
|
|
||||||
|
* "git fsck" by default checks the packfiles (i.e. "--full" is the
|
||||||
|
default); you can turn it off with "git fsck --no-full".
|
||||||
|
|
||||||
|
* "git grep" can use -F (fixed strings) and -i (ignore case) together.
|
||||||
|
|
||||||
|
* import-tars contributed fast-import frontend learned more types of
|
||||||
|
compressed tarballs.
|
||||||
|
|
||||||
|
* "git instaweb" knows how to talk with mod_cgid to apache2.
|
||||||
|
|
||||||
|
* "git log --decorate" shows the location of HEAD as well.
|
||||||
|
|
||||||
|
* "git log" and "git rev-list" learned to take revs and pathspecs from
|
||||||
|
the standard input with the new "--stdin" option.
|
||||||
|
|
||||||
|
* "--pretty=format" option to "log" family of commands learned:
|
||||||
|
|
||||||
|
. to wrap text with the "%w()" specifier.
|
||||||
|
. to show reflog information with "%g[sdD]" specifier.
|
||||||
|
|
||||||
|
* "git notes" command to annotate existing commits.
|
||||||
|
|
||||||
|
* "git merge" (and "git pull") learned --ff-only option to make it fail
|
||||||
|
if the merge does not result in a fast-forward.
|
||||||
|
|
||||||
|
* "git mergetool" learned to use p4merge.
|
||||||
|
|
||||||
|
* "git rebase -i" learned "reword" that acts like "edit" but immediately
|
||||||
|
starts an editor to tweak the log message without returning control to
|
||||||
|
the shell, which is done by "edit" to give an opportunity to tweak the
|
||||||
|
contents.
|
||||||
|
|
||||||
|
* "git send-email" can be told with "--envelope-sender=auto" to use the
|
||||||
|
same address as "From:" address as the envelope sender address.
|
||||||
|
|
||||||
|
* "git send-email" will issue a warning when it defaults to the
|
||||||
|
--chain-reply-to behaviour without being told by the user and
|
||||||
|
instructs to prepare for the change of the default in 1.7.0 release.
|
||||||
|
|
||||||
|
* In "git submodule add <repository> <path>", <path> is now optional and
|
||||||
|
inferred from <repository> the same way "git clone <repository>" does.
|
||||||
|
|
||||||
|
* "git svn" learned to read SVN 1.5+ and SVK merge tickets.
|
||||||
|
|
||||||
|
* "git svn" learned to recreate empty directories tracked only by SVN.
|
||||||
|
|
||||||
|
* "gitweb" can optionally render its "blame" output incrementally (this
|
||||||
|
requires JavaScript on the client side).
|
||||||
|
|
||||||
|
* Author names shown in gitweb output are links to search commits by the
|
||||||
|
author.
|
||||||
|
|
||||||
|
Fixes since v1.6.5
|
||||||
|
------------------
|
||||||
|
|
||||||
|
All of the fixes in v1.6.5.X maintenance series are included in this
|
||||||
|
release, unless otherwise noted.
|
35
Documentation/RelNotes-1.7.0.1.txt
Normal file
35
Documentation/RelNotes-1.7.0.1.txt
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
Git v1.7.0.1 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.7.0
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* In a freshly created repository "rev-parse HEAD^0" complained that
|
||||||
|
it is dangling symref, even though "rev-parse HEAD" didn't.
|
||||||
|
|
||||||
|
* "git show :no-such-name" tried to access the index without bounds
|
||||||
|
check, leading to a potential segfault.
|
||||||
|
|
||||||
|
* Message from "git cherry-pick" was harder to read and use than necessary
|
||||||
|
when it stopped due to conflicting changes.
|
||||||
|
|
||||||
|
* We referred to ".git/refs/" throughout the documentation when we
|
||||||
|
meant to talk about abstract notion of "ref namespace". Because
|
||||||
|
people's repositories often have packed refs these days, this was
|
||||||
|
confusing.
|
||||||
|
|
||||||
|
* "git diff --output=/path/that/cannot/be/written" did not correctly
|
||||||
|
error out.
|
||||||
|
|
||||||
|
* "git grep -e -pattern-that-begin-with-dash paths..." could not be
|
||||||
|
spelled as "git grep -- -pattern-that-begin-with-dash paths..." which
|
||||||
|
would be a GNU way to use "--" as "end of options".
|
||||||
|
|
||||||
|
* "git grep" compiled with threading support tried to access an
|
||||||
|
uninitialized mutex on boxes with a single CPU.
|
||||||
|
|
||||||
|
* "git stash pop -q --index" failed because the unnecessary --index
|
||||||
|
option was propagated to "git stash drop" that is internally run at the
|
||||||
|
end.
|
||||||
|
|
||||||
|
And other minor fixes and documentation updates.
|
40
Documentation/RelNotes-1.7.0.2.txt
Normal file
40
Documentation/RelNotes-1.7.0.2.txt
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
Git v1.7.0.2 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.7.0.1
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* GIT_PAGER was not honored consistently by some scripted Porcelains, most
|
||||||
|
notably "git am".
|
||||||
|
|
||||||
|
* updating working tree files after telling git to add them to the
|
||||||
|
index and while it is still working created garbage object files in
|
||||||
|
the repository without diagnosing it as an error.
|
||||||
|
|
||||||
|
* "git bisect -- pathspec..." did not diagnose an error condition properly when
|
||||||
|
the simplification with given pathspec made the history empty.
|
||||||
|
|
||||||
|
* "git rev-list --cherry-pick A...B" now has an obvious optimization when the
|
||||||
|
histories haven't diverged (i.e. when one end is an ancestor of the other).
|
||||||
|
|
||||||
|
* "git diff --quiet -w" did not work as expected.
|
||||||
|
|
||||||
|
* "git fast-import" didn't work with a large input, as it lacked support
|
||||||
|
for producing the pack index in v2 format.
|
||||||
|
|
||||||
|
* "git imap-send" didn't use CRLF line endings over the imap protocol
|
||||||
|
when storing its payload to the draft box, violating RFC 3501.
|
||||||
|
|
||||||
|
* "git log --format='%w(x,y,z)%b'" and friends that rewrap message
|
||||||
|
has been optimized for utf-8 payload.
|
||||||
|
|
||||||
|
* Error messages generated on the receiving end did not come back to "git
|
||||||
|
push".
|
||||||
|
|
||||||
|
* "git status" in 1.7.0 lacked the optimization we used to have in 1.6.X series
|
||||||
|
to speed up scanning of large working tree.
|
||||||
|
|
||||||
|
* "gitweb" did not diagnose parsing errors properly while reading tis configuration
|
||||||
|
file.
|
||||||
|
|
||||||
|
And other minor fixes and documentation updates.
|
34
Documentation/RelNotes-1.7.0.3.txt
Normal file
34
Documentation/RelNotes-1.7.0.3.txt
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
Git v1.7.0.3 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.7.0.2
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* Object files are created in a more ACL friendly way in repositories
|
||||||
|
where group permission is ACL controlled.
|
||||||
|
|
||||||
|
* "git add -i" didn't handle a deleted path very well.
|
||||||
|
|
||||||
|
* "git blame" padded line numbers with one extra SP when the total number
|
||||||
|
of lines was one less than multiple of ten due to an off-by-one error.
|
||||||
|
|
||||||
|
* "git fetch --all/--multi" used to discard information for remotes that
|
||||||
|
are fetched earlier.
|
||||||
|
|
||||||
|
* "git log --author=me --grep=it" tried to find commits that have "it"
|
||||||
|
or are written by "me", instead of the ones that have "it" _and_ are
|
||||||
|
written by "me".
|
||||||
|
|
||||||
|
* "git log -g branch" misbehaved when there was no entries in the reflog
|
||||||
|
for the named branch.
|
||||||
|
|
||||||
|
* "git mailinfo" (hence "git am") incorrectly removed initial indent from
|
||||||
|
paragraphs.
|
||||||
|
|
||||||
|
* "git prune" and "git reflog" (hence "git gc" as well) didn't honor
|
||||||
|
an instruction never to expire by setting gc.reflogexpire to never.
|
||||||
|
|
||||||
|
* "git push" misbehaved when branch.<name>.merge was configured without
|
||||||
|
matching branch.<name>.remote.
|
||||||
|
|
||||||
|
And other minor fixes and documentation updates.
|
27
Documentation/RelNotes-1.7.0.4.txt
Normal file
27
Documentation/RelNotes-1.7.0.4.txt
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
Git v1.7.0.4 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.7.0.3
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* Optimized ntohl/htonl on big-endian machines were broken.
|
||||||
|
|
||||||
|
* Color values given to "color.<cmd>.<slot>" configuration can now have
|
||||||
|
more than one attributes (e.g. "bold ul").
|
||||||
|
|
||||||
|
* "git add -u nonexistent-path" did not complain.
|
||||||
|
|
||||||
|
* "git apply --whitespace=fix" didn't work well when an early patch in
|
||||||
|
a patch series adds trailing blank lines and a later one depended on
|
||||||
|
such a block of blank lines at the end.
|
||||||
|
|
||||||
|
* "git fast-export" didn't check error status and stop when marks file
|
||||||
|
cannot be opened.
|
||||||
|
|
||||||
|
* "git format-patch --ignore-if-in-upstream" gave unwarranted errors
|
||||||
|
when the range was empty, instead of silently finishing.
|
||||||
|
|
||||||
|
* "git remote prune" did not detect remote tracking refs that became
|
||||||
|
dangling correctly.
|
||||||
|
|
||||||
|
And other minor fixes and documentation updates.
|
26
Documentation/RelNotes-1.7.0.5.txt
Normal file
26
Documentation/RelNotes-1.7.0.5.txt
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
Git v1.7.0.5 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.7.0.4
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* "git daemon" failed to compile on platforms without sockaddr_storage type.
|
||||||
|
|
||||||
|
* Output from "git rev-list --pretty=oneline" was unparsable when a
|
||||||
|
commit did not have any message, which is abnormal but possible in a
|
||||||
|
repository converted from foreign scm.
|
||||||
|
|
||||||
|
* "git stash show <commit-that-is-not-a-stash>" gave an error message
|
||||||
|
that was not so useful. Reworded the message to "<it> is not a
|
||||||
|
stash".
|
||||||
|
|
||||||
|
* Python scripts in contrib/ area now start with "#!/usr/bin/env python"
|
||||||
|
to honor user's PATH.
|
||||||
|
|
||||||
|
* "git imap-send" used to mistake any line that begins with "From " as a
|
||||||
|
message separator in format-patch output.
|
||||||
|
|
||||||
|
* Smart http server backend failed to report an internal server error and
|
||||||
|
infinitely looped instead after output pipe was closed.
|
||||||
|
|
||||||
|
And other minor fixes and documentation updates.
|
13
Documentation/RelNotes-1.7.0.6.txt
Normal file
13
Documentation/RelNotes-1.7.0.6.txt
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Git v1.7.0.6 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.7.0.5
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* "git diff --stat" used "int" to count the size of differences,
|
||||||
|
which could result in overflowing.
|
||||||
|
|
||||||
|
* "git rev-list --abbrev-commit" defaulted to 40-byte abbreviations, unlike
|
||||||
|
newer tools in the git toolset.
|
||||||
|
|
||||||
|
And other minor fixes and documentation updates.
|
214
Documentation/RelNotes-1.7.0.txt
Normal file
214
Documentation/RelNotes-1.7.0.txt
Normal file
|
@ -0,0 +1,214 @@
|
||||||
|
Git v1.7.0 Release Notes
|
||||||
|
========================
|
||||||
|
|
||||||
|
Notes on behaviour change
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
* "git push" into a branch that is currently checked out (i.e. pointed at by
|
||||||
|
HEAD in a repository that is not bare) is refused by default.
|
||||||
|
|
||||||
|
Similarly, "git push $there :$killed" to delete the branch $killed
|
||||||
|
in a remote repository $there, when $killed branch is the current
|
||||||
|
branch pointed at by its HEAD, will be refused by default.
|
||||||
|
|
||||||
|
Setting the configuration variables receive.denyCurrentBranch and
|
||||||
|
receive.denyDeleteCurrent to 'ignore' in the receiving repository
|
||||||
|
can be used to override these safety features.
|
||||||
|
|
||||||
|
* "git send-email" does not make deep threads by default when sending a
|
||||||
|
patch series with more than two messages. All messages will be sent
|
||||||
|
as a reply to the first message, i.e. cover letter.
|
||||||
|
|
||||||
|
It has been possible already to configure send-email to send "shallow thread"
|
||||||
|
by setting sendemail.chainreplyto configuration variable to false. The
|
||||||
|
only thing this release does is to change the default when you haven't
|
||||||
|
configured that variable.
|
||||||
|
|
||||||
|
* "git status" is not "git commit --dry-run" anymore. This change does
|
||||||
|
not affect you if you run the command without argument.
|
||||||
|
|
||||||
|
* "git diff" traditionally treated various "ignore whitespace" options
|
||||||
|
only as a way to filter the patch output. "git diff --exit-code -b"
|
||||||
|
exited with non-zero status even if all changes were about changing the
|
||||||
|
amount of whitespace and nothing else; and "git diff -b" showed the
|
||||||
|
"diff --git" header line for such a change without patch text.
|
||||||
|
|
||||||
|
In this release, the "ignore whitespaces" options affect the semantics
|
||||||
|
of the diff operation. A change that does not affect anything but
|
||||||
|
whitespaces is reported with zero exit status when run with
|
||||||
|
--exit-code, and there is no "diff --git" header for such a change.
|
||||||
|
|
||||||
|
* External diff and textconv helpers are now executed using the shell.
|
||||||
|
This makes them consistent with other programs executed by git, and
|
||||||
|
allows you to pass command-line parameters to the helpers. Any helper
|
||||||
|
paths containing spaces or other metacharacters now need to be
|
||||||
|
shell-quoted. The affected helpers are GIT_EXTERNAL_DIFF in the
|
||||||
|
environment, and diff.*.command and diff.*.textconv in the config
|
||||||
|
file.
|
||||||
|
|
||||||
|
* The --max-pack-size argument to 'git repack', 'git pack-objects', and
|
||||||
|
'git fast-import' was assuming the provided size to be expressed in MiB,
|
||||||
|
unlike the corresponding config variable and other similar options accepting
|
||||||
|
a size value. It is now expecting a size expressed in bytes, with a possible
|
||||||
|
unit suffix of 'k', 'm', or 'g'.
|
||||||
|
|
||||||
|
Updates since v1.6.6
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
(subsystems)
|
||||||
|
|
||||||
|
* "git fast-import" updates; adds "option" and "feature" to detect the
|
||||||
|
mismatch between fast-import and the frontends that produce the input
|
||||||
|
stream.
|
||||||
|
|
||||||
|
* "git svn" support of subversion "merge tickets" and miscellaneous fixes.
|
||||||
|
|
||||||
|
* "gitk" and "git gui" translation updates.
|
||||||
|
|
||||||
|
* "gitweb" updates (code clean-up, load checking etc.)
|
||||||
|
|
||||||
|
(portability)
|
||||||
|
|
||||||
|
* Some more MSVC portability patches for msysgit port.
|
||||||
|
|
||||||
|
* Minimum Pthreads emulation for msysgit port.
|
||||||
|
|
||||||
|
(performance)
|
||||||
|
|
||||||
|
* More performance improvement patches for msysgit port.
|
||||||
|
|
||||||
|
(usability, bells and whistles)
|
||||||
|
|
||||||
|
* More commands learned "--quiet" and "--[no-]progress" options.
|
||||||
|
|
||||||
|
* Various commands given by the end user (e.g. diff.type.textconv,
|
||||||
|
and GIT_EDITOR) can be specified with command line arguments. E.g. it
|
||||||
|
is now possible to say "[diff "utf8doc"] textconv = nkf -w".
|
||||||
|
|
||||||
|
* "sparse checkout" feature allows only part of the work tree to be
|
||||||
|
checked out.
|
||||||
|
|
||||||
|
* HTTP transfer can use authentication scheme other than basic
|
||||||
|
(i.e./e.g. digest).
|
||||||
|
|
||||||
|
* Switching from a version of superproject that used to have a submodule
|
||||||
|
to another version of superproject that no longer has it did not remove
|
||||||
|
the submodule directory when it should (namely, when you are not
|
||||||
|
interested in the submodule at all and didn't clone/checkout).
|
||||||
|
|
||||||
|
* A new attribute conflict-marker-size can be used to change the size of
|
||||||
|
the conflict markers from the default 7; this is useful when tracked
|
||||||
|
contents (e.g. git-merge documentation) have strings that resemble the
|
||||||
|
conflict markers.
|
||||||
|
|
||||||
|
* A new syntax "<branch>@{upstream}" can be used on the command line to
|
||||||
|
substitute the name of the "upstream" of the branch. Missing branch
|
||||||
|
defaults to the current branch, so "git fetch && git merge @{upstream}"
|
||||||
|
will be equivalent to "git pull".
|
||||||
|
|
||||||
|
* "git am --resolved" has a synonym "git am --continue".
|
||||||
|
|
||||||
|
* "git branch --set-upstream" can be used to update the (surprise!) upstream,
|
||||||
|
i.e. where the branch is supposed to pull and merge from (or rebase onto).
|
||||||
|
|
||||||
|
* "git checkout A...B" is a way to detach HEAD at the merge base between
|
||||||
|
A and B.
|
||||||
|
|
||||||
|
* "git checkout -m path" to reset the work tree file back into the
|
||||||
|
conflicted state works even when you already ran "git add path" and
|
||||||
|
resolved the conflicts.
|
||||||
|
|
||||||
|
* "git commit --date='<date>'" can be used to override the author date
|
||||||
|
just like "git commit --author='<name> <email>'" can be used to
|
||||||
|
override the author identity.
|
||||||
|
|
||||||
|
* "git commit --no-status" can be used to omit the listing of the index
|
||||||
|
and the work tree status in the editor used to prepare the log message.
|
||||||
|
|
||||||
|
* "git commit" warns a bit more aggressively until you configure user.email,
|
||||||
|
whose default value almost always is not (and fundamentally cannot be)
|
||||||
|
what you want.
|
||||||
|
|
||||||
|
* "git difftool" has been extended to make it easier to integrate it
|
||||||
|
with gitk.
|
||||||
|
|
||||||
|
* "git fetch --all" can now be used in place of "git remote update".
|
||||||
|
|
||||||
|
* "git grep" does not rely on external grep anymore. It can use more than
|
||||||
|
one thread to accelerate the operation.
|
||||||
|
|
||||||
|
* "git grep" learned "--quiet" option.
|
||||||
|
|
||||||
|
* "git log" and friends learned "--glob=heads/*" syntax that is a more
|
||||||
|
flexible way to complement "--branches/--tags/--remotes".
|
||||||
|
|
||||||
|
* "git merge" learned to pass options specific to strategy-backends. E.g.
|
||||||
|
|
||||||
|
- "git merge -Xsubtree=path/to/directory" can be used to tell the subtree
|
||||||
|
strategy how much to shift the trees explicitly.
|
||||||
|
|
||||||
|
- "git merge -Xtheirs" can be used to auto-merge as much as possible,
|
||||||
|
while discarding your own changes and taking merged version in
|
||||||
|
conflicted regions.
|
||||||
|
|
||||||
|
* "git push" learned "git push origin --delete branch", a syntactic sugar
|
||||||
|
for "git push origin :branch".
|
||||||
|
|
||||||
|
* "git push" learned "git push --set-upstream origin forker:forkee" that
|
||||||
|
lets you configure your "forker" branch to later pull from "forkee"
|
||||||
|
branch at "origin".
|
||||||
|
|
||||||
|
* "git rebase --onto A...B" means the history is replayed on top of the
|
||||||
|
merge base between A and B.
|
||||||
|
|
||||||
|
* "git rebase -i" learned new action "fixup" that squashes the change
|
||||||
|
but does not affect existing log message.
|
||||||
|
|
||||||
|
* "git rebase -i" also learned --autosquash option that is useful
|
||||||
|
together with the new "fixup" action.
|
||||||
|
|
||||||
|
* "git remote" learned set-url subcommand that updates (surprise!) url
|
||||||
|
for an existing remote nickname.
|
||||||
|
|
||||||
|
* "git rerere" learned "forget path" subcommand. Together with "git
|
||||||
|
checkout -m path" it will be useful when you recorded a wrong
|
||||||
|
resolution.
|
||||||
|
|
||||||
|
* Use of "git reset --merge" has become easier when resetting away a
|
||||||
|
conflicted mess left in the work tree.
|
||||||
|
|
||||||
|
* "git rerere" had rerere.autoupdate configuration but there was no way
|
||||||
|
to countermand it from the command line; --no-rerere-autoupdate option
|
||||||
|
given to "merge", "revert", etc. fixes this.
|
||||||
|
|
||||||
|
* "git status" learned "-s(hort)" output format.
|
||||||
|
|
||||||
|
(developers)
|
||||||
|
|
||||||
|
* The infrastructure to build foreign SCM interface has been updated.
|
||||||
|
|
||||||
|
* Many more commands are now built-in.
|
||||||
|
|
||||||
|
* THREADED_DELTA_SEARCH is no more. If you build with threads, delta
|
||||||
|
compression will always take advantage of it.
|
||||||
|
|
||||||
|
Fixes since v1.6.6
|
||||||
|
------------------
|
||||||
|
|
||||||
|
All of the fixes in v1.6.6.X maintenance series are included in this
|
||||||
|
release, unless otherwise noted.
|
||||||
|
|
||||||
|
* "git branch -d branch" used to refuse deleting the branch even when
|
||||||
|
the branch is fully merged to its upstream branch if it is not merged
|
||||||
|
to the current branch. It now deletes it in such a case.
|
||||||
|
|
||||||
|
* "fiter-branch" command incorrectly said --prune-empty and --filter-commit
|
||||||
|
were incompatible; the latter should be read as --commit-filter.
|
||||||
|
|
||||||
|
* When using "git status" or asking "git diff" to compare the work tree
|
||||||
|
with something, they used to consider that a checked-out submodule with
|
||||||
|
uncommitted changes is not modified; this could cause people to forget
|
||||||
|
committing these changes in the submodule before committing in the
|
||||||
|
superproject. They now consider such a change as a modification and
|
||||||
|
"git diff" will append a "-dirty" to the work tree side when generating
|
||||||
|
patch output or when used with the --submodule option.
|
96
Documentation/RelNotes-1.7.1.1.txt
Normal file
96
Documentation/RelNotes-1.7.1.1.txt
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
Git v1.7.1.1 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.7.1
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* Authentication over http transport can now be made lazily, in that the
|
||||||
|
request can first go to a URL without username, get a 401 response and
|
||||||
|
then the client will ask for the username to use.
|
||||||
|
|
||||||
|
* We used to mistakenly think "../work" is a subdirectory of the current
|
||||||
|
directory when we are in "../work-xyz".
|
||||||
|
|
||||||
|
* The attribute mechanism now allows an entry that uses an attribute
|
||||||
|
macro that set/unset one attribute, immediately followed by an
|
||||||
|
overriding setting; this makes attribute macros much easier to use.
|
||||||
|
|
||||||
|
* We didn't recognize timezone "Z" as a synonym for "UTC" (75b37e70).
|
||||||
|
|
||||||
|
* In 1.7.0, read-tree and user commands that use the mechanism such as
|
||||||
|
checkout and merge were fixed to handle switching between branches one
|
||||||
|
of which has a file while the other has a directory at the same path
|
||||||
|
correctly even when there are some "confusing" pathnames in them. But
|
||||||
|
the algorithm used for this fix was suboptimal and had a terrible
|
||||||
|
performance degradation especially in larger trees.
|
||||||
|
|
||||||
|
* "git am -3" did not show diagnosis when the patch in the message was corrupt.
|
||||||
|
|
||||||
|
* After "git apply --whitespace=fix" removed trailing blank lines in an
|
||||||
|
patch in a patch series, it failed to apply later patches that depend
|
||||||
|
on the presence of such blank lines.
|
||||||
|
|
||||||
|
* "git bundle --stdin" segfaulted.
|
||||||
|
|
||||||
|
* "git checkout" and "git rebase" overwrote paths that are marked "assume
|
||||||
|
unchanged".
|
||||||
|
|
||||||
|
* "git commit --amend" on a commit with an invalid author-name line that
|
||||||
|
lacks the display name didn't work.
|
||||||
|
|
||||||
|
* "git describe" did not tie-break tags that point at the same commit
|
||||||
|
correctly; newer ones are preferred by paying attention to the
|
||||||
|
tagger date now.
|
||||||
|
|
||||||
|
* "git diff" used to tell underlying xdiff machinery to work very hard to
|
||||||
|
minimize the output, but this often was spending too many extra cycles
|
||||||
|
for very little gain.
|
||||||
|
|
||||||
|
* "git diff --color" did not paint extended diff headers per line
|
||||||
|
(i.e. the coloring escape sequence didn't end at the end of line),
|
||||||
|
which confused "less -R".
|
||||||
|
|
||||||
|
* "git fetch" over HTTP verifies the downloaded packfiles more robustly.
|
||||||
|
|
||||||
|
* The memory usage by "git index-pack" (run during "git fetch" and "git
|
||||||
|
push") got leaner.
|
||||||
|
|
||||||
|
* "GIT_DIR=foo.git git init --bare bar.git" created foo.git instead of bar.git.
|
||||||
|
|
||||||
|
* "git log --abbrev=$num --format='%h' ignored --abbrev=$num.
|
||||||
|
|
||||||
|
* "git ls-files ../out/side/cwd" refused to work.
|
||||||
|
|
||||||
|
* "git merge --log" used to replace the custom message given by "-m" with
|
||||||
|
the shortlog, instead of appending to it.
|
||||||
|
|
||||||
|
* "git notes copy" without any other argument segfaulted.
|
||||||
|
|
||||||
|
* "git pull" accepted "--dry-run", gave it to underlying "git fetch" but
|
||||||
|
ignored the option itself, resulting in a bogus attempt to merge
|
||||||
|
unrelated commit.
|
||||||
|
|
||||||
|
* "git rebase" did not faithfully reproduce a malformed author ident, that
|
||||||
|
is often seen in a repository converted from foreign SCMs.
|
||||||
|
|
||||||
|
* "git reset --hard" started from a wrong directory and a working tree in
|
||||||
|
a nonstandard location is in use got confused.
|
||||||
|
|
||||||
|
* "git send-email" lacked a way to specify the domainname used in the
|
||||||
|
EHLO/HELO exchange, causing rejected connection from picky servers.
|
||||||
|
It learned --smtp-domain option to solve this issue.
|
||||||
|
|
||||||
|
* "git send-email" did not declare a content-transfer-encoding and
|
||||||
|
content-type even when its payload needs to be sent in 8-bit.
|
||||||
|
|
||||||
|
* "git show -C -C" and other corner cases lost diff metainfo output
|
||||||
|
in 1.7.0.
|
||||||
|
|
||||||
|
* "git stash" incorrectly lost paths in the working tree that were
|
||||||
|
previously removed from the index.
|
||||||
|
|
||||||
|
* "git status" stopped refreshing the index by mistake in 1.7.1.
|
||||||
|
|
||||||
|
* "git status" showed excess "hints" even when advice.statusHints is set to false.
|
||||||
|
|
||||||
|
And other minor fixes and documentation updates.
|
19
Documentation/RelNotes-1.7.1.2.txt
Normal file
19
Documentation/RelNotes-1.7.1.2.txt
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
Git v1.7.1.2 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.7.1.1
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* "git commit" did not honor GIT_REFLOG_ACTION environment variable, resulting
|
||||||
|
reflog messages for cherry-pick and revert actions to be recorded as "commit".
|
||||||
|
|
||||||
|
* "git clone/fetch/pull" issued an incorrect error message when a ref and
|
||||||
|
a symref that points to the ref were updated at the same time. This
|
||||||
|
obviously would update them to the same value, and should not result in
|
||||||
|
an error condition.
|
||||||
|
|
||||||
|
* "git diff" inside a tree with many pathnames that have certain
|
||||||
|
characters has become very slow in 1.7.0 by mistake.
|
||||||
|
|
||||||
|
* "git rev-parse --parseopt --stop-at-non-option" did not stop at non option
|
||||||
|
when --keep-dashdash was in effect.
|
89
Documentation/RelNotes-1.7.1.txt
Normal file
89
Documentation/RelNotes-1.7.1.txt
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
Git v1.7.1 Release Notes
|
||||||
|
========================
|
||||||
|
|
||||||
|
Updates since v1.7.0
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* Eric Raymond is the maintainer of updated CIAbot scripts, in contrib/.
|
||||||
|
|
||||||
|
* gitk updates.
|
||||||
|
|
||||||
|
* Some commands (e.g. svn and http interfaces) that interactively ask
|
||||||
|
for a password can be told to use an external program given via
|
||||||
|
GIT_ASKPASS.
|
||||||
|
|
||||||
|
* Conflict markers that lead the common ancestor in diff3-style output
|
||||||
|
now have a label, which hopefully would help third-party tools that
|
||||||
|
expect one.
|
||||||
|
|
||||||
|
* Comes with an updated bash-completion script.
|
||||||
|
|
||||||
|
* "git am" learned "--keep-cr" option to handle inputs that are
|
||||||
|
a mixture of changes to files with and without CRLF line endings.
|
||||||
|
|
||||||
|
* "git cvsimport" learned -R option to leave revision mapping between
|
||||||
|
CVS revisions and resulting git commits.
|
||||||
|
|
||||||
|
* "git diff --submodule" notices and describes dirty submodules.
|
||||||
|
|
||||||
|
* "git for-each-ref" learned %(symref), %(symref:short) and %(flag)
|
||||||
|
tokens.
|
||||||
|
|
||||||
|
* "git hash-object --stdin-paths" can take "--no-filters" option now.
|
||||||
|
|
||||||
|
* "git init" can be told to look at init.templatedir configuration
|
||||||
|
variable (obviously that has to come from either /etc/gitconfig or
|
||||||
|
$HOME/.gitconfig).
|
||||||
|
|
||||||
|
* "git grep" learned "--no-index" option, to search inside contents that
|
||||||
|
are not managed by git.
|
||||||
|
|
||||||
|
* "git grep" learned --color=auto/always/never.
|
||||||
|
|
||||||
|
* "git grep" learned to paint filename and line-number in colors.
|
||||||
|
|
||||||
|
* "git log -p --first-parent -m" shows one-parent diff for merge
|
||||||
|
commits, instead of showing combined diff.
|
||||||
|
|
||||||
|
* "git merge-file" learned to use custom conflict marker size and also
|
||||||
|
to use the "union merge" behaviour.
|
||||||
|
|
||||||
|
* "git notes" command has been rewritten in C and learned many commands
|
||||||
|
and features to help you carry notes forward across rebases and amends.
|
||||||
|
|
||||||
|
* "git request-pull" identifies the commit the request is relative to in
|
||||||
|
a more readable way.
|
||||||
|
|
||||||
|
* "git reset" learned "--keep" option that lets you discard commits
|
||||||
|
near the tip while preserving your local changes in a way similar
|
||||||
|
to how "git checkout branch" does.
|
||||||
|
|
||||||
|
* "git status" notices and describes dirty submodules.
|
||||||
|
|
||||||
|
* "git svn" should work better when interacting with repositories
|
||||||
|
with CRLF line endings.
|
||||||
|
|
||||||
|
* "git imap-send" learned to support CRAM-MD5 authentication.
|
||||||
|
|
||||||
|
* "gitweb" installation procedure can use "minified" js/css files
|
||||||
|
better.
|
||||||
|
|
||||||
|
* Various documentation updates.
|
||||||
|
|
||||||
|
Fixes since v1.7.0
|
||||||
|
------------------
|
||||||
|
|
||||||
|
All of the fixes in v1.7.0.X maintenance series are included in this
|
||||||
|
release, unless otherwise noted.
|
||||||
|
|
||||||
|
* "git add frotz/nitfol" did not complain when the entire frotz/ directory
|
||||||
|
was ignored.
|
||||||
|
|
||||||
|
* "git diff --stat" used "int" to count the size of differences,
|
||||||
|
which could result in overflowing.
|
||||||
|
|
||||||
|
* "git rev-list --pretty=oneline" didn't terminate a record with LF for
|
||||||
|
commits without any message.
|
||||||
|
|
||||||
|
* "git rev-list --abbrev-commit" defaulted to 40-byte abbreviations, unlike
|
||||||
|
newer tools in the git toolset.
|
152
Documentation/RelNotes-1.7.2.txt
Normal file
152
Documentation/RelNotes-1.7.2.txt
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
Git v1.7.2 Release Notes (draft)
|
||||||
|
================================
|
||||||
|
|
||||||
|
Updates since v1.7.1
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* core.eol configuration and text/eol attributes are the new way to control
|
||||||
|
the end of line conventions for files in the working tree.
|
||||||
|
|
||||||
|
* core.autocrlf has been made safer - it will now only handle line
|
||||||
|
endings for new files and files that are LF-only in the
|
||||||
|
repository. To normalize content that has been checked in with
|
||||||
|
CRLF, use the new eol/text attributes.
|
||||||
|
|
||||||
|
* The whitespace rules used in "git apply --whitespace" and "git diff"
|
||||||
|
gained a new member in the family (tab-in-indent) to help projects with
|
||||||
|
policy to indent only with spaces.
|
||||||
|
|
||||||
|
* When working from a subdirectory, by default, git does not look for its
|
||||||
|
metadirectory ".git" across filesystems, primarily to help people who
|
||||||
|
have invocations of git in their custom PS1 prompts, as being outside
|
||||||
|
of a git repository would look for ".git" all the way up to the root
|
||||||
|
directory, and NFS mounts are often slow. DISCOVERY_ACROSS_FILESYSTEM
|
||||||
|
environment variable can be used to tell git not to stop at a
|
||||||
|
filesystem boundary.
|
||||||
|
|
||||||
|
* Usage help messages generated by parse-options library (i.e. most
|
||||||
|
of the Porcelain commands) are sent to the standard output now.
|
||||||
|
|
||||||
|
* ':/<string>' notation to look for a commit now takes regular expression
|
||||||
|
and it is not anchored at the beginning of the commit log message
|
||||||
|
anymore (this is a backward incompatible change).
|
||||||
|
|
||||||
|
* "git" wrapper learned "-c name=value" option to override configuration
|
||||||
|
variable from the command line.
|
||||||
|
|
||||||
|
* Improved portability for various platforms including older SunOS,
|
||||||
|
HP-UX 10/11, AIX, Tru64, etc. and platforms with Python 2.4.
|
||||||
|
|
||||||
|
* The message from "git am -3" has been improved when conflict
|
||||||
|
resolution ended up making the patch a no-op.
|
||||||
|
|
||||||
|
* "git blame" applies the textconv filter to the contents it works
|
||||||
|
on, when available.
|
||||||
|
|
||||||
|
* "git checkout --orphan newbranch" is similar to "-b newbranch" but
|
||||||
|
prepares to create a root commit that is not connected to any existing
|
||||||
|
commit.
|
||||||
|
|
||||||
|
* "git cherry-pick" learned to pick a range of commits
|
||||||
|
(e.g. "cherry-pick A..B" and "cherry-pick --stdin"), so did "git
|
||||||
|
revert"; these do not support the nicer sequencing control "rebase
|
||||||
|
[-i]" has, though.
|
||||||
|
|
||||||
|
* "git cherry-pick" and "git revert" learned --strategy option to specify
|
||||||
|
the merge strategy to be used when performing three-way merges.
|
||||||
|
|
||||||
|
* "git cvsserver" can be told to use pserver; its password file can be
|
||||||
|
stored outside the repository.
|
||||||
|
|
||||||
|
* The output from the textconv filter used by "git diff" can be cached to
|
||||||
|
speed up their reuse.
|
||||||
|
|
||||||
|
* "git diff --word-diff=<mode>" extends the existing "--color-words"
|
||||||
|
option, making it more useful in color-challenged environments.
|
||||||
|
|
||||||
|
* The regexp to detect function headers used by "git diff" for PHP has
|
||||||
|
been enhanced for visibility modifiers (public, protected, etc.) to
|
||||||
|
better support PHP5.
|
||||||
|
|
||||||
|
* "diff.noprefix" configuration variable can be used to implicitly
|
||||||
|
ask for "diff --no-prefix" behaviour.
|
||||||
|
|
||||||
|
* "git for-each-ref" learned "%(objectname:short)" that gives the object
|
||||||
|
name abbreviated.
|
||||||
|
|
||||||
|
* "git format-patch" learned --signature option and format.signature
|
||||||
|
configuration variable to customize the e-mail signature used in the
|
||||||
|
output.
|
||||||
|
|
||||||
|
* Various options to "git grep" (e.g. --count, --name-only) work better
|
||||||
|
with binary files.
|
||||||
|
|
||||||
|
* "git grep" learned "-Ovi" to open the files with hits in your editor.
|
||||||
|
|
||||||
|
* "git help -w" learned "chrome" and "chromium" browsers.
|
||||||
|
|
||||||
|
* "git log --decorate" shows commit decorations in various colours.
|
||||||
|
|
||||||
|
* "git log --follow <path>" follows across copies (it used to only follow
|
||||||
|
renames). This may make the processing more expensive.
|
||||||
|
|
||||||
|
* "git log --pretty=format:<template>" specifier learned "% <something>"
|
||||||
|
magic that inserts a space only when %<something> expands to a
|
||||||
|
non-empty string; this is similar to "%+<something>" magic, but is
|
||||||
|
useful in a context to generate a single line output.
|
||||||
|
|
||||||
|
* "git notes prune" learned "-n" (dry-run) and "-v" options, similar to
|
||||||
|
what "git prune" has.
|
||||||
|
|
||||||
|
* "git patch-id" can be fed a mbox without getting confused by the
|
||||||
|
signature line in the format-patch output.
|
||||||
|
|
||||||
|
* "git remote" learned "set-branches" subcommand.
|
||||||
|
|
||||||
|
* "git rev-list A..B" learned --ancestry-path option to further limit
|
||||||
|
the result to the commits that are on the ancestry chain between A and
|
||||||
|
B (i.e. commits that are not descendants of A are excluded).
|
||||||
|
|
||||||
|
* "git show -5" is equivalent to "git show --do-walk 5"; this is similar
|
||||||
|
to the update to make "git show master..next" walk the history,
|
||||||
|
introduced in 1.6.4.
|
||||||
|
|
||||||
|
* "git status [-s] --ignored" can be used to list ignored paths.
|
||||||
|
|
||||||
|
* "git status -s -b" shows the current branch in the output.
|
||||||
|
|
||||||
|
* "git status" learned "--ignore-submodules" option.
|
||||||
|
|
||||||
|
* Various "gitweb" enhancements and clean-ups, including syntax
|
||||||
|
highlighting, "plackup" support for instaweb, .fcgi suffix to run
|
||||||
|
it as FastCGI script, etc.
|
||||||
|
|
||||||
|
* The test harness has been updated to produce TAP-friendly output.
|
||||||
|
|
||||||
|
|
||||||
|
Fixes since v1.7.1
|
||||||
|
------------------
|
||||||
|
|
||||||
|
All of the fixes in v1.7.1.X maintenance series are included in this
|
||||||
|
release, unless otherwise noted.
|
||||||
|
|
||||||
|
* We didn't URL decode "file:///path/to/repo" correctly when path/to/repo
|
||||||
|
had percent-encoded characters (638794c, 9d2e942, ce83eda, 3c73a1d).
|
||||||
|
|
||||||
|
* "git clone" did not configure remote.origin.url correctly for bare
|
||||||
|
clones (df61c889).
|
||||||
|
|
||||||
|
* "git diff --graph" works better with "--color-words" and other options
|
||||||
|
(81fa024..4297c0a).
|
||||||
|
|
||||||
|
* "git diff" could show ambiguous abbreviation of blob object names on
|
||||||
|
its "index" line (3e5a188).
|
||||||
|
|
||||||
|
* "git reset --hard" started from a wrong directory and a working tree in
|
||||||
|
a nonstandard location is in use got confused (560fb6a1).
|
||||||
|
|
||||||
|
--
|
||||||
|
exec >/var/tmp/1
|
||||||
|
O=v1.7.2-rc1-37-g2a16315
|
||||||
|
echo O=$(git describe HEAD)
|
||||||
|
git shortlog --no-merges HEAD ^maint ^$O
|
|
@ -41,6 +41,7 @@ Checklist (and a short version for the impatient):
|
||||||
maintainer (gitster@pobox.com) if (and only if) the patch
|
maintainer (gitster@pobox.com) if (and only if) the patch
|
||||||
is ready for inclusion. If you use git-send-email(1),
|
is ready for inclusion. If you use git-send-email(1),
|
||||||
please test it first by sending email to yourself.
|
please test it first by sending email to yourself.
|
||||||
|
- see below for instructions specific to your mailer
|
||||||
|
|
||||||
Long version:
|
Long version:
|
||||||
|
|
||||||
|
@ -53,6 +54,34 @@ But the patch submission requirements are a lot more relaxed
|
||||||
here on the technical/contents front, because the core GIT is
|
here on the technical/contents front, because the core GIT is
|
||||||
thousand times smaller ;-). So here is only the relevant bits.
|
thousand times smaller ;-). So here is only the relevant bits.
|
||||||
|
|
||||||
|
(0) Decide what to base your work on.
|
||||||
|
|
||||||
|
In general, always base your work on the oldest branch that your
|
||||||
|
change is relevant to.
|
||||||
|
|
||||||
|
- A bugfix should be based on 'maint' in general. If the bug is not
|
||||||
|
present in 'maint', base it on 'master'. For a bug that's not yet
|
||||||
|
in 'master', find the topic that introduces the regression, and
|
||||||
|
base your work on the tip of the topic.
|
||||||
|
|
||||||
|
- A new feature should be based on 'master' in general. If the new
|
||||||
|
feature depends on a topic that is in 'pu', but not in 'master',
|
||||||
|
base your work on the tip of that topic.
|
||||||
|
|
||||||
|
- Corrections and enhancements to a topic not yet in 'master' should
|
||||||
|
be based on the tip of that topic. If the topic has not been merged
|
||||||
|
to 'next', it's alright to add a note to squash minor corrections
|
||||||
|
into the series.
|
||||||
|
|
||||||
|
- In the exceptional case that a new feature depends on several topics
|
||||||
|
not in 'master', start working on 'next' or 'pu' privately and send
|
||||||
|
out patches for discussion. Before the final merge, you may have to
|
||||||
|
wait until some of the dependent topics graduate to 'master', and
|
||||||
|
rebase your work.
|
||||||
|
|
||||||
|
To find the tip of a topic branch, run "git log --first-parent
|
||||||
|
master..pu" and look for the merge commit. The second parent of this
|
||||||
|
commit is the tip of the topic branch.
|
||||||
|
|
||||||
(1) Make separate commits for logically separate changes.
|
(1) Make separate commits for logically separate changes.
|
||||||
|
|
||||||
|
@ -170,17 +199,16 @@ patch, format it as "multipart/signed", not a text/plain message
|
||||||
that starts with '-----BEGIN PGP SIGNED MESSAGE-----'. That is
|
that starts with '-----BEGIN PGP SIGNED MESSAGE-----'. That is
|
||||||
not a text/plain, it's something else.
|
not a text/plain, it's something else.
|
||||||
|
|
||||||
Note that your maintainer does not necessarily read everything
|
Unless your patch is a very trivial and an obviously correct one,
|
||||||
on the git mailing list. If your patch is for discussion first,
|
first send it with "To:" set to the mailing list, with "cc:" listing
|
||||||
send it "To:" the mailing list, and optionally "cc:" him. If it
|
people who are involved in the area you are touching (the output from
|
||||||
is trivially correct or after the list reached a consensus, send
|
"git blame $path" and "git shortlog --no-merges $path" would help to
|
||||||
it "To:" the maintainer and optionally "cc:" the list for
|
identify them), to solicit comments and reviews. After the list
|
||||||
inclusion.
|
reached a consensus that it is a good idea to apply the patch, re-send
|
||||||
|
it with "To:" set to the maintainer and optionally "cc:" the list for
|
||||||
Also note that your maintainer does not actively involve himself in
|
inclusion. Do not forget to add trailers such as "Acked-by:",
|
||||||
maintaining what are in contrib/ hierarchy. When you send fixes and
|
"Reviewed-by:" and "Tested-by:" after your "Signed-off-by:" line as
|
||||||
enhancements to them, do not forget to "cc: " the person who primarily
|
necessary.
|
||||||
worked on that hierarchy in contrib/.
|
|
||||||
|
|
||||||
|
|
||||||
(4) Sign your work
|
(4) Sign your work
|
||||||
|
@ -279,6 +307,20 @@ from the list and queue it to 'pu', in order to make it easier for
|
||||||
people play with it without having to pick up and apply the patch to
|
people play with it without having to pick up and apply the patch to
|
||||||
their trees themselves.
|
their trees themselves.
|
||||||
|
|
||||||
|
------------------------------------------------
|
||||||
|
Know the status of your patch after submission
|
||||||
|
|
||||||
|
* You can use Git itself to find out when your patch is merged in
|
||||||
|
master. 'git pull --rebase' will automatically skip already-applied
|
||||||
|
patches, and will let you know. This works only if you rebase on top
|
||||||
|
of the branch in which your patch has been merged (i.e. it will not
|
||||||
|
tell you if your patch is merged in pu if you rebase on top of
|
||||||
|
master).
|
||||||
|
|
||||||
|
* Read the git mailing list, the maintainer regularly posts messages
|
||||||
|
entitled "What's cooking in git.git" and "What's in git.git" giving
|
||||||
|
the status of various proposed changes.
|
||||||
|
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
MUA specific hints
|
MUA specific hints
|
||||||
|
|
||||||
|
@ -505,12 +547,28 @@ Gmail
|
||||||
|
|
||||||
GMail does not appear to have any way to turn off line wrapping in the web
|
GMail does not appear to have any way to turn off line wrapping in the web
|
||||||
interface, so this will mangle any emails that you send. You can however
|
interface, so this will mangle any emails that you send. You can however
|
||||||
use any IMAP email client to connect to the google imap server, and forward
|
use "git send-email" and send your patches through the GMail SMTP server, or
|
||||||
the emails through that. Just make sure to disable line wrapping in that
|
use any IMAP email client to connect to the google IMAP server and forward
|
||||||
email client. Alternatively, use "git send-email" instead.
|
the emails through that.
|
||||||
|
|
||||||
Submitting properly formatted patches via Gmail is simple now that
|
To use "git send-email" and send your patches through the GMail SMTP server,
|
||||||
IMAP support is available. First, edit your ~/.gitconfig to specify your
|
edit ~/.gitconfig to specify your account settings:
|
||||||
|
|
||||||
|
[sendemail]
|
||||||
|
smtpencryption = tls
|
||||||
|
smtpserver = smtp.gmail.com
|
||||||
|
smtpuser = user@gmail.com
|
||||||
|
smtppass = p4ssw0rd
|
||||||
|
smtpserverport = 587
|
||||||
|
|
||||||
|
Once your commits are ready to be sent to the mailing list, run the
|
||||||
|
following commands:
|
||||||
|
|
||||||
|
$ git format-patch --cover-letter -M origin/master -o outgoing/
|
||||||
|
$ edit outgoing/0000-*
|
||||||
|
$ git send-email outgoing/*
|
||||||
|
|
||||||
|
To submit using the IMAP interface, first, edit your ~/.gitconfig to specify your
|
||||||
account settings:
|
account settings:
|
||||||
|
|
||||||
[imap]
|
[imap]
|
||||||
|
@ -524,14 +582,12 @@ account settings:
|
||||||
You might need to instead use: folder = "[Google Mail]/Drafts" if you get an error
|
You might need to instead use: folder = "[Google Mail]/Drafts" if you get an error
|
||||||
that the "Folder doesn't exist".
|
that the "Folder doesn't exist".
|
||||||
|
|
||||||
Next, ensure that your Gmail settings are correct. In "Settings" the
|
Once your commits are ready to be sent to the mailing list, run the
|
||||||
"Use Unicode (UTF-8) encoding for outgoing messages" should be checked.
|
following commands:
|
||||||
|
|
||||||
Once your commits are ready to send to the mailing list, run the following
|
$ git format-patch --cover-letter -M --stdout origin/master | git imap-send
|
||||||
command to send the patch emails to your Gmail Drafts folder.
|
|
||||||
|
|
||||||
$ git format-patch -M --stdout origin/master | git imap-send
|
Just make sure to disable line wrapping in the email client (GMail web
|
||||||
|
interface will line wrap no matter what, so you need to use a real
|
||||||
Go to your Gmail account, open the Drafts folder, find the patch email, fill
|
IMAP client).
|
||||||
in the To: and CC: fields and send away!
|
|
||||||
|
|
||||||
|
|
|
@ -79,32 +79,37 @@ of lines before or after the line given by <start>.
|
||||||
of the --date option at linkgit:git-log[1].
|
of the --date option at linkgit:git-log[1].
|
||||||
|
|
||||||
-M|<num>|::
|
-M|<num>|::
|
||||||
Detect moving lines in the file as well. When a commit
|
Detect moved or copied lines within a file. When a commit
|
||||||
moves a block of lines in a file (e.g. the original file
|
moves or copies a block of lines (e.g. the original file
|
||||||
has A and then B, and the commit changes it to B and
|
has A and then B, and the commit changes it to B and then
|
||||||
then A), the traditional 'blame' algorithm typically blames
|
A), the traditional 'blame' algorithm notices only half of
|
||||||
the lines that were moved up (i.e. B) to the parent and
|
the movement and typically blames the lines that were moved
|
||||||
assigns blame to the lines that were moved down (i.e. A)
|
up (i.e. B) to the parent and assigns blame to the lines that
|
||||||
to the child commit. With this option, both groups of lines
|
were moved down (i.e. A) to the child commit. With this
|
||||||
are blamed on the parent.
|
option, both groups of lines are blamed on the parent by
|
||||||
|
running extra passes of inspection.
|
||||||
+
|
+
|
||||||
<num> is optional but it is the lower bound on the number of
|
<num> is optional but it is the lower bound on the number of
|
||||||
alphanumeric characters that git must detect as moving
|
alphanumeric characters that git must detect as moving/copying
|
||||||
within a file for it to associate those lines with the parent
|
within a file for it to associate those lines with the parent
|
||||||
commit.
|
commit. The default value is 20.
|
||||||
|
|
||||||
-C|<num>|::
|
-C|<num>|::
|
||||||
In addition to `-M`, detect lines copied from other
|
In addition to `-M`, detect lines moved or copied from other
|
||||||
files that were modified in the same commit. This is
|
files that were modified in the same commit. This is
|
||||||
useful when you reorganize your program and move code
|
useful when you reorganize your program and move code
|
||||||
around across files. When this option is given twice,
|
around across files. When this option is given twice,
|
||||||
the command additionally looks for copies from all other
|
the command additionally looks for copies from other
|
||||||
files in the parent for the commit that creates the file.
|
files in the commit that creates the file. When this
|
||||||
|
option is given three times, the command additionally
|
||||||
|
looks for copies from other files in any commit.
|
||||||
+
|
+
|
||||||
<num> is optional but it is the lower bound on the number of
|
<num> is optional but it is the lower bound on the number of
|
||||||
alphanumeric characters that git must detect as moving
|
alphanumeric characters that git must detect as moving/copying
|
||||||
between files for it to associate those lines with the parent
|
between files for it to associate those lines with the parent
|
||||||
commit.
|
commit. And the default value is 40. If there are more than one
|
||||||
|
`-C` options given, the <num> argument of the last `-C` will
|
||||||
|
take effect.
|
||||||
|
|
||||||
-h::
|
-h::
|
||||||
--help::
|
--help::
|
||||||
|
|
|
@ -64,7 +64,7 @@ The values following the equals sign in variable assign are all either
|
||||||
a string, an integer, or a boolean. Boolean values may be given as yes/no,
|
a string, an integer, or a boolean. Boolean values may be given as yes/no,
|
||||||
0/1, true/false or on/off. Case is not significant in boolean values, when
|
0/1, true/false or on/off. Case is not significant in boolean values, when
|
||||||
converting value to the canonical form using '--bool' type specifier;
|
converting value to the canonical form using '--bool' type specifier;
|
||||||
'git-config' will ensure that the output is "true" or "false".
|
'git config' will ensure that the output is "true" or "false".
|
||||||
|
|
||||||
String values may be entirely or partially enclosed in double quotes.
|
String values may be entirely or partially enclosed in double quotes.
|
||||||
You need to enclose variable values in double quotes if you want to
|
You need to enclose variable values in double quotes if you want to
|
||||||
|
@ -113,10 +113,46 @@ For command-specific variables, you will find a more detailed description
|
||||||
in the appropriate manual page. You will find a description of non-core
|
in the appropriate manual page. You will find a description of non-core
|
||||||
porcelain configuration variables in the respective porcelain documentation.
|
porcelain configuration variables in the respective porcelain documentation.
|
||||||
|
|
||||||
|
advice.*::
|
||||||
|
When set to 'true', display the given optional help message.
|
||||||
|
When set to 'false', do not display. The configuration variables
|
||||||
|
are:
|
||||||
|
+
|
||||||
|
--
|
||||||
|
pushNonFastForward::
|
||||||
|
Advice shown when linkgit:git-push[1] refuses
|
||||||
|
non-fast-forward refs. Default: true.
|
||||||
|
statusHints::
|
||||||
|
Directions on how to stage/unstage/add shown in the
|
||||||
|
output of linkgit:git-status[1] and the template shown
|
||||||
|
when writing commit messages. Default: true.
|
||||||
|
commitBeforeMerge::
|
||||||
|
Advice shown when linkgit:git-merge[1] refuses to
|
||||||
|
merge to avoid overwritting local changes.
|
||||||
|
Default: true.
|
||||||
|
resolveConflict::
|
||||||
|
Advices shown by various commands when conflicts
|
||||||
|
prevent the operation from being performed.
|
||||||
|
Default: true.
|
||||||
|
implicitIdentity::
|
||||||
|
Advice on how to set your identity configuration when
|
||||||
|
your information is guessed from the system username and
|
||||||
|
domain name. Default: true.
|
||||||
|
|
||||||
|
detachedHead::
|
||||||
|
Advice shown when you used linkgit::git-checkout[1] to
|
||||||
|
move to the detach HEAD state, to instruct how to create
|
||||||
|
a local branch after the fact. Default: true.
|
||||||
|
--
|
||||||
|
|
||||||
core.fileMode::
|
core.fileMode::
|
||||||
If false, the executable bit differences between the index and
|
If false, the executable bit differences between the index and
|
||||||
the working copy are ignored; useful on broken filesystems like FAT.
|
the working copy are ignored; useful on broken filesystems like FAT.
|
||||||
See linkgit:git-update-index[1]. True by default.
|
See linkgit:git-update-index[1].
|
||||||
|
+
|
||||||
|
The default is true, except linkgit:git-clone[1] or linkgit:git-init[1]
|
||||||
|
will probe and set core.fileMode false if appropriate when the
|
||||||
|
repository is created.
|
||||||
|
|
||||||
core.ignoreCygwinFSTricks::
|
core.ignoreCygwinFSTricks::
|
||||||
This option is only used by Cygwin implementation of Git. If false,
|
This option is only used by Cygwin implementation of Git. If false,
|
||||||
|
@ -129,6 +165,18 @@ core.ignoreCygwinFSTricks::
|
||||||
is true, in which case ignoreCygwinFSTricks is ignored as Cygwin's
|
is true, in which case ignoreCygwinFSTricks is ignored as Cygwin's
|
||||||
POSIX emulation is required to support core.filemode.
|
POSIX emulation is required to support core.filemode.
|
||||||
|
|
||||||
|
core.ignorecase::
|
||||||
|
If true, this option enables various workarounds to enable
|
||||||
|
git to work better on filesystems that are not case sensitive,
|
||||||
|
like FAT. For example, if a directory listing finds
|
||||||
|
"makefile" when git expects "Makefile", git will assume
|
||||||
|
it is really the same file, and continue to remember it as
|
||||||
|
"Makefile".
|
||||||
|
+
|
||||||
|
The default is false, except linkgit:git-clone[1] or linkgit:git-init[1]
|
||||||
|
will probe and set core.ignorecase true if appropriate when the repository
|
||||||
|
is created.
|
||||||
|
|
||||||
core.trustctime::
|
core.trustctime::
|
||||||
If false, the ctime differences between the index and the
|
If false, the ctime differences between the index and the
|
||||||
working copy are ignored; useful when the inode change time
|
working copy are ignored; useful when the inode change time
|
||||||
|
@ -148,19 +196,17 @@ core.quotepath::
|
||||||
quoted without `-z` regardless of the setting of this
|
quoted without `-z` regardless of the setting of this
|
||||||
variable.
|
variable.
|
||||||
|
|
||||||
core.autocrlf::
|
core.eol::
|
||||||
If true, makes git convert `CRLF` at the end of lines in text files to
|
Sets the line ending type to use in the working directory for
|
||||||
`LF` when reading from the filesystem, and convert in reverse when
|
files that have the `text` property set. Alternatives are
|
||||||
writing to the filesystem. The variable can be set to
|
'lf', 'crlf' and 'native', which uses the platform's native
|
||||||
'input', in which case the conversion happens only while
|
line ending. The default value is `native`. See
|
||||||
reading from the filesystem but files are written out with
|
linkgit:gitattributes[5] for more information on end-of-line
|
||||||
`LF` at the end of lines. Currently, which paths to consider
|
conversion.
|
||||||
"text" (i.e. be subjected to the autocrlf mechanism) is
|
|
||||||
decided purely based on the contents.
|
|
||||||
|
|
||||||
core.safecrlf::
|
core.safecrlf::
|
||||||
If true, makes git check if converting `CRLF` as controlled by
|
If true, makes git check if converting `CRLF` is reversible when
|
||||||
`core.autocrlf` is reversible. Git will verify if a command
|
end-of-line conversion is active. Git will verify if a command
|
||||||
modifies a file in the work tree either directly or indirectly.
|
modifies a file in the work tree either directly or indirectly.
|
||||||
For example, committing a file followed by checking out the
|
For example, committing a file followed by checking out the
|
||||||
same file should yield the original file in the work tree. If
|
same file should yield the original file in the work tree. If
|
||||||
|
@ -170,7 +216,7 @@ core.safecrlf::
|
||||||
irreversible conversion but continue the operation.
|
irreversible conversion but continue the operation.
|
||||||
+
|
+
|
||||||
CRLF conversion bears a slight chance of corrupting data.
|
CRLF conversion bears a slight chance of corrupting data.
|
||||||
autocrlf=true will convert CRLF to LF during commit and LF to
|
When it is enabled, git will convert CRLF to LF during commit and LF to
|
||||||
CRLF during checkout. A file that contains a mixture of LF and
|
CRLF during checkout. A file that contains a mixture of LF and
|
||||||
CRLF before the commit cannot be recreated by git. For text
|
CRLF before the commit cannot be recreated by git. For text
|
||||||
files this is the right thing to do: it corrects line endings
|
files this is the right thing to do: it corrects line endings
|
||||||
|
@ -194,21 +240,35 @@ converting CRLFs corrupts data.
|
||||||
+
|
+
|
||||||
Note, this safety check does not mean that a checkout will generate a
|
Note, this safety check does not mean that a checkout will generate a
|
||||||
file identical to the original file for a different setting of
|
file identical to the original file for a different setting of
|
||||||
`core.autocrlf`, but only for the current one. For example, a text
|
`core.eol` and `core.autocrlf`, but only for the current one. For
|
||||||
file with `LF` would be accepted with `core.autocrlf=input` and could
|
example, a text file with `LF` would be accepted with `core.eol=lf`
|
||||||
later be checked out with `core.autocrlf=true`, in which case the
|
and could later be checked out with `core.eol=crlf`, in which case the
|
||||||
resulting file would contain `CRLF`, although the original file
|
resulting file would contain `CRLF`, although the original file
|
||||||
contained `LF`. However, in both work trees the line endings would be
|
contained `LF`. However, in both work trees the line endings would be
|
||||||
consistent, that is either all `LF` or all `CRLF`, but never mixed. A
|
consistent, that is either all `LF` or all `CRLF`, but never mixed. A
|
||||||
file with mixed line endings would be reported by the `core.safecrlf`
|
file with mixed line endings would be reported by the `core.safecrlf`
|
||||||
mechanism.
|
mechanism.
|
||||||
|
|
||||||
|
core.autocrlf::
|
||||||
|
Setting this variable to "true" is almost the same as setting
|
||||||
|
the `text` attribute to "auto" on all files except that text
|
||||||
|
files are not guaranteed to be normalized: files that contain
|
||||||
|
`CRLF` in the repository will not be touched. Use this
|
||||||
|
setting if you want to have `CRLF` line endings in your
|
||||||
|
working directory even though the repository does not have
|
||||||
|
normalized line endings. This variable can be set to 'input',
|
||||||
|
in which case no output conversion is performed.
|
||||||
|
|
||||||
core.symlinks::
|
core.symlinks::
|
||||||
If false, symbolic links are checked out as small plain files that
|
If false, symbolic links are checked out as small plain files that
|
||||||
contain the link text. linkgit:git-update-index[1] and
|
contain the link text. linkgit:git-update-index[1] and
|
||||||
linkgit:git-add[1] will not change the recorded type to regular
|
linkgit:git-add[1] will not change the recorded type to regular
|
||||||
file. Useful on filesystems like FAT that do not support
|
file. Useful on filesystems like FAT that do not support
|
||||||
symbolic links. True by default.
|
symbolic links.
|
||||||
|
+
|
||||||
|
The default is true, except linkgit:git-clone[1] or linkgit:git-init[1]
|
||||||
|
will probe and set core.symlinks false if appropriate when the repository
|
||||||
|
is created.
|
||||||
|
|
||||||
core.gitProxy::
|
core.gitProxy::
|
||||||
A "proxy command" to execute (as 'command host port') instead
|
A "proxy command" to execute (as 'command host port') instead
|
||||||
|
@ -257,17 +317,24 @@ false), while all other repositories are assumed to be bare (bare
|
||||||
= true).
|
= true).
|
||||||
|
|
||||||
core.worktree::
|
core.worktree::
|
||||||
Set the path to the working tree. The value will not be
|
Set the path to the root of the work tree.
|
||||||
used in combination with repositories found automatically in
|
|
||||||
a .git directory (i.e. $GIT_DIR is not set).
|
|
||||||
This can be overridden by the GIT_WORK_TREE environment
|
This can be overridden by the GIT_WORK_TREE environment
|
||||||
variable and the '--work-tree' command line option. It can be
|
variable and the '--work-tree' command line option. It can be
|
||||||
a absolute path or relative path to the directory specified by
|
an absolute path or a relative path to the .git directory,
|
||||||
--git-dir or GIT_DIR.
|
either specified by --git-dir or GIT_DIR, or automatically
|
||||||
Note: If --git-dir or GIT_DIR are specified but none of
|
discovered.
|
||||||
|
If --git-dir or GIT_DIR are specified but none of
|
||||||
--work-tree, GIT_WORK_TREE and core.worktree is specified,
|
--work-tree, GIT_WORK_TREE and core.worktree is specified,
|
||||||
the current working directory is regarded as the top directory
|
the current working directory is regarded as the root of the
|
||||||
of your working tree.
|
work tree.
|
||||||
|
+
|
||||||
|
Note that this variable is honored even when set in a configuration
|
||||||
|
file in a ".git" subdirectory of a directory, and its value differs
|
||||||
|
from the latter directory (e.g. "/path/to/.git/config" has
|
||||||
|
core.worktree set to "/different/path"), which is most likely a
|
||||||
|
misconfiguration. Running git commands in "/path/to" directory will
|
||||||
|
still use "/different/path" as the root of the work tree and can cause
|
||||||
|
great confusion to the users.
|
||||||
|
|
||||||
core.logAllRefUpdates::
|
core.logAllRefUpdates::
|
||||||
Enable the reflog. Updates to a ref <ref> is logged to the file
|
Enable the reflog. Updates to a ref <ref> is logged to the file
|
||||||
|
@ -362,19 +429,32 @@ You probably do not need to adjust this value.
|
||||||
+
|
+
|
||||||
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
||||||
|
|
||||||
|
core.bigFileThreshold::
|
||||||
|
Files larger than this size are stored deflated, without
|
||||||
|
attempting delta compression. Storing large files without
|
||||||
|
delta compression avoids excessive memory usage, at the
|
||||||
|
slight expense of increased disk usage.
|
||||||
|
+
|
||||||
|
Default is 512 MiB on all platforms. This should be reasonable
|
||||||
|
for most projects as source code and other text files can still
|
||||||
|
be delta compressed, but larger binary media files won't be.
|
||||||
|
+
|
||||||
|
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
||||||
|
+
|
||||||
|
Currently only linkgit:git-fast-import[1] honors this setting.
|
||||||
|
|
||||||
core.excludesfile::
|
core.excludesfile::
|
||||||
In addition to '.gitignore' (per-directory) and
|
In addition to '.gitignore' (per-directory) and
|
||||||
'.git/info/exclude', git looks into this file for patterns
|
'.git/info/exclude', git looks into this file for patterns
|
||||||
of files which are not meant to be tracked. See
|
of files which are not meant to be tracked. "{tilde}/" is expanded
|
||||||
linkgit:gitignore[5].
|
to the value of `$HOME` and "{tilde}user/" to the specified user's
|
||||||
|
home directory. See linkgit:gitignore[5].
|
||||||
|
|
||||||
core.editor::
|
core.editor::
|
||||||
Commands such as `commit` and `tag` that lets you edit
|
Commands such as `commit` and `tag` that lets you edit
|
||||||
messages by launching an editor uses the value of this
|
messages by launching an editor uses the value of this
|
||||||
variable when it is set, and the environment variable
|
variable when it is set, and the environment variable
|
||||||
`GIT_EDITOR` is not set. The order of preference is
|
`GIT_EDITOR` is not set. See linkgit:git-var[1].
|
||||||
`GIT_EDITOR` environment, `core.editor`, `VISUAL` and
|
|
||||||
`EDITOR` environment variables and then finally `vi`.
|
|
||||||
|
|
||||||
core.pager::
|
core.pager::
|
||||||
The command that git will use to paginate output. Can
|
The command that git will use to paginate output. Can
|
||||||
|
@ -396,18 +476,24 @@ core.pager::
|
||||||
|
|
||||||
core.whitespace::
|
core.whitespace::
|
||||||
A comma separated list of common whitespace problems to
|
A comma separated list of common whitespace problems to
|
||||||
notice. 'git-diff' will use `color.diff.whitespace` to
|
notice. 'git diff' will use `color.diff.whitespace` to
|
||||||
highlight them, and 'git-apply --whitespace=error' will
|
highlight them, and 'git apply --whitespace=error' will
|
||||||
consider them as errors. You can prefix `-` to disable
|
consider them as errors. You can prefix `-` to disable
|
||||||
any of them (e.g. `-trailing-space`):
|
any of them (e.g. `-trailing-space`):
|
||||||
+
|
+
|
||||||
* `trailing-space` treats trailing whitespaces at the end of the line
|
* `blank-at-eol` treats trailing whitespaces at the end of the line
|
||||||
as an error (enabled by default).
|
as an error (enabled by default).
|
||||||
* `space-before-tab` treats a space character that appears immediately
|
* `space-before-tab` treats a space character that appears immediately
|
||||||
before a tab character in the initial indent part of the line as an
|
before a tab character in the initial indent part of the line as an
|
||||||
error (enabled by default).
|
error (enabled by default).
|
||||||
* `indent-with-non-tab` treats a line that is indented with 8 or more
|
* `indent-with-non-tab` treats a line that is indented with 8 or more
|
||||||
space characters as an error (not enabled by default).
|
space characters as an error (not enabled by default).
|
||||||
|
* `tab-in-indent` treats a tab character in the initial indent part of
|
||||||
|
the line as an error (not enabled by default).
|
||||||
|
* `blank-at-eof` treats blank lines added at the end of file as an error
|
||||||
|
(enabled by default).
|
||||||
|
* `trailing-space` is a short-hand to cover both `blank-at-eol` and
|
||||||
|
`blank-at-eof`.
|
||||||
* `cr-at-eol` treats a carriage-return at the end of line as
|
* `cr-at-eol` treats a carriage-return at the end of line as
|
||||||
part of the line terminator, i.e. with it, `trailing-space`
|
part of the line terminator, i.e. with it, `trailing-space`
|
||||||
does not trigger if the character before such a carriage-return
|
does not trigger if the character before such a carriage-return
|
||||||
|
@ -439,8 +525,21 @@ On some file system/operating system combinations, this is unreliable.
|
||||||
Set this config setting to 'rename' there; However, This will remove the
|
Set this config setting to 'rename' there; However, This will remove the
|
||||||
check that makes sure that existing object files will not get overwritten.
|
check that makes sure that existing object files will not get overwritten.
|
||||||
|
|
||||||
|
core.notesRef::
|
||||||
|
When showing commit messages, also show notes which are stored in
|
||||||
|
the given ref. The ref must be fully qualified. If the given
|
||||||
|
ref does not exist, it is not an error but means that no
|
||||||
|
notes should be printed.
|
||||||
|
+
|
||||||
|
This setting defaults to "refs/notes/commits", and it can be overridden by
|
||||||
|
the 'GIT_NOTES_REF' environment variable. See linkgit:git-notes[1].
|
||||||
|
|
||||||
|
core.sparseCheckout::
|
||||||
|
Enable "sparse checkout" feature. See section "Sparse checkout" in
|
||||||
|
linkgit:git-read-tree[1] for more information.
|
||||||
|
|
||||||
add.ignore-errors::
|
add.ignore-errors::
|
||||||
Tells 'git-add' to continue adding files when some files cannot be
|
Tells 'git add' to continue adding files when some files cannot be
|
||||||
added due to indexing errors. Equivalent to the '--ignore-errors'
|
added due to indexing errors. Equivalent to the '--ignore-errors'
|
||||||
option of linkgit:git-add[1].
|
option of linkgit:git-add[1].
|
||||||
|
|
||||||
|
@ -461,12 +560,27 @@ it will be treated as a shell command. For example, defining
|
||||||
executed from the top-level directory of a repository, which may
|
executed from the top-level directory of a repository, which may
|
||||||
not necessarily be the current directory.
|
not necessarily be the current directory.
|
||||||
|
|
||||||
|
am.keepcr::
|
||||||
|
If true, git-am will call git-mailsplit for patches in mbox format
|
||||||
|
with parameter '--keep-cr'. In this case git-mailsplit will
|
||||||
|
not remove `\r` from lines ending with `\r\n`. Can be overrriden
|
||||||
|
by giving '--no-keep-cr' from the command line.
|
||||||
|
See linkgit:git-am[1], linkgit:git-mailsplit[1].
|
||||||
|
|
||||||
|
apply.ignorewhitespace::
|
||||||
|
When set to 'change', tells 'git apply' to ignore changes in
|
||||||
|
whitespace, in the same way as the '--ignore-space-change'
|
||||||
|
option.
|
||||||
|
When set to one of: no, none, never, false tells 'git apply' to
|
||||||
|
respect all whitespace differences.
|
||||||
|
See linkgit:git-apply[1].
|
||||||
|
|
||||||
apply.whitespace::
|
apply.whitespace::
|
||||||
Tells 'git-apply' how to handle whitespaces, in the same way
|
Tells 'git apply' how to handle whitespaces, in the same way
|
||||||
as the '--whitespace' option. See linkgit:git-apply[1].
|
as the '--whitespace' option. See linkgit:git-apply[1].
|
||||||
|
|
||||||
branch.autosetupmerge::
|
branch.autosetupmerge::
|
||||||
Tells 'git-branch' and 'git-checkout' to setup new branches
|
Tells 'git branch' and 'git checkout' to set up new branches
|
||||||
so that linkgit:git-pull[1] will appropriately merge from the
|
so that linkgit:git-pull[1] will appropriately merge from the
|
||||||
starting point branch. Note that even if this option is not set,
|
starting point branch. Note that even if this option is not set,
|
||||||
this behavior can be chosen per-branch using the `--track`
|
this behavior can be chosen per-branch using the `--track`
|
||||||
|
@ -477,7 +591,7 @@ branch.autosetupmerge::
|
||||||
branch. This option defaults to true.
|
branch. This option defaults to true.
|
||||||
|
|
||||||
branch.autosetuprebase::
|
branch.autosetuprebase::
|
||||||
When a new branch is created with 'git-branch' or 'git-checkout'
|
When a new branch is created with 'git branch' or 'git checkout'
|
||||||
that tracks another branch, this variable tells git to set
|
that tracks another branch, this variable tells git to set
|
||||||
up pull to rebase instead of merge (see "branch.<name>.rebase").
|
up pull to rebase instead of merge (see "branch.<name>.rebase").
|
||||||
When `never`, rebase is never automatically set to true.
|
When `never`, rebase is never automatically set to true.
|
||||||
|
@ -492,31 +606,31 @@ branch.autosetuprebase::
|
||||||
This option defaults to never.
|
This option defaults to never.
|
||||||
|
|
||||||
branch.<name>.remote::
|
branch.<name>.remote::
|
||||||
When in branch <name>, it tells 'git-fetch' and 'git-push' which
|
When in branch <name>, it tells 'git fetch' and 'git push' which
|
||||||
remote to fetch from/push to. It defaults to `origin` if no remote is
|
remote to fetch from/push to. It defaults to `origin` if no remote is
|
||||||
configured. `origin` is also used if you are not on any branch.
|
configured. `origin` is also used if you are not on any branch.
|
||||||
|
|
||||||
branch.<name>.merge::
|
branch.<name>.merge::
|
||||||
Defines, together with branch.<name>.remote, the upstream branch
|
Defines, together with branch.<name>.remote, the upstream branch
|
||||||
for the given branch. It tells 'git-fetch'/'git-pull' which
|
for the given branch. It tells 'git fetch'/'git pull' which
|
||||||
branch to merge and can also affect 'git-push' (see push.default).
|
branch to merge and can also affect 'git push' (see push.default).
|
||||||
When in branch <name>, it tells 'git-fetch' the default
|
When in branch <name>, it tells 'git fetch' the default
|
||||||
refspec to be marked for merging in FETCH_HEAD. The value is
|
refspec to be marked for merging in FETCH_HEAD. The value is
|
||||||
handled like the remote part of a refspec, and must match a
|
handled like the remote part of a refspec, and must match a
|
||||||
ref which is fetched from the remote given by
|
ref which is fetched from the remote given by
|
||||||
"branch.<name>.remote".
|
"branch.<name>.remote".
|
||||||
The merge information is used by 'git-pull' (which at first calls
|
The merge information is used by 'git pull' (which at first calls
|
||||||
'git-fetch') to lookup the default branch for merging. Without
|
'git fetch') to lookup the default branch for merging. Without
|
||||||
this option, 'git-pull' defaults to merge the first refspec fetched.
|
this option, 'git pull' defaults to merge the first refspec fetched.
|
||||||
Specify multiple values to get an octopus merge.
|
Specify multiple values to get an octopus merge.
|
||||||
If you wish to setup 'git-pull' so that it merges into <name> from
|
If you wish to setup 'git pull' so that it merges into <name> from
|
||||||
another branch in the local repository, you can point
|
another branch in the local repository, you can point
|
||||||
branch.<name>.merge to the desired branch, and use the special setting
|
branch.<name>.merge to the desired branch, and use the special setting
|
||||||
`.` (a period) for branch.<name>.remote.
|
`.` (a period) for branch.<name>.remote.
|
||||||
|
|
||||||
branch.<name>.mergeoptions::
|
branch.<name>.mergeoptions::
|
||||||
Sets default options for merging into branch <name>. The syntax and
|
Sets default options for merging into branch <name>. The syntax and
|
||||||
supported options are equal to that of linkgit:git-merge[1], but
|
supported options are the same as those of linkgit:git-merge[1], but
|
||||||
option values containing whitespace characters are currently not
|
option values containing whitespace characters are currently not
|
||||||
supported.
|
supported.
|
||||||
|
|
||||||
|
@ -571,29 +685,44 @@ color.diff.<slot>::
|
||||||
Use customized color for diff colorization. `<slot>` specifies
|
Use customized color for diff colorization. `<slot>` specifies
|
||||||
which part of the patch to use the specified color, and is one
|
which part of the patch to use the specified color, and is one
|
||||||
of `plain` (context text), `meta` (metainformation), `frag`
|
of `plain` (context text), `meta` (metainformation), `frag`
|
||||||
(hunk header), `old` (removed lines), `new` (added lines),
|
(hunk header), 'func' (function in hunk header), `old` (removed lines),
|
||||||
`commit` (commit headers), or `whitespace` (highlighting
|
`new` (added lines), `commit` (commit headers), or `whitespace`
|
||||||
whitespace errors). The values of these variables may be specified as
|
(highlighting whitespace errors). The values of these variables may be
|
||||||
in color.branch.<slot>.
|
specified as in color.branch.<slot>.
|
||||||
|
|
||||||
|
color.decorate.<slot>::
|
||||||
|
Use customized color for 'git log --decorate' output. `<slot>` is one
|
||||||
|
of `branch`, `remoteBranch`, `tag`, `stash` or `HEAD` for local
|
||||||
|
branches, remote tracking branches, tags, stash and HEAD, respectively.
|
||||||
|
|
||||||
color.grep::
|
color.grep::
|
||||||
When set to `always`, always highlight matches. When `false` (or
|
When set to `always`, always highlight matches. When `false` (or
|
||||||
`never`), never. When set to `true` or `auto`, use color only
|
`never`), never. When set to `true` or `auto`, use color only
|
||||||
when the output is written to the terminal. Defaults to `false`.
|
when the output is written to the terminal. Defaults to `false`.
|
||||||
|
|
||||||
color.grep.external::
|
color.grep.<slot>::
|
||||||
The string value of this variable is passed to an external 'grep'
|
Use customized color for grep colorization. `<slot>` specifies which
|
||||||
command as a command line option if match highlighting is turned
|
part of the line to use the specified color, and is one of
|
||||||
on. If set to an empty string, no option is passed at all,
|
+
|
||||||
turning off coloring for external 'grep' calls; this is the default.
|
--
|
||||||
For GNU grep, set it to `--color=always` to highlight matches even
|
`context`;;
|
||||||
when a pager is used.
|
non-matching text in context lines (when using `-A`, `-B`, or `-C`)
|
||||||
|
`filename`;;
|
||||||
color.grep.match::
|
filename prefix (when not using `-h`)
|
||||||
Use customized color for matches. The value of this variable
|
`function`;;
|
||||||
may be specified as in color.branch.<slot>. It is passed using
|
function name lines (when using `-p`)
|
||||||
the environment variables 'GREP_COLOR' and 'GREP_COLORS' when
|
`linenumber`;;
|
||||||
calling an external 'grep'.
|
line number prefix (when using `-n`)
|
||||||
|
`match`;;
|
||||||
|
matching text
|
||||||
|
`selected`;;
|
||||||
|
non-matching text in selected lines
|
||||||
|
`separator`;;
|
||||||
|
separators between fields on a line (`:`, `-`, and `=`)
|
||||||
|
and between hunks (`--`)
|
||||||
|
--
|
||||||
|
+
|
||||||
|
The values of these variables may be specified as in color.branch.<slot>.
|
||||||
|
|
||||||
color.interactive::
|
color.interactive::
|
||||||
When set to `always`, always use colors for interactive prompts
|
When set to `always`, always use colors for interactive prompts
|
||||||
|
@ -602,7 +731,7 @@ color.interactive::
|
||||||
colors only when the output is to the terminal. Defaults to false.
|
colors only when the output is to the terminal. Defaults to false.
|
||||||
|
|
||||||
color.interactive.<slot>::
|
color.interactive.<slot>::
|
||||||
Use customized color for 'git-add --interactive'
|
Use customized color for 'git add --interactive'
|
||||||
output. `<slot>` may be `prompt`, `header`, `help` or `error`, for
|
output. `<slot>` may be `prompt`, `header`, `help` or `error`, for
|
||||||
four distinct types of normal output from interactive
|
four distinct types of normal output from interactive
|
||||||
commands. The values of these variables may be specified as
|
commands. The values of these variables may be specified as
|
||||||
|
@ -641,18 +770,25 @@ color.ui::
|
||||||
terminal. When more specific variables of color.* are set, they always
|
terminal. When more specific variables of color.* are set, they always
|
||||||
take precedence over this setting. Defaults to false.
|
take precedence over this setting. Defaults to false.
|
||||||
|
|
||||||
|
commit.status::
|
||||||
|
A boolean to enable/disable inclusion of status information in the
|
||||||
|
commit message template when using an editor to prepare the commit
|
||||||
|
message. Defaults to true.
|
||||||
|
|
||||||
commit.template::
|
commit.template::
|
||||||
Specify a file to use as the template for new commit messages.
|
Specify a file to use as the template for new commit messages.
|
||||||
|
"{tilde}/" is expanded to the value of `$HOME` and "{tilde}user/" to the
|
||||||
|
specified user's home directory.
|
||||||
|
|
||||||
diff.autorefreshindex::
|
diff.autorefreshindex::
|
||||||
When using 'git-diff' to compare with work tree
|
When using 'git diff' to compare with work tree
|
||||||
files, do not consider stat-only change as changed.
|
files, do not consider stat-only change as changed.
|
||||||
Instead, silently run `git update-index --refresh` to
|
Instead, silently run `git update-index --refresh` to
|
||||||
update the cached stat information for paths whose
|
update the cached stat information for paths whose
|
||||||
contents in the work tree match the contents in the
|
contents in the work tree match the contents in the
|
||||||
index. This option defaults to true. Note that this
|
index. This option defaults to true. Note that this
|
||||||
affects only 'git-diff' Porcelain, and not lower level
|
affects only 'git diff' Porcelain, and not lower level
|
||||||
'diff' commands, such as 'git-diff-files'.
|
'diff' commands such as 'git diff-files'.
|
||||||
|
|
||||||
diff.external::
|
diff.external::
|
||||||
If this config variable is set, diff generation is not
|
If this config variable is set, diff generation is not
|
||||||
|
@ -664,24 +800,26 @@ diff.external::
|
||||||
your files, you might want to use linkgit:gitattributes[5] instead.
|
your files, you might want to use linkgit:gitattributes[5] instead.
|
||||||
|
|
||||||
diff.mnemonicprefix::
|
diff.mnemonicprefix::
|
||||||
If set, 'git-diff' uses a prefix pair that is different from the
|
If set, 'git diff' uses a prefix pair that is different from the
|
||||||
standard "a/" and "b/" depending on what is being compared. When
|
standard "a/" and "b/" depending on what is being compared. When
|
||||||
this configuration is in effect, reverse diff output also swaps
|
this configuration is in effect, reverse diff output also swaps
|
||||||
the order of the prefixes:
|
the order of the prefixes:
|
||||||
'git-diff';;
|
diff.noprefix::
|
||||||
|
If set, 'git diff' does not show any source or destination prefix.
|
||||||
|
`git diff`;;
|
||||||
compares the (i)ndex and the (w)ork tree;
|
compares the (i)ndex and the (w)ork tree;
|
||||||
'git-diff HEAD';;
|
`git diff HEAD`;;
|
||||||
compares a (c)ommit and the (w)ork tree;
|
compares a (c)ommit and the (w)ork tree;
|
||||||
'git diff --cached';;
|
`git diff --cached`;;
|
||||||
compares a (c)ommit and the (i)ndex;
|
compares a (c)ommit and the (i)ndex;
|
||||||
'git-diff HEAD:file1 file2';;
|
`git diff HEAD:file1 file2`;;
|
||||||
compares an (o)bject and a (w)ork tree entity;
|
compares an (o)bject and a (w)ork tree entity;
|
||||||
'git diff --no-index a b';;
|
`git diff --no-index a b`;;
|
||||||
compares two non-git things (1) and (2).
|
compares two non-git things (1) and (2).
|
||||||
|
|
||||||
diff.renameLimit::
|
diff.renameLimit::
|
||||||
The number of files to consider when performing the copy/rename
|
The number of files to consider when performing the copy/rename
|
||||||
detection; equivalent to the 'git-diff' option '-l'.
|
detection; equivalent to the 'git diff' option '-l'.
|
||||||
|
|
||||||
diff.renames::
|
diff.renames::
|
||||||
Tells git to detect renames. If set to any boolean value, it
|
Tells git to detect renames. If set to any boolean value, it
|
||||||
|
@ -756,6 +894,12 @@ format.subjectprefix::
|
||||||
The default for format-patch is to output files with the '[PATCH]'
|
The default for format-patch is to output files with the '[PATCH]'
|
||||||
subject prefix. Use this variable to change that prefix.
|
subject prefix. Use this variable to change that prefix.
|
||||||
|
|
||||||
|
format.signature::
|
||||||
|
The default for format-patch is to output a signature containing
|
||||||
|
the git version number. Use this variable to change that default.
|
||||||
|
Set this variable to the empty string ("") to suppress
|
||||||
|
signature generation.
|
||||||
|
|
||||||
format.suffix::
|
format.suffix::
|
||||||
The default for format-patch is to output files with the suffix
|
The default for format-patch is to output files with the suffix
|
||||||
`.patch`. Use this variable to change that suffix (make sure to
|
`.patch`. Use this variable to change that suffix (make sure to
|
||||||
|
@ -767,9 +911,9 @@ format.pretty::
|
||||||
linkgit:git-whatchanged[1].
|
linkgit:git-whatchanged[1].
|
||||||
|
|
||||||
format.thread::
|
format.thread::
|
||||||
The default threading style for 'git-format-patch'. Can be
|
The default threading style for 'git format-patch'. Can be
|
||||||
either a boolean value, `shallow` or `deep`. `shallow`
|
a boolean value, or `shallow` or `deep`. `shallow` threading
|
||||||
threading makes every mail a reply to the head of the series,
|
makes every mail a reply to the head of the series,
|
||||||
where the head is chosen from the cover letter, the
|
where the head is chosen from the cover letter, the
|
||||||
`\--in-reply-to`, and the first patch mail, in this order.
|
`\--in-reply-to`, and the first patch mail, in this order.
|
||||||
`deep` threading makes every mail a reply to the previous one.
|
`deep` threading makes every mail a reply to the previous one.
|
||||||
|
@ -785,8 +929,8 @@ format.signoff::
|
||||||
|
|
||||||
gc.aggressiveWindow::
|
gc.aggressiveWindow::
|
||||||
The window size parameter used in the delta compression
|
The window size parameter used in the delta compression
|
||||||
algorithm used by 'git-gc --aggressive'. This defaults
|
algorithm used by 'git gc --aggressive'. This defaults
|
||||||
to 10.
|
to 250.
|
||||||
|
|
||||||
gc.auto::
|
gc.auto::
|
||||||
When there are approximately more than this many loose
|
When there are approximately more than this many loose
|
||||||
|
@ -802,39 +946,42 @@ gc.autopacklimit::
|
||||||
default value is 50. Setting this to 0 disables it.
|
default value is 50. Setting this to 0 disables it.
|
||||||
|
|
||||||
gc.packrefs::
|
gc.packrefs::
|
||||||
'git-gc' does not run `git pack-refs` in a bare repository by
|
Running `git pack-refs` in a repository renders it
|
||||||
default so that older dumb-transport clients can still fetch
|
unclonable by Git versions prior to 1.5.1.2 over dumb
|
||||||
from the repository. Setting this to `true` lets 'git-gc'
|
transports such as HTTP. This variable determines whether
|
||||||
to run `git pack-refs`. Setting this to `false` tells
|
'git gc' runs `git pack-refs`. This can be set to `nobare`
|
||||||
'git-gc' never to run `git pack-refs`. The default setting is
|
to enable it within all non-bare repos or it can be set to a
|
||||||
`notbare`. Enable it only when you know you do not have to
|
boolean value. The default is `true`.
|
||||||
support such clients. The default setting will change to `true`
|
|
||||||
at some stage, and setting this to `false` will continue to
|
|
||||||
prevent `git pack-refs` from being run from 'git-gc'.
|
|
||||||
|
|
||||||
gc.pruneexpire::
|
gc.pruneexpire::
|
||||||
When 'git-gc' is run, it will call 'prune --expire 2.weeks.ago'.
|
When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'.
|
||||||
Override the grace period with this config variable. The value
|
Override the grace period with this config variable. The value
|
||||||
"now" may be used to disable this grace period and always prune
|
"now" may be used to disable this grace period and always prune
|
||||||
unreachable objects immediately.
|
unreachable objects immediately.
|
||||||
|
|
||||||
gc.reflogexpire::
|
gc.reflogexpire::
|
||||||
'git-reflog expire' removes reflog entries older than
|
gc.<pattern>.reflogexpire::
|
||||||
this time; defaults to 90 days.
|
'git reflog expire' removes reflog entries older than
|
||||||
|
this time; defaults to 90 days. With "<pattern>" (e.g.
|
||||||
|
"refs/stash") in the middle the setting applies only to
|
||||||
|
the refs that match the <pattern>.
|
||||||
|
|
||||||
gc.reflogexpireunreachable::
|
gc.reflogexpireunreachable::
|
||||||
'git-reflog expire' removes reflog entries older than
|
gc.<ref>.reflogexpireunreachable::
|
||||||
|
'git reflog expire' removes reflog entries older than
|
||||||
this time and are not reachable from the current tip;
|
this time and are not reachable from the current tip;
|
||||||
defaults to 30 days.
|
defaults to 30 days. With "<pattern>" (e.g. "refs/stash")
|
||||||
|
in the middle, the setting applies only to the refs that
|
||||||
|
match the <pattern>.
|
||||||
|
|
||||||
gc.rerereresolved::
|
gc.rerereresolved::
|
||||||
Records of conflicted merge you resolved earlier are
|
Records of conflicted merge you resolved earlier are
|
||||||
kept for this many days when 'git-rerere gc' is run.
|
kept for this many days when 'git rerere gc' is run.
|
||||||
The default is 60 days. See linkgit:git-rerere[1].
|
The default is 60 days. See linkgit:git-rerere[1].
|
||||||
|
|
||||||
gc.rerereunresolved::
|
gc.rerereunresolved::
|
||||||
Records of conflicted merge you have not resolved are
|
Records of conflicted merge you have not resolved are
|
||||||
kept for this many days when 'git-rerere gc' is run.
|
kept for this many days when 'git rerere gc' is run.
|
||||||
The default is 15 days. See linkgit:git-rerere[1].
|
The default is 15 days. See linkgit:git-rerere[1].
|
||||||
|
|
||||||
gitcvs.commitmsgannotation::
|
gitcvs.commitmsgannotation::
|
||||||
|
@ -850,13 +997,15 @@ gitcvs.logfile::
|
||||||
various stuff. See linkgit:git-cvsserver[1].
|
various stuff. See linkgit:git-cvsserver[1].
|
||||||
|
|
||||||
gitcvs.usecrlfattr::
|
gitcvs.usecrlfattr::
|
||||||
If true, the server will look up the `crlf` attribute for
|
If true, the server will look up the end-of-line conversion
|
||||||
files to determine the '-k' modes to use. If `crlf` is set,
|
attributes for files to determine the '-k' modes to use. If
|
||||||
the '-k' mode will be left blank, so cvs clients will
|
the attributes force git to treat a file as text,
|
||||||
treat it as text. If `crlf` is explicitly unset, the file
|
the '-k' mode will be left blank so cvs clients will
|
||||||
|
treat it as text. If they suppress text conversion, the file
|
||||||
will be set with '-kb' mode, which suppresses any newline munging
|
will be set with '-kb' mode, which suppresses any newline munging
|
||||||
the client might otherwise do. If `crlf` is not specified,
|
the client might otherwise do. If the attributes do not allow
|
||||||
then 'gitcvs.allbinary' is used. See linkgit:gitattributes[5].
|
the file type to be determined, then 'gitcvs.allbinary' is
|
||||||
|
used. See linkgit:gitattributes[5].
|
||||||
|
|
||||||
gitcvs.allbinary::
|
gitcvs.allbinary::
|
||||||
This is used if 'gitcvs.usecrlfattr' does not resolve
|
This is used if 'gitcvs.usecrlfattr' does not resolve
|
||||||
|
@ -942,7 +1091,7 @@ gui.spellingdictionary::
|
||||||
off.
|
off.
|
||||||
|
|
||||||
gui.fastcopyblame::
|
gui.fastcopyblame::
|
||||||
If true, 'git gui blame' uses '-C' instead of '-C -C' for original
|
If true, 'git gui blame' uses `-C` instead of `-C -C` for original
|
||||||
location detection. It makes blame significantly faster on huge
|
location detection. It makes blame significantly faster on huge
|
||||||
repositories at the expense of less thorough copy detection.
|
repositories at the expense of less thorough copy detection.
|
||||||
|
|
||||||
|
@ -1066,6 +1215,20 @@ http.maxRequests::
|
||||||
How many HTTP requests to launch in parallel. Can be overridden
|
How many HTTP requests to launch in parallel. Can be overridden
|
||||||
by the 'GIT_HTTP_MAX_REQUESTS' environment variable. Default is 5.
|
by the 'GIT_HTTP_MAX_REQUESTS' environment variable. Default is 5.
|
||||||
|
|
||||||
|
http.minSessions::
|
||||||
|
The number of curl sessions (counted across slots) to be kept across
|
||||||
|
requests. They will not be ended with curl_easy_cleanup() until
|
||||||
|
http_cleanup() is invoked. If USE_CURL_MULTI is not defined, this
|
||||||
|
value will be capped at 1. Defaults to 1.
|
||||||
|
|
||||||
|
http.postBuffer::
|
||||||
|
Maximum size in bytes of the buffer used by smart HTTP
|
||||||
|
transports when POSTing data to the remote system.
|
||||||
|
For requests larger than this buffer size, HTTP/1.1 and
|
||||||
|
Transfer-Encoding: chunked is used to avoid creating a
|
||||||
|
massive pack file locally. Default is 1 MiB, which is
|
||||||
|
sufficient for most requests.
|
||||||
|
|
||||||
http.lowSpeedLimit, http.lowSpeedTime::
|
http.lowSpeedLimit, http.lowSpeedTime::
|
||||||
If the HTTP transfer speed is less than 'http.lowSpeedLimit'
|
If the HTTP transfer speed is less than 'http.lowSpeedLimit'
|
||||||
for longer than 'http.lowSpeedTime' seconds, the transfer is aborted.
|
for longer than 'http.lowSpeedTime' seconds, the transfer is aborted.
|
||||||
|
@ -1087,12 +1250,16 @@ i18n.commitEncoding::
|
||||||
|
|
||||||
i18n.logOutputEncoding::
|
i18n.logOutputEncoding::
|
||||||
Character encoding the commit messages are converted to when
|
Character encoding the commit messages are converted to when
|
||||||
running 'git-log' and friends.
|
running 'git log' and friends.
|
||||||
|
|
||||||
imap::
|
imap::
|
||||||
The configuration variables in the 'imap' section are described
|
The configuration variables in the 'imap' section are described
|
||||||
in linkgit:git-imap-send[1].
|
in linkgit:git-imap-send[1].
|
||||||
|
|
||||||
|
init.templatedir::
|
||||||
|
Specify the directory from which templates will be copied.
|
||||||
|
(See the "TEMPLATE DIRECTORY" section of linkgit:git-init[1].)
|
||||||
|
|
||||||
instaweb.browser::
|
instaweb.browser::
|
||||||
Specify the program that will be used to browse your working
|
Specify the program that will be used to browse your working
|
||||||
repository in gitweb. See linkgit:git-instaweb[1].
|
repository in gitweb. See linkgit:git-instaweb[1].
|
||||||
|
@ -1121,10 +1288,17 @@ interactive.singlekey::
|
||||||
|
|
||||||
log.date::
|
log.date::
|
||||||
Set default date-time mode for the log command. Setting log.date
|
Set default date-time mode for the log command. Setting log.date
|
||||||
value is similar to using 'git-log'\'s --date option. The value is one of the
|
value is similar to using 'git log'\'s --date option. The value is one of the
|
||||||
following alternatives: {relative,local,default,iso,rfc,short}.
|
following alternatives: {relative,local,default,iso,rfc,short}.
|
||||||
See linkgit:git-log[1].
|
See linkgit:git-log[1].
|
||||||
|
|
||||||
|
log.decorate::
|
||||||
|
Print out the ref names of any commits that are shown by the log
|
||||||
|
command. If 'short' is specified, the ref name prefixes 'refs/heads/',
|
||||||
|
'refs/tags/' and 'refs/remotes/' will not be printed. If 'full' is
|
||||||
|
specified, the full ref name (including prefix) will be printed.
|
||||||
|
This is the same as the log commands '--decorate' option.
|
||||||
|
|
||||||
log.showroot::
|
log.showroot::
|
||||||
If true, the initial commit will be shown as a big creation event.
|
If true, the initial commit will be shown as a big creation event.
|
||||||
This is equivalent to a diff against an empty tree.
|
This is equivalent to a diff against an empty tree.
|
||||||
|
@ -1193,6 +1367,53 @@ mergetool.keepTemporaries::
|
||||||
mergetool.prompt::
|
mergetool.prompt::
|
||||||
Prompt before each invocation of the merge resolution program.
|
Prompt before each invocation of the merge resolution program.
|
||||||
|
|
||||||
|
notes.displayRef::
|
||||||
|
The (fully qualified) refname from which to show notes when
|
||||||
|
showing commit messages. The value of this variable can be set
|
||||||
|
to a glob, in which case notes from all matching refs will be
|
||||||
|
shown. You may also specify this configuration variable
|
||||||
|
several times. A warning will be issued for refs that do not
|
||||||
|
exist, but a glob that does not match any refs is silently
|
||||||
|
ignored.
|
||||||
|
+
|
||||||
|
This setting can be overridden with the `GIT_NOTES_DISPLAY_REF`
|
||||||
|
environment variable, which must be a colon separated list of refs or
|
||||||
|
globs.
|
||||||
|
+
|
||||||
|
The effective value of "core.notesRef" (possibly overridden by
|
||||||
|
GIT_NOTES_REF) is also implicitly added to the list of refs to be
|
||||||
|
displayed.
|
||||||
|
|
||||||
|
notes.rewrite.<command>::
|
||||||
|
When rewriting commits with <command> (currently `amend` or
|
||||||
|
`rebase`) and this variable is set to `true`, git
|
||||||
|
automatically copies your notes from the original to the
|
||||||
|
rewritten commit. Defaults to `true`, but see
|
||||||
|
"notes.rewriteRef" below.
|
||||||
|
|
||||||
|
notes.rewriteMode::
|
||||||
|
When copying notes during a rewrite (see the
|
||||||
|
"notes.rewrite.<command>" option), determines what to do if
|
||||||
|
the target commit already has a note. Must be one of
|
||||||
|
`overwrite`, `concatenate`, or `ignore`. Defaults to
|
||||||
|
`concatenate`.
|
||||||
|
+
|
||||||
|
This setting can be overridden with the `GIT_NOTES_REWRITE_MODE`
|
||||||
|
environment variable.
|
||||||
|
|
||||||
|
notes.rewriteRef::
|
||||||
|
When copying notes during a rewrite, specifies the (fully
|
||||||
|
qualified) ref whose notes should be copied. The ref may be a
|
||||||
|
glob, in which case notes in all matching refs will be copied.
|
||||||
|
You may also specify this configuration several times.
|
||||||
|
+
|
||||||
|
Does not have a default value; you must configure this variable to
|
||||||
|
enable note rewriting.
|
||||||
|
+
|
||||||
|
This setting can be overridden with the `GIT_NOTES_REWRITE_REF`
|
||||||
|
environment variable, which must be a colon separated list of refs or
|
||||||
|
globs.
|
||||||
|
|
||||||
pack.window::
|
pack.window::
|
||||||
The size of the window used by linkgit:git-pack-objects[1] when no
|
The size of the window used by linkgit:git-pack-objects[1] when no
|
||||||
window size is given on the command line. Defaults to 10.
|
window size is given on the command line. Defaults to 10.
|
||||||
|
@ -1261,10 +1482,13 @@ you can use linkgit:git-index-pack[1] on the *.pack file to regenerate
|
||||||
the `{asterisk}.idx` file.
|
the `{asterisk}.idx` file.
|
||||||
|
|
||||||
pack.packSizeLimit::
|
pack.packSizeLimit::
|
||||||
The default maximum size of a pack. This setting only affects
|
The maximum size of a pack. This setting only affects
|
||||||
packing to a file, i.e. the git:// protocol is unaffected. It
|
packing to a file when repacking, i.e. the git:// protocol
|
||||||
can be overridden by the `\--max-pack-size` option of
|
is unaffected. It can be overridden by the `\--max-pack-size`
|
||||||
linkgit:git-repack[1].
|
option of linkgit:git-repack[1]. The minimum size allowed is
|
||||||
|
limited to 1 MiB. The default is unlimited.
|
||||||
|
Common unit suffixes of 'k', 'm', or 'g' are
|
||||||
|
supported.
|
||||||
|
|
||||||
pager.<cmd>::
|
pager.<cmd>::
|
||||||
Allows turning on or off pagination of the output of a
|
Allows turning on or off pagination of the output of a
|
||||||
|
@ -1273,6 +1497,16 @@ pager.<cmd>::
|
||||||
it takes precedence over this option. To disable pagination for
|
it takes precedence over this option. To disable pagination for
|
||||||
all commands, set `core.pager` or `GIT_PAGER` to `cat`.
|
all commands, set `core.pager` or `GIT_PAGER` to `cat`.
|
||||||
|
|
||||||
|
pretty.<name>::
|
||||||
|
Alias for a --pretty= format string, as specified in
|
||||||
|
linkgit:git-log[1]. Any aliases defined here can be used just
|
||||||
|
as the built-in pretty formats could. For example,
|
||||||
|
running `git config pretty.changelog "format:{asterisk} %H %s"`
|
||||||
|
would cause the invocation `git log --pretty=changelog`
|
||||||
|
to be equivalent to running `git log "--pretty=format:{asterisk} %H %s"`.
|
||||||
|
Note that an alias with the same name as a built-in format
|
||||||
|
will be silently ignored.
|
||||||
|
|
||||||
pull.octopus::
|
pull.octopus::
|
||||||
The default merge strategy to use when pulling multiple branches
|
The default merge strategy to use when pulling multiple branches
|
||||||
at once.
|
at once.
|
||||||
|
@ -1297,6 +1531,11 @@ rebase.stat::
|
||||||
Whether to show a diffstat of what changed upstream since the last
|
Whether to show a diffstat of what changed upstream since the last
|
||||||
rebase. False by default.
|
rebase. False by default.
|
||||||
|
|
||||||
|
receive.autogc::
|
||||||
|
By default, git-receive-pack will run "git-gc --auto" after
|
||||||
|
receiving data from git-push and updating refs. You can stop
|
||||||
|
it by setting this variable to false.
|
||||||
|
|
||||||
receive.fsckObjects::
|
receive.fsckObjects::
|
||||||
If it is set to true, git-receive-pack will check all received
|
If it is set to true, git-receive-pack will check all received
|
||||||
objects. It will abort in the case of a malformed object or a
|
objects. It will abort in the case of a malformed object or a
|
||||||
|
@ -1318,20 +1557,24 @@ receive.denyDeletes::
|
||||||
the ref. Use this to prevent such a ref deletion via a push.
|
the ref. Use this to prevent such a ref deletion via a push.
|
||||||
|
|
||||||
receive.denyCurrentBranch::
|
receive.denyCurrentBranch::
|
||||||
If set to true or "refuse", receive-pack will deny a ref update
|
If set to true or "refuse", git-receive-pack will deny a ref update
|
||||||
to the currently checked out branch of a non-bare repository.
|
to the currently checked out branch of a non-bare repository.
|
||||||
Such a push is potentially dangerous because it brings the HEAD
|
Such a push is potentially dangerous because it brings the HEAD
|
||||||
out of sync with the index and working tree. If set to "warn",
|
out of sync with the index and working tree. If set to "warn",
|
||||||
print a warning of such a push to stderr, but allow the push to
|
print a warning of such a push to stderr, but allow the push to
|
||||||
proceed. If set to false or "ignore", allow such pushes with no
|
proceed. If set to false or "ignore", allow such pushes with no
|
||||||
message. Defaults to "warn".
|
message. Defaults to "refuse".
|
||||||
|
|
||||||
receive.denyNonFastForwards::
|
receive.denyNonFastForwards::
|
||||||
If set to true, git-receive-pack will deny a ref update which is
|
If set to true, git-receive-pack will deny a ref update which is
|
||||||
not a fast forward. Use this to prevent such an update via a push,
|
not a fast-forward. Use this to prevent such an update via a push,
|
||||||
even if that push is forced. This configuration variable is
|
even if that push is forced. This configuration variable is
|
||||||
set when initializing a shared repository.
|
set when initializing a shared repository.
|
||||||
|
|
||||||
|
receive.updateserverinfo::
|
||||||
|
If set to true, git-receive-pack will run git-update-server-info
|
||||||
|
after receiving data from git-push and updating refs.
|
||||||
|
|
||||||
remote.<name>.url::
|
remote.<name>.url::
|
||||||
The URL of a remote repository. See linkgit:git-fetch[1] or
|
The URL of a remote repository. See linkgit:git-fetch[1] or
|
||||||
linkgit:git-push[1].
|
linkgit:git-push[1].
|
||||||
|
@ -1358,7 +1601,13 @@ remote.<name>.mirror::
|
||||||
|
|
||||||
remote.<name>.skipDefaultUpdate::
|
remote.<name>.skipDefaultUpdate::
|
||||||
If true, this remote will be skipped by default when updating
|
If true, this remote will be skipped by default when updating
|
||||||
using the update subcommand of linkgit:git-remote[1].
|
using linkgit:git-fetch[1] or the `update` subcommand of
|
||||||
|
linkgit:git-remote[1].
|
||||||
|
|
||||||
|
remote.<name>.skipFetchAll::
|
||||||
|
If true, this remote will be skipped by default when updating
|
||||||
|
using linkgit:git-fetch[1] or the `update` subcommand of
|
||||||
|
linkgit:git-remote[1].
|
||||||
|
|
||||||
remote.<name>.receivepack::
|
remote.<name>.receivepack::
|
||||||
The default program to execute on the remote side when pushing. See
|
The default program to execute on the remote side when pushing. See
|
||||||
|
@ -1370,7 +1619,13 @@ remote.<name>.uploadpack::
|
||||||
|
|
||||||
remote.<name>.tagopt::
|
remote.<name>.tagopt::
|
||||||
Setting this value to \--no-tags disables automatic tag following when
|
Setting this value to \--no-tags disables automatic tag following when
|
||||||
fetching from remote <name>
|
fetching from remote <name>. Setting it to \--tags will fetch every
|
||||||
|
tag from remote <name>, even if they are not reachable from remote
|
||||||
|
branch heads.
|
||||||
|
|
||||||
|
remote.<name>.vcs::
|
||||||
|
Setting this to a value <vcs> will cause git to interact with
|
||||||
|
the remote with the git-remote-<vcs> helper.
|
||||||
|
|
||||||
remotes.<group>::
|
remotes.<group>::
|
||||||
The list of remotes which are fetched by "git remote update
|
The list of remotes which are fetched by "git remote update
|
||||||
|
@ -1430,6 +1685,7 @@ sendemail.smtppass::
|
||||||
sendemail.suppresscc::
|
sendemail.suppresscc::
|
||||||
sendemail.suppressfrom::
|
sendemail.suppressfrom::
|
||||||
sendemail.to::
|
sendemail.to::
|
||||||
|
sendemail.smtpdomain::
|
||||||
sendemail.smtpserver::
|
sendemail.smtpserver::
|
||||||
sendemail.smtpserverport::
|
sendemail.smtpserverport::
|
||||||
sendemail.smtpuser::
|
sendemail.smtpuser::
|
||||||
|
@ -1469,6 +1725,13 @@ If this variable is not specified, it defaults to 'normal'.
|
||||||
This variable can be overridden with the -u|--untracked-files option
|
This variable can be overridden with the -u|--untracked-files option
|
||||||
of linkgit:git-status[1] and linkgit:git-commit[1].
|
of linkgit:git-status[1] and linkgit:git-commit[1].
|
||||||
|
|
||||||
|
status.submodulesummary::
|
||||||
|
Defaults to false.
|
||||||
|
If this is set to a non zero number or true (identical to -1 or an
|
||||||
|
unlimited number), the submodule summary will be enabled and a
|
||||||
|
summary of commits for modified submodules will be shown (see
|
||||||
|
--summary-limit option of linkgit:git-submodule[1]).
|
||||||
|
|
||||||
tar.umask::
|
tar.umask::
|
||||||
This variable can be used to restrict the permission bits of
|
This variable can be used to restrict the permission bits of
|
||||||
tar archive entries. The default is 0002, which turns off the
|
tar archive entries. The default is 0002, which turns off the
|
||||||
|
@ -1492,6 +1755,19 @@ url.<base>.insteadOf::
|
||||||
never-before-seen repository on the site. When more than one
|
never-before-seen repository on the site. When more than one
|
||||||
insteadOf strings match a given URL, the longest match is used.
|
insteadOf strings match a given URL, the longest match is used.
|
||||||
|
|
||||||
|
url.<base>.pushInsteadOf::
|
||||||
|
Any URL that starts with this value will not be pushed to;
|
||||||
|
instead, it will be rewritten to start with <base>, and the
|
||||||
|
resulting URL will be pushed to. In cases where some site serves
|
||||||
|
a large number of repositories, and serves them with multiple
|
||||||
|
access methods, some of which do not allow push, this feature
|
||||||
|
allows people to specify a pull-only URL and have git
|
||||||
|
automatically use an appropriate URL to push, even for a
|
||||||
|
never-before-seen repository on the site. When more than one
|
||||||
|
pushInsteadOf strings match a given URL, the longest match is
|
||||||
|
used. If a remote has an explicit pushurl, git will ignore this
|
||||||
|
setting for that remote.
|
||||||
|
|
||||||
user.email::
|
user.email::
|
||||||
Your email address to be recorded in any newly created commits.
|
Your email address to be recorded in any newly created commits.
|
||||||
Can be overridden by the 'GIT_AUTHOR_EMAIL', 'GIT_COMMITTER_EMAIL', and
|
Can be overridden by the 'GIT_AUTHOR_EMAIL', 'GIT_COMMITTER_EMAIL', and
|
||||||
|
|
26
Documentation/date-formats.txt
Normal file
26
Documentation/date-formats.txt
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
DATE FORMATS
|
||||||
|
------------
|
||||||
|
|
||||||
|
The GIT_AUTHOR_DATE, GIT_COMMITTER_DATE environment variables
|
||||||
|
ifdef::git-commit[]
|
||||||
|
and the `--date` option
|
||||||
|
endif::git-commit[]
|
||||||
|
support the following date formats:
|
||||||
|
|
||||||
|
Git internal format::
|
||||||
|
It is `<unix timestamp> <timezone offset>`, where `<unix
|
||||||
|
timestamp>` is the number of seconds since the UNIX epoch.
|
||||||
|
`<timezone offset>` is a positive or negative offset from UTC.
|
||||||
|
For example CET (which is 2 hours ahead UTC) is `+0200`.
|
||||||
|
|
||||||
|
RFC 2822::
|
||||||
|
The standard email format as described by RFC 2822, for example
|
||||||
|
`Thu, 07 Apr 2005 22:13:13 +0200`.
|
||||||
|
|
||||||
|
ISO 8601::
|
||||||
|
Time and date specified by the ISO 8601 standard, for example
|
||||||
|
`2005-04-07T22:13:13`. The parser accepts a space instead of the
|
||||||
|
`T` character as well.
|
||||||
|
+
|
||||||
|
NOTE: In addition, the date part is accepted in the following formats:
|
||||||
|
`YYYY.MM.DD`, `MM/DD/YYYY` and `DD.MM.YYYY`.
|
|
@ -19,7 +19,7 @@ git-diff-tree [-r] <tree-ish-1> <tree-ish-2> [<pattern>...]::
|
||||||
git-diff-files [<pattern>...]::
|
git-diff-files [<pattern>...]::
|
||||||
compares the index and the files on the filesystem.
|
compares the index and the files on the filesystem.
|
||||||
|
|
||||||
The "git-diff-tree" command begins its ouput by printing the hash of
|
The "git-diff-tree" command begins its output by printing the hash of
|
||||||
what is being compared. After that, all the commands print one output
|
what is being compared. After that, all the commands print one output
|
||||||
line per changed file.
|
line per changed file.
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,8 @@ combined diff format
|
||||||
|
|
||||||
"git-diff-tree", "git-diff-files" and "git-diff" can take '-c' or
|
"git-diff-tree", "git-diff-files" and "git-diff" can take '-c' or
|
||||||
'--cc' option to produce 'combined diff'. For showing a merge commit
|
'--cc' option to produce 'combined diff'. For showing a merge commit
|
||||||
with "git log -p", this is the default format.
|
with "git log -p", this is the default format; you can force showing
|
||||||
|
full diff with the '-m' option.
|
||||||
A 'combined diff' format looks like this:
|
A 'combined diff' format looks like this:
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -14,12 +14,14 @@ endif::git-format-patch[]
|
||||||
|
|
||||||
ifdef::git-format-patch[]
|
ifdef::git-format-patch[]
|
||||||
-p::
|
-p::
|
||||||
Generate patches without diffstat.
|
--no-stat::
|
||||||
|
Generate plain patches without any diffstats.
|
||||||
endif::git-format-patch[]
|
endif::git-format-patch[]
|
||||||
|
|
||||||
ifndef::git-format-patch[]
|
ifndef::git-format-patch[]
|
||||||
-p::
|
-p::
|
||||||
-u::
|
-u::
|
||||||
|
--patch::
|
||||||
Generate patch (see section on generating patches).
|
Generate patch (see section on generating patches).
|
||||||
{git-diff? This is the default.}
|
{git-diff? This is the default.}
|
||||||
endif::git-format-patch[]
|
endif::git-format-patch[]
|
||||||
|
@ -27,33 +29,40 @@ endif::git-format-patch[]
|
||||||
-U<n>::
|
-U<n>::
|
||||||
--unified=<n>::
|
--unified=<n>::
|
||||||
Generate diffs with <n> lines of context instead of
|
Generate diffs with <n> lines of context instead of
|
||||||
the usual three. Implies "-p".
|
the usual three.
|
||||||
|
ifndef::git-format-patch[]
|
||||||
|
Implies `-p`.
|
||||||
|
endif::git-format-patch[]
|
||||||
|
|
||||||
|
ifndef::git-format-patch[]
|
||||||
--raw::
|
--raw::
|
||||||
Generate the raw format.
|
Generate the raw format.
|
||||||
{git-diff-core? This is the default.}
|
{git-diff-core? This is the default.}
|
||||||
|
endif::git-format-patch[]
|
||||||
|
|
||||||
|
ifndef::git-format-patch[]
|
||||||
--patch-with-raw::
|
--patch-with-raw::
|
||||||
Synonym for "-p --raw".
|
Synonym for `-p --raw`.
|
||||||
|
endif::git-format-patch[]
|
||||||
|
|
||||||
--patience::
|
--patience::
|
||||||
Generate a diff using the "patience diff" algorithm.
|
Generate a diff using the "patience diff" algorithm.
|
||||||
|
|
||||||
--stat[=width[,name-width]]::
|
--stat[=width[,name-width]]::
|
||||||
Generate a diffstat. You can override the default
|
Generate a diffstat. You can override the default
|
||||||
output width for 80-column terminal by "--stat=width".
|
output width for 80-column terminal by `--stat=width`.
|
||||||
The width of the filename part can be controlled by
|
The width of the filename part can be controlled by
|
||||||
giving another width to it separated by a comma.
|
giving another width to it separated by a comma.
|
||||||
|
|
||||||
--numstat::
|
--numstat::
|
||||||
Similar to \--stat, but shows number of added and
|
Similar to `\--stat`, but shows number of added and
|
||||||
deleted lines in decimal notation and pathname without
|
deleted lines in decimal notation and pathname without
|
||||||
abbreviation, to make it more machine friendly. For
|
abbreviation, to make it more machine friendly. For
|
||||||
binary files, outputs two `-` instead of saying
|
binary files, outputs two `-` instead of saying
|
||||||
`0 0`.
|
`0 0`.
|
||||||
|
|
||||||
--shortstat::
|
--shortstat::
|
||||||
Output only the last line of the --stat format containing total
|
Output only the last line of the `--stat` format containing total
|
||||||
number of modified files, as well as number of added and deleted
|
number of modified files, as well as number of added and deleted
|
||||||
lines.
|
lines.
|
||||||
|
|
||||||
|
@ -61,24 +70,39 @@ endif::git-format-patch[]
|
||||||
Output the distribution of relative amount of changes (number of lines added or
|
Output the distribution of relative amount of changes (number of lines added or
|
||||||
removed) for each sub-directory. Directories with changes below
|
removed) for each sub-directory. Directories with changes below
|
||||||
a cut-off percent (3% by default) are not shown. The cut-off percent
|
a cut-off percent (3% by default) are not shown. The cut-off percent
|
||||||
can be set with "--dirstat=limit". Changes in a child directory is not
|
can be set with `--dirstat=limit`. Changes in a child directory is not
|
||||||
counted for the parent directory, unless "--cumulative" is used.
|
counted for the parent directory, unless `--cumulative` is used.
|
||||||
|
|
||||||
--dirstat-by-file[=limit]::
|
--dirstat-by-file[=limit]::
|
||||||
Same as --dirstat, but counts changed files instead of lines.
|
Same as `--dirstat`, but counts changed files instead of lines.
|
||||||
|
|
||||||
--summary::
|
--summary::
|
||||||
Output a condensed summary of extended header information
|
Output a condensed summary of extended header information
|
||||||
such as creations, renames and mode changes.
|
such as creations, renames and mode changes.
|
||||||
|
|
||||||
|
ifndef::git-format-patch[]
|
||||||
--patch-with-stat::
|
--patch-with-stat::
|
||||||
Synonym for "-p --stat".
|
Synonym for `-p --stat`.
|
||||||
{git-format-patch? This is the default.}
|
endif::git-format-patch[]
|
||||||
|
|
||||||
|
ifndef::git-format-patch[]
|
||||||
|
|
||||||
-z::
|
-z::
|
||||||
NUL-line termination on output. This affects the --raw
|
ifdef::git-log[]
|
||||||
output field terminator. Also output from commands such
|
Separate the commits with NULs instead of with new newlines.
|
||||||
as "git-log" will be delimited with NUL between commits.
|
+
|
||||||
|
Also, when `--raw` or `--numstat` has been given, do not munge
|
||||||
|
pathnames and use NULs as output field terminators.
|
||||||
|
endif::git-log[]
|
||||||
|
ifndef::git-log[]
|
||||||
|
When `--raw`, `--numstat`, `--name-only` or `--name-status` has been
|
||||||
|
given, do not munge pathnames and use NULs as output field terminators.
|
||||||
|
endif::git-log[]
|
||||||
|
+
|
||||||
|
Without this option, each pathname output will have TAB, LF, double quotes,
|
||||||
|
and backslash characters replaced with `\t`, `\n`, `\"`, and `\\`,
|
||||||
|
respectively, and the pathname will be enclosed in double quotes if
|
||||||
|
any of those replacements occurred.
|
||||||
|
|
||||||
--name-only::
|
--name-only::
|
||||||
Show only names of changed files.
|
Show only names of changed files.
|
||||||
|
@ -87,18 +111,55 @@ endif::git-format-patch[]
|
||||||
Show only names and status of changed files. See the description
|
Show only names and status of changed files. See the description
|
||||||
of the `--diff-filter` option on what the status letters mean.
|
of the `--diff-filter` option on what the status letters mean.
|
||||||
|
|
||||||
--color::
|
--submodule[=<format>]::
|
||||||
|
Chose the output format for submodule differences. <format> can be one of
|
||||||
|
'short' and 'log'. 'short' just shows pairs of commit names, this format
|
||||||
|
is used when this option is not given. 'log' is the default value for this
|
||||||
|
option and lists the commits in that commit range like the 'summary'
|
||||||
|
option of linkgit:git-submodule[1] does.
|
||||||
|
|
||||||
|
--color[=<when>]::
|
||||||
Show colored diff.
|
Show colored diff.
|
||||||
|
The value must be always (the default), never, or auto.
|
||||||
|
|
||||||
--no-color::
|
--no-color::
|
||||||
Turn off colored diff, even when the configuration file
|
Turn off colored diff, even when the configuration file
|
||||||
gives the default to color output.
|
gives the default to color output.
|
||||||
|
Same as `--color=never`.
|
||||||
|
|
||||||
--color-words[=<regex>]::
|
--word-diff[=<mode>]::
|
||||||
Show colored word diff, i.e., color words which have changed.
|
Show a word diff, using the <mode> to delimit changed words.
|
||||||
By default, words are separated by whitespace.
|
By default, words are delimited by whitespace; see
|
||||||
|
`--word-diff-regex` below. The <mode> defaults to 'plain', and
|
||||||
|
must be one of:
|
||||||
+
|
+
|
||||||
When a <regex> is specified, every non-overlapping match of the
|
--
|
||||||
|
color::
|
||||||
|
Highlight changed words using only colors. Implies `--color`.
|
||||||
|
plain::
|
||||||
|
Show words as `[-removed-]` and `{+added+}`. Makes no
|
||||||
|
attempts to escape the delimiters if they appear in the input,
|
||||||
|
so the output may be ambiguous.
|
||||||
|
porcelain::
|
||||||
|
Use a special line-based format intended for script
|
||||||
|
consumption. Added/removed/unchanged runs are printed in the
|
||||||
|
usual unified diff format, starting with a `+`/`-`/` `
|
||||||
|
character at the beginning of the line and extending to the
|
||||||
|
end of the line. Newlines in the input are represented by a
|
||||||
|
tilde `~` on a line of its own.
|
||||||
|
none::
|
||||||
|
Disable word diff again.
|
||||||
|
--
|
||||||
|
+
|
||||||
|
Note that despite the name of the first mode, color is used to
|
||||||
|
highlight the changed parts in all modes if enabled.
|
||||||
|
|
||||||
|
--word-diff-regex=<regex>::
|
||||||
|
Use <regex> to decide what a word is, instead of considering
|
||||||
|
runs of non-whitespace to be a word. Also implies
|
||||||
|
`--word-diff` unless it was already enabled.
|
||||||
|
+
|
||||||
|
Every non-overlapping match of the
|
||||||
<regex> is considered a word. Anything between these matches is
|
<regex> is considered a word. Anything between these matches is
|
||||||
considered whitespace and ignored(!) for the purposes of finding
|
considered whitespace and ignored(!) for the purposes of finding
|
||||||
differences. You may want to append `|[^[:space:]]` to your regular
|
differences. You may want to append `|[^[:space:]]` to your regular
|
||||||
|
@ -111,15 +172,22 @@ linkgit:gitattributes[1] or linkgit:git-config[1]. Giving it explicitly
|
||||||
overrides any diff driver or configuration setting. Diff drivers
|
overrides any diff driver or configuration setting. Diff drivers
|
||||||
override configuration settings.
|
override configuration settings.
|
||||||
|
|
||||||
|
--color-words[=<regex>]::
|
||||||
|
Equivalent to `--word-diff=color` plus (if a regex was
|
||||||
|
specified) `--word-diff-regex=<regex>`.
|
||||||
|
endif::git-format-patch[]
|
||||||
|
|
||||||
--no-renames::
|
--no-renames::
|
||||||
Turn off rename detection, even when the configuration
|
Turn off rename detection, even when the configuration
|
||||||
file gives the default to do so.
|
file gives the default to do so.
|
||||||
|
|
||||||
|
ifndef::git-format-patch[]
|
||||||
--check::
|
--check::
|
||||||
Warn if changes introduce trailing whitespace
|
Warn if changes introduce trailing whitespace
|
||||||
or an indent that uses a space before a tab. Exits with
|
or an indent that uses a space before a tab. Exits with
|
||||||
non-zero status if problems are found. Not compatible with
|
non-zero status if problems are found. Not compatible with
|
||||||
--exit-code.
|
--exit-code.
|
||||||
|
endif::git-format-patch[]
|
||||||
|
|
||||||
--full-index::
|
--full-index::
|
||||||
Instead of the first handful of characters, show the full
|
Instead of the first handful of characters, show the full
|
||||||
|
@ -127,26 +195,34 @@ override configuration settings.
|
||||||
line when generating patch format output.
|
line when generating patch format output.
|
||||||
|
|
||||||
--binary::
|
--binary::
|
||||||
In addition to --full-index, output "binary diff" that
|
In addition to `--full-index`, output a binary diff that
|
||||||
can be applied with "git apply".
|
can be applied with `git-apply`.
|
||||||
|
|
||||||
--abbrev[=<n>]::
|
--abbrev[=<n>]::
|
||||||
Instead of showing the full 40-byte hexadecimal object
|
Instead of showing the full 40-byte hexadecimal object
|
||||||
name in diff-raw format output and diff-tree header
|
name in diff-raw format output and diff-tree header
|
||||||
lines, show only a partial prefix. This is
|
lines, show only a partial prefix. This is
|
||||||
independent of --full-index option above, which controls
|
independent of the `--full-index` option above, which controls
|
||||||
the diff-patch output format. Non default number of
|
the diff-patch output format. Non default number of
|
||||||
digits can be specified with --abbrev=<n>.
|
digits can be specified with `--abbrev=<n>`.
|
||||||
|
|
||||||
-B::
|
-B::
|
||||||
Break complete rewrite changes into pairs of delete and create.
|
Break complete rewrite changes into pairs of delete and create.
|
||||||
|
|
||||||
-M::
|
-M::
|
||||||
|
ifndef::git-log[]
|
||||||
Detect renames.
|
Detect renames.
|
||||||
|
endif::git-log[]
|
||||||
|
ifdef::git-log[]
|
||||||
|
If generating diffs, detect and report renames for each commit.
|
||||||
|
For following files across renames while traversing history, see
|
||||||
|
`--follow`.
|
||||||
|
endif::git-log[]
|
||||||
|
|
||||||
-C::
|
-C::
|
||||||
Detect copies as well as renames. See also `--find-copies-harder`.
|
Detect copies as well as renames. See also `--find-copies-harder`.
|
||||||
|
|
||||||
|
ifndef::git-format-patch[]
|
||||||
--diff-filter=[ACDMRTUXB*]::
|
--diff-filter=[ACDMRTUXB*]::
|
||||||
Select only files that are Added (`A`), Copied (`C`),
|
Select only files that are Added (`A`), Copied (`C`),
|
||||||
Deleted (`D`), Modified (`M`), Renamed (`R`), have their
|
Deleted (`D`), Modified (`M`), Renamed (`R`), have their
|
||||||
|
@ -158,6 +234,7 @@ override configuration settings.
|
||||||
paths are selected if there is any file that matches
|
paths are selected if there is any file that matches
|
||||||
other criteria in the comparison; if there is no file
|
other criteria in the comparison; if there is no file
|
||||||
that matches other criteria, nothing is selected.
|
that matches other criteria, nothing is selected.
|
||||||
|
endif::git-format-patch[]
|
||||||
|
|
||||||
--find-copies-harder::
|
--find-copies-harder::
|
||||||
For performance reasons, by default, `-C` option finds copies only
|
For performance reasons, by default, `-C` option finds copies only
|
||||||
|
@ -169,12 +246,13 @@ override configuration settings.
|
||||||
`-C` option has the same effect.
|
`-C` option has the same effect.
|
||||||
|
|
||||||
-l<num>::
|
-l<num>::
|
||||||
-M and -C options require O(n^2) processing time where n
|
The `-M` and `-C` options require O(n^2) processing time where n
|
||||||
is the number of potential rename/copy targets. This
|
is the number of potential rename/copy targets. This
|
||||||
option prevents rename/copy detection from running if
|
option prevents rename/copy detection from running if
|
||||||
the number of rename/copy targets exceeds the specified
|
the number of rename/copy targets exceeds the specified
|
||||||
number.
|
number.
|
||||||
|
|
||||||
|
ifndef::git-format-patch[]
|
||||||
-S<string>::
|
-S<string>::
|
||||||
Look for differences that introduce or remove an instance of
|
Look for differences that introduce or remove an instance of
|
||||||
<string>. Note that this is different than the string simply
|
<string>. Note that this is different than the string simply
|
||||||
|
@ -182,18 +260,20 @@ override configuration settings.
|
||||||
linkgit:gitdiffcore[7] for more details.
|
linkgit:gitdiffcore[7] for more details.
|
||||||
|
|
||||||
--pickaxe-all::
|
--pickaxe-all::
|
||||||
When -S finds a change, show all the changes in that
|
When `-S` finds a change, show all the changes in that
|
||||||
changeset, not just the files that contain the change
|
changeset, not just the files that contain the change
|
||||||
in <string>.
|
in <string>.
|
||||||
|
|
||||||
--pickaxe-regex::
|
--pickaxe-regex::
|
||||||
Make the <string> not a plain string but an extended POSIX
|
Make the <string> not a plain string but an extended POSIX
|
||||||
regex to match.
|
regex to match.
|
||||||
|
endif::git-format-patch[]
|
||||||
|
|
||||||
-O<orderfile>::
|
-O<orderfile>::
|
||||||
Output the patch in the order specified in the
|
Output the patch in the order specified in the
|
||||||
<orderfile>, which has one shell glob pattern per line.
|
<orderfile>, which has one shell glob pattern per line.
|
||||||
|
|
||||||
|
ifndef::git-format-patch[]
|
||||||
-R::
|
-R::
|
||||||
Swap two inputs; that is, show differences from index or
|
Swap two inputs; that is, show differences from index or
|
||||||
on-disk file to tree contents.
|
on-disk file to tree contents.
|
||||||
|
@ -205,6 +285,7 @@ override configuration settings.
|
||||||
not in a subdirectory (e.g. in a bare repository), you
|
not in a subdirectory (e.g. in a bare repository), you
|
||||||
can name which subdirectory to make the output relative
|
can name which subdirectory to make the output relative
|
||||||
to by giving a <path> as an argument.
|
to by giving a <path> as an argument.
|
||||||
|
endif::git-format-patch[]
|
||||||
|
|
||||||
-a::
|
-a::
|
||||||
--text::
|
--text::
|
||||||
|
@ -229,13 +310,15 @@ override configuration settings.
|
||||||
Show the context between diff hunks, up to the specified number
|
Show the context between diff hunks, up to the specified number
|
||||||
of lines, thereby fusing hunks that are close to each other.
|
of lines, thereby fusing hunks that are close to each other.
|
||||||
|
|
||||||
|
ifndef::git-format-patch[]
|
||||||
--exit-code::
|
--exit-code::
|
||||||
Make the program exit with codes similar to diff(1).
|
Make the program exit with codes similar to diff(1).
|
||||||
That is, it exits with 1 if there were differences and
|
That is, it exits with 1 if there were differences and
|
||||||
0 means no differences.
|
0 means no differences.
|
||||||
|
|
||||||
--quiet::
|
--quiet::
|
||||||
Disable all output of the program. Implies --exit-code.
|
Disable all output of the program. Implies `--exit-code`.
|
||||||
|
endif::git-format-patch[]
|
||||||
|
|
||||||
--ext-diff::
|
--ext-diff::
|
||||||
Allow an external diff helper to be executed. If you set an
|
Allow an external diff helper to be executed. If you set an
|
||||||
|
@ -245,8 +328,14 @@ override configuration settings.
|
||||||
--no-ext-diff::
|
--no-ext-diff::
|
||||||
Disallow external diff drivers.
|
Disallow external diff drivers.
|
||||||
|
|
||||||
--ignore-submodules::
|
--ignore-submodules[=<when>]::
|
||||||
Ignore changes to submodules in the diff generation.
|
Ignore changes to submodules in the diff generation. <when> can be
|
||||||
|
either "untracked", "dirty" or "all", which is the default. When
|
||||||
|
"untracked" is used submodules are not considered dirty when they only
|
||||||
|
contain untracked content (but they are still scanned for modified
|
||||||
|
content). Using "dirty" ignores all changes to the work tree of submodules,
|
||||||
|
only changes to the commits stored in the superproject are shown (this was
|
||||||
|
the behavior until 1.7.0). Using "all" hides all changes to submodules.
|
||||||
|
|
||||||
--src-prefix=<prefix>::
|
--src-prefix=<prefix>::
|
||||||
Show the given source prefix instead of "a/".
|
Show the given source prefix instead of "a/".
|
||||||
|
|
|
@ -1,13 +1,8 @@
|
||||||
Everyday GIT With 20 Commands Or So
|
Everyday GIT With 20 Commands Or So
|
||||||
===================================
|
===================================
|
||||||
|
|
||||||
<<Basic Repository>> commands are needed by people who have a
|
<<Individual Developer (Standalone)>> commands are essential for
|
||||||
repository --- that is everybody, because every working tree of
|
anybody who makes a commit, even for somebody who works alone.
|
||||||
git is a repository.
|
|
||||||
|
|
||||||
In addition, <<Individual Developer (Standalone)>> commands are
|
|
||||||
essential for anybody who makes a commit, even for somebody who
|
|
||||||
works alone.
|
|
||||||
|
|
||||||
If you work with other people, you will need commands listed in
|
If you work with other people, you will need commands listed in
|
||||||
the <<Individual Developer (Participant)>> section as well.
|
the <<Individual Developer (Participant)>> section as well.
|
||||||
|
@ -20,46 +15,6 @@ administrators who are responsible for the care and feeding
|
||||||
of git repositories.
|
of git repositories.
|
||||||
|
|
||||||
|
|
||||||
Basic Repository[[Basic Repository]]
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
Everybody uses these commands to maintain git repositories.
|
|
||||||
|
|
||||||
* linkgit:git-init[1] or linkgit:git-clone[1] to create a
|
|
||||||
new repository.
|
|
||||||
|
|
||||||
* linkgit:git-fsck[1] to check the repository for errors.
|
|
||||||
|
|
||||||
* linkgit:git-gc[1] to do common housekeeping tasks such as
|
|
||||||
repack and prune.
|
|
||||||
|
|
||||||
Examples
|
|
||||||
~~~~~~~~
|
|
||||||
|
|
||||||
Check health and remove cruft.::
|
|
||||||
+
|
|
||||||
------------
|
|
||||||
$ git fsck <1>
|
|
||||||
$ git count-objects <2>
|
|
||||||
$ git gc <3>
|
|
||||||
------------
|
|
||||||
+
|
|
||||||
<1> running without `\--full` is usually cheap and assures the
|
|
||||||
repository health reasonably well.
|
|
||||||
<2> check how many loose objects there are and how much
|
|
||||||
disk space is wasted by not repacking.
|
|
||||||
<3> repacks the local repository and performs other housekeeping tasks.
|
|
||||||
|
|
||||||
Repack a small project into single pack.::
|
|
||||||
+
|
|
||||||
------------
|
|
||||||
$ git gc <1>
|
|
||||||
------------
|
|
||||||
+
|
|
||||||
<1> pack all the objects reachable from the refs into one pack,
|
|
||||||
then remove the other packs.
|
|
||||||
|
|
||||||
|
|
||||||
Individual Developer (Standalone)[[Individual Developer (Standalone)]]
|
Individual Developer (Standalone)[[Individual Developer (Standalone)]]
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -67,6 +22,8 @@ A standalone individual developer does not exchange patches with
|
||||||
other people, and works alone in a single repository, using the
|
other people, and works alone in a single repository, using the
|
||||||
following commands.
|
following commands.
|
||||||
|
|
||||||
|
* linkgit:git-init[1] to create a new repository.
|
||||||
|
|
||||||
* linkgit:git-show-branch[1] to see where you are.
|
* linkgit:git-show-branch[1] to see where you are.
|
||||||
|
|
||||||
* linkgit:git-log[1] to see what happened.
|
* linkgit:git-log[1] to see what happened.
|
||||||
|
|
|
@ -1,13 +1,5 @@
|
||||||
ifndef::git-pull[]
|
--all::
|
||||||
-q::
|
Fetch all remotes.
|
||||||
--quiet::
|
|
||||||
Pass --quiet to git-fetch-pack and silence any other internally
|
|
||||||
used git commands.
|
|
||||||
|
|
||||||
-v::
|
|
||||||
--verbose::
|
|
||||||
Be verbose.
|
|
||||||
endif::git-pull[]
|
|
||||||
|
|
||||||
-a::
|
-a::
|
||||||
--append::
|
--append::
|
||||||
|
@ -15,20 +7,38 @@ endif::git-pull[]
|
||||||
existing contents of `.git/FETCH_HEAD`. Without this
|
existing contents of `.git/FETCH_HEAD`. Without this
|
||||||
option old data in `.git/FETCH_HEAD` will be overwritten.
|
option old data in `.git/FETCH_HEAD` will be overwritten.
|
||||||
|
|
||||||
--upload-pack <upload-pack>::
|
--depth=<depth>::
|
||||||
When given, and the repository to fetch from is handled
|
Deepen the history of a 'shallow' repository created by
|
||||||
by 'git-fetch-pack', '--exec=<upload-pack>' is passed to
|
`git clone` with `--depth=<depth>` option (see linkgit:git-clone[1])
|
||||||
the command to specify non-default path for the command
|
by the specified number of commits.
|
||||||
run on the other end.
|
|
||||||
|
ifndef::git-pull[]
|
||||||
|
--dry-run::
|
||||||
|
Show what would be done, without making any changes.
|
||||||
|
endif::git-pull[]
|
||||||
|
|
||||||
-f::
|
-f::
|
||||||
--force::
|
--force::
|
||||||
When 'git-fetch' is used with `<rbranch>:<lbranch>`
|
When 'git fetch' is used with `<rbranch>:<lbranch>`
|
||||||
refspec, it refuses to update the local branch
|
refspec, it refuses to update the local branch
|
||||||
`<lbranch>` unless the remote branch `<rbranch>` it
|
`<lbranch>` unless the remote branch `<rbranch>` it
|
||||||
fetches is a descendant of `<lbranch>`. This option
|
fetches is a descendant of `<lbranch>`. This option
|
||||||
overrides that check.
|
overrides that check.
|
||||||
|
|
||||||
|
-k::
|
||||||
|
--keep::
|
||||||
|
Keep downloaded pack.
|
||||||
|
|
||||||
|
ifndef::git-pull[]
|
||||||
|
--multiple::
|
||||||
|
Allow several <repository> and <group> arguments to be
|
||||||
|
specified. No <refspec>s may be specified.
|
||||||
|
|
||||||
|
--prune::
|
||||||
|
After fetching, remove any remote tracking branches which
|
||||||
|
no longer exist on the remote.
|
||||||
|
endif::git-pull[]
|
||||||
|
|
||||||
ifdef::git-pull[]
|
ifdef::git-pull[]
|
||||||
--no-tags::
|
--no-tags::
|
||||||
endif::git-pull[]
|
endif::git-pull[]
|
||||||
|
@ -49,20 +59,35 @@ endif::git-pull[]
|
||||||
flag lets all tags and their associated objects be
|
flag lets all tags and their associated objects be
|
||||||
downloaded.
|
downloaded.
|
||||||
|
|
||||||
-k::
|
|
||||||
--keep::
|
|
||||||
Keep downloaded pack.
|
|
||||||
|
|
||||||
-u::
|
-u::
|
||||||
--update-head-ok::
|
--update-head-ok::
|
||||||
By default 'git-fetch' refuses to update the head which
|
By default 'git fetch' refuses to update the head which
|
||||||
corresponds to the current branch. This flag disables the
|
corresponds to the current branch. This flag disables the
|
||||||
check. This is purely for the internal use for 'git-pull'
|
check. This is purely for the internal use for 'git pull'
|
||||||
to communicate with 'git-fetch', and unless you are
|
to communicate with 'git fetch', and unless you are
|
||||||
implementing your own Porcelain you are not supposed to
|
implementing your own Porcelain you are not supposed to
|
||||||
use it.
|
use it.
|
||||||
|
|
||||||
--depth=<depth>::
|
--upload-pack <upload-pack>::
|
||||||
Deepen the history of a 'shallow' repository created by
|
When given, and the repository to fetch from is handled
|
||||||
`git clone` with `--depth=<depth>` option (see linkgit:git-clone[1])
|
by 'git fetch-pack', '--exec=<upload-pack>' is passed to
|
||||||
by the specified number of commits.
|
the command to specify non-default path for the command
|
||||||
|
run on the other end.
|
||||||
|
|
||||||
|
ifndef::git-pull[]
|
||||||
|
-q::
|
||||||
|
--quiet::
|
||||||
|
Pass --quiet to git-fetch-pack and silence any other internally
|
||||||
|
used git commands. Progress is not reported to the standard error
|
||||||
|
stream.
|
||||||
|
|
||||||
|
-v::
|
||||||
|
--verbose::
|
||||||
|
Be verbose.
|
||||||
|
endif::git-pull[]
|
||||||
|
|
||||||
|
--progress::
|
||||||
|
Progress status is reported on the standard error stream
|
||||||
|
by default when it is attached to a terminal, unless -q
|
||||||
|
is specified. This flag forces progress status even if the
|
||||||
|
standard error stream is not directed to a terminal.
|
||||||
|
|
|
@ -14,28 +14,32 @@ SYNOPSIS
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
This command adds the current content of new or modified files to the
|
This command updates the index using the current content found in
|
||||||
index, thus staging that content for inclusion in the next commit.
|
the working tree, to prepare the content staged for the next commit.
|
||||||
|
It typically adds the current content of existing paths as a whole,
|
||||||
|
but with some options it can also be used to add content with
|
||||||
|
only part of the changes made to the working tree files applied, or
|
||||||
|
remove paths that do not exist in the working tree anymore.
|
||||||
|
|
||||||
The "index" holds a snapshot of the content of the working tree, and it
|
The "index" holds a snapshot of the content of the working tree, and it
|
||||||
is this snapshot that is taken as the contents of the next commit. Thus
|
is this snapshot that is taken as the contents of the next commit. Thus
|
||||||
after making any changes to the working directory, and before running
|
after making any changes to the working directory, and before running
|
||||||
the commit command, you must use the 'add' command to add any new or
|
the commit command, you must use the `add` command to add any new or
|
||||||
modified files to the index.
|
modified files to the index.
|
||||||
|
|
||||||
This command can be performed multiple times before a commit. It only
|
This command can be performed multiple times before a commit. It only
|
||||||
adds the content of the specified file(s) at the time the add command is
|
adds the content of the specified file(s) at the time the add command is
|
||||||
run; if you want subsequent changes included in the next commit, then
|
run; if you want subsequent changes included in the next commit, then
|
||||||
you must run 'git add' again to add the new content to the index.
|
you must run `git add` again to add the new content to the index.
|
||||||
|
|
||||||
The 'git status' command can be used to obtain a summary of which
|
The `git status` command can be used to obtain a summary of which
|
||||||
files have changes that are staged for the next commit.
|
files have changes that are staged for the next commit.
|
||||||
|
|
||||||
The 'git add' command will not add ignored files by default. If any
|
The `git add` command will not add ignored files by default. If any
|
||||||
ignored files were explicitly specified on the command line, 'git add'
|
ignored files were explicitly specified on the command line, `git add`
|
||||||
will fail with a list of ignored files. Ignored files reached by
|
will fail with a list of ignored files. Ignored files reached by
|
||||||
directory recursion or filename globbing performed by Git (quote your
|
directory recursion or filename globbing performed by Git (quote your
|
||||||
globs before the shell) will be silently ignored. The 'add' command can
|
globs before the shell) will be silently ignored. The 'git add' command can
|
||||||
be used to add ignored files with the `-f` (force) option.
|
be used to add ignored files with the `-f` (force) option.
|
||||||
|
|
||||||
Please see linkgit:git-commit[1] for alternative ways to add content to a
|
Please see linkgit:git-commit[1] for alternative ways to add content to a
|
||||||
|
@ -72,9 +76,14 @@ OPTIONS
|
||||||
|
|
||||||
-p::
|
-p::
|
||||||
--patch::
|
--patch::
|
||||||
Similar to Interactive mode but the initial command loop is
|
Interactively choose hunks of patch between the index and the
|
||||||
bypassed and the 'patch' subcommand is invoked using each of
|
work tree and add them to the index. This gives the user a chance
|
||||||
the specified filepatterns before exiting.
|
to review the difference before adding modified contents to the
|
||||||
|
index.
|
||||||
|
+
|
||||||
|
This effectively runs `add --interactive`, but bypasses the
|
||||||
|
initial command menu and directly jumps to the `patch` subcommand.
|
||||||
|
See ``Interactive mode'' for details.
|
||||||
|
|
||||||
-e, \--edit::
|
-e, \--edit::
|
||||||
Open the diff vs. the index in an editor and let the user
|
Open the diff vs. the index in an editor and let the user
|
||||||
|
@ -87,28 +96,31 @@ apply.
|
||||||
|
|
||||||
-u::
|
-u::
|
||||||
--update::
|
--update::
|
||||||
Update only files that git already knows about, staging modified
|
Only match <filepattern> against already tracked files in
|
||||||
content for commit and marking deleted files for removal. This
|
the index rather than the working tree. That means that it
|
||||||
is similar
|
will never stage new files, but that it will stage modified
|
||||||
to what "git commit -a" does in preparation for making a commit,
|
new contents of tracked files and that it will remove files
|
||||||
except that the update is limited to paths specified on the
|
from the index if the corresponding files in the working tree
|
||||||
command line. If no paths are specified, all tracked files in the
|
have been removed.
|
||||||
current directory and its subdirectories are updated.
|
+
|
||||||
|
If no <filepattern> is given, default to "."; in other words,
|
||||||
|
update all tracked files in the current directory and its
|
||||||
|
subdirectories.
|
||||||
|
|
||||||
-A::
|
-A::
|
||||||
--all::
|
--all::
|
||||||
Update files that git already knows about (same as '\--update')
|
Like `-u`, but match <filepattern> against files in the
|
||||||
and add all untracked files that are not ignored by '.gitignore'
|
working tree in addition to the index. That means that it
|
||||||
mechanism.
|
will find new files as well as staging modified content and
|
||||||
|
removing files that are no longer in the working tree.
|
||||||
|
|
||||||
-N::
|
-N::
|
||||||
--intent-to-add::
|
--intent-to-add::
|
||||||
Record only the fact that the path will be added later. An entry
|
Record only the fact that the path will be added later. An entry
|
||||||
for the path is placed in the index with no content. This is
|
for the path is placed in the index with no content. This is
|
||||||
useful for, among other things, showing the unstaged content of
|
useful for, among other things, showing the unstaged content of
|
||||||
such files with 'git diff' and committing them with 'git commit
|
such files with `git diff` and committing them with `git commit
|
||||||
-a'.
|
-a`.
|
||||||
|
|
||||||
--refresh::
|
--refresh::
|
||||||
Don't add the file(s), but only refresh their stat()
|
Don't add the file(s), but only refresh their stat()
|
||||||
|
@ -128,7 +140,7 @@ apply.
|
||||||
Configuration
|
Configuration
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
The optional configuration variable 'core.excludesfile' indicates a path to a
|
The optional configuration variable `core.excludesfile` indicates a path to a
|
||||||
file containing patterns of file names to exclude from git-add, similar to
|
file containing patterns of file names to exclude from git-add, similar to
|
||||||
$GIT_DIR/info/exclude. Patterns in the exclude file are used in addition to
|
$GIT_DIR/info/exclude. Patterns in the exclude file are used in addition to
|
||||||
those in info/exclude. See linkgit:gitrepository-layout[5].
|
those in info/exclude. See linkgit:gitrepository-layout[5].
|
||||||
|
@ -141,7 +153,7 @@ EXAMPLES
|
||||||
and its subdirectories:
|
and its subdirectories:
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git add Documentation/\\*.txt
|
$ git add Documentation/\*.txt
|
||||||
------------
|
------------
|
||||||
+
|
+
|
||||||
Note that the asterisk `\*` is quoted from the shell in this
|
Note that the asterisk `\*` is quoted from the shell in this
|
||||||
|
@ -176,7 +188,7 @@ and type return, like this:
|
||||||
What now> 1
|
What now> 1
|
||||||
------------
|
------------
|
||||||
|
|
||||||
You also could say "s" or "sta" or "status" above as long as the
|
You also could say `s` or `sta` or `status` above as long as the
|
||||||
choice is unique.
|
choice is unique.
|
||||||
|
|
||||||
The main command loop has 6 subcommands (plus help and quit).
|
The main command loop has 6 subcommands (plus help and quit).
|
||||||
|
@ -184,9 +196,9 @@ The main command loop has 6 subcommands (plus help and quit).
|
||||||
status::
|
status::
|
||||||
|
|
||||||
This shows the change between HEAD and index (i.e. what will be
|
This shows the change between HEAD and index (i.e. what will be
|
||||||
committed if you say "git commit"), and between index and
|
committed if you say `git commit`), and between index and
|
||||||
working tree files (i.e. what you could stage further before
|
working tree files (i.e. what you could stage further before
|
||||||
"git commit" using "git-add") for each path. A sample output
|
`git commit` using `git add`) for each path. A sample output
|
||||||
looks like this:
|
looks like this:
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
|
@ -254,9 +266,9 @@ patch::
|
||||||
|
|
||||||
y - stage this hunk
|
y - stage this hunk
|
||||||
n - do not stage this hunk
|
n - do not stage this hunk
|
||||||
q - quit, do not stage this hunk nor any of the remaining ones
|
q - quit; do not stage this hunk nor any of the remaining ones
|
||||||
a - stage this and all the remaining hunks in the file
|
a - stage this hunk and all later hunks in the file
|
||||||
d - do not stage this hunk nor any of the remaining hunks in the file
|
d - do not stage this hunk nor any of the later hunks in the file
|
||||||
g - select a hunk to go to
|
g - select a hunk to go to
|
||||||
/ - search for a hunk matching the given regex
|
/ - search for a hunk matching the given regex
|
||||||
j - leave this hunk undecided, see next undecided hunk
|
j - leave this hunk undecided, see next undecided hunk
|
||||||
|
|
|
@ -9,13 +9,13 @@ git-am - Apply a series of patches from a mailbox
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git am' [--signoff] [--keep] [--utf8 | --no-utf8]
|
'git am' [--signoff] [--keep] [--keep-cr | --no-keep-cr] [--utf8 | --no-utf8]
|
||||||
[--3way] [--interactive] [--committer-date-is-author-date]
|
[--3way] [--interactive] [--committer-date-is-author-date]
|
||||||
[--ignore-date]
|
[--ignore-date] [--ignore-space-change | --ignore-whitespace]
|
||||||
[--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
|
[--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
|
||||||
[--reject] [-q | --quiet]
|
[--reject] [-q | --quiet] [--scissors | --no-scissors]
|
||||||
[<mbox> | <Maildir>...]
|
[<mbox> | <Maildir>...]
|
||||||
'git am' (--skip | --resolved | --abort)
|
'git am' (--continue | --skip | --abort)
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
@ -37,7 +37,22 @@ OPTIONS
|
||||||
|
|
||||||
-k::
|
-k::
|
||||||
--keep::
|
--keep::
|
||||||
Pass `-k` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]).
|
Pass `-k` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]).
|
||||||
|
|
||||||
|
--keep-cr::
|
||||||
|
--no-keep-cr::
|
||||||
|
With `--keep-cr`, call 'git mailsplit' (see linkgit:git-mailsplit[1])
|
||||||
|
with the same option, to prevent it from stripping CR at the end of
|
||||||
|
lines. `am.keepcr` configuration variable can be used to specify the
|
||||||
|
default behaviour. `--no-keep-cr` is useful to override `am.keepcr`.
|
||||||
|
|
||||||
|
-c::
|
||||||
|
--scissors::
|
||||||
|
Remove everything in body before a scissors line (see
|
||||||
|
linkgit:git-mailinfo[1]).
|
||||||
|
|
||||||
|
--no-scissors::
|
||||||
|
Ignore scissors lines (see linkgit:git-mailinfo[1]).
|
||||||
|
|
||||||
-q::
|
-q::
|
||||||
--quiet::
|
--quiet::
|
||||||
|
@ -45,7 +60,7 @@ OPTIONS
|
||||||
|
|
||||||
-u::
|
-u::
|
||||||
--utf8::
|
--utf8::
|
||||||
Pass `-u` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]).
|
Pass `-u` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]).
|
||||||
The proposed commit log message taken from the e-mail
|
The proposed commit log message taken from the e-mail
|
||||||
is re-coded into UTF-8 encoding (configuration variable
|
is re-coded into UTF-8 encoding (configuration variable
|
||||||
`i18n.commitencoding` can be used to specify project's
|
`i18n.commitencoding` can be used to specify project's
|
||||||
|
@ -55,7 +70,7 @@ This was optional in prior versions of git, but now it is the
|
||||||
default. You can use `--no-utf8` to override this.
|
default. You can use `--no-utf8` to override this.
|
||||||
|
|
||||||
--no-utf8::
|
--no-utf8::
|
||||||
Pass `-n` flag to 'git-mailinfo' (see
|
Pass `-n` flag to 'git mailinfo' (see
|
||||||
linkgit:git-mailinfo[1]).
|
linkgit:git-mailinfo[1]).
|
||||||
|
|
||||||
-3::
|
-3::
|
||||||
|
@ -65,12 +80,15 @@ default. You can use `--no-utf8` to override this.
|
||||||
it is supposed to apply to and we have those blobs
|
it is supposed to apply to and we have those blobs
|
||||||
available locally.
|
available locally.
|
||||||
|
|
||||||
|
--ignore-date::
|
||||||
|
--ignore-space-change::
|
||||||
|
--ignore-whitespace::
|
||||||
--whitespace=<option>::
|
--whitespace=<option>::
|
||||||
-C<n>::
|
-C<n>::
|
||||||
-p<n>::
|
-p<n>::
|
||||||
--directory=<dir>::
|
--directory=<dir>::
|
||||||
--reject::
|
--reject::
|
||||||
These flags are passed to the 'git-apply' (see linkgit:git-apply[1])
|
These flags are passed to the 'git apply' (see linkgit:git-apply[1])
|
||||||
program that applies
|
program that applies
|
||||||
the patch.
|
the patch.
|
||||||
|
|
||||||
|
@ -96,6 +114,7 @@ default. You can use `--no-utf8` to override this.
|
||||||
Skip the current patch. This is only meaningful when
|
Skip the current patch. This is only meaningful when
|
||||||
restarting an aborted patch.
|
restarting an aborted patch.
|
||||||
|
|
||||||
|
--continue::
|
||||||
-r::
|
-r::
|
||||||
--resolved::
|
--resolved::
|
||||||
After a patch failure (e.g. attempting to apply
|
After a patch failure (e.g. attempting to apply
|
||||||
|
@ -110,7 +129,7 @@ default. You can use `--no-utf8` to override this.
|
||||||
to the screen before exiting. This overrides the
|
to the screen before exiting. This overrides the
|
||||||
standard message informing you to use `--resolved`
|
standard message informing you to use `--resolved`
|
||||||
or `--skip` to handle the failure. This is solely
|
or `--skip` to handle the failure. This is solely
|
||||||
for internal use between 'git-rebase' and 'git-am'.
|
for internal use between 'git rebase' and 'git am'.
|
||||||
|
|
||||||
--abort::
|
--abort::
|
||||||
Restore the original branch and abort the patching operation.
|
Restore the original branch and abort the patching operation.
|
||||||
|
@ -125,10 +144,8 @@ the commit, after stripping common prefix "[PATCH <anything>]".
|
||||||
The "Subject: " line is supposed to concisely describe what the
|
The "Subject: " line is supposed to concisely describe what the
|
||||||
commit is about in one line of text.
|
commit is about in one line of text.
|
||||||
|
|
||||||
"From: " and "Subject: " lines starting the body (the rest of the
|
"From: " and "Subject: " lines starting the body override the respective
|
||||||
message after the blank line terminating the RFC2822 headers)
|
commit author name and title values taken from the headers.
|
||||||
override the respective commit author name and title values taken
|
|
||||||
from the headers.
|
|
||||||
|
|
||||||
The commit message is formed by the title taken from the
|
The commit message is formed by the title taken from the
|
||||||
"Subject: ", a blank line and the body of the message up to
|
"Subject: ", a blank line and the body of the message up to
|
||||||
|
|
|
@ -3,7 +3,7 @@ git-apply(1)
|
||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-apply - Apply a patch on a git index file and/or a working tree
|
git-apply - Apply a patch to files and/or to the index
|
||||||
|
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
|
@ -13,14 +13,18 @@ SYNOPSIS
|
||||||
[--apply] [--no-add] [--build-fake-ancestor=<file>] [-R | --reverse]
|
[--apply] [--no-add] [--build-fake-ancestor=<file>] [-R | --reverse]
|
||||||
[--allow-binary-replacement | --binary] [--reject] [-z]
|
[--allow-binary-replacement | --binary] [--reject] [-z]
|
||||||
[-pNUM] [-CNUM] [--inaccurate-eof] [--recount] [--cached]
|
[-pNUM] [-CNUM] [--inaccurate-eof] [--recount] [--cached]
|
||||||
|
[--ignore-space-change | --ignore-whitespace ]
|
||||||
[--whitespace=<nowarn|warn|fix|error|error-all>]
|
[--whitespace=<nowarn|warn|fix|error|error-all>]
|
||||||
[--exclude=PATH] [--include=PATH] [--directory=<root>]
|
[--exclude=PATH] [--include=PATH] [--directory=<root>]
|
||||||
[--verbose] [<patch>...]
|
[--verbose] [<patch>...]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Reads supplied 'diff' output and applies it on a git index file
|
Reads the supplied diff output (i.e. "a patch") and applies it to files.
|
||||||
and a work tree.
|
With the `--index` option the patch is also applied to the index, and
|
||||||
|
with the `--cache` option the patch is only applied to the index.
|
||||||
|
Without these options, the command applies the patch only to files,
|
||||||
|
and does not require them to be in a git repository.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
|
@ -33,7 +37,7 @@ OPTIONS
|
||||||
input. Turns off "apply".
|
input. Turns off "apply".
|
||||||
|
|
||||||
--numstat::
|
--numstat::
|
||||||
Similar to \--stat, but shows the number of added and
|
Similar to `--stat`, but shows the number of added and
|
||||||
deleted lines in decimal notation and the pathname without
|
deleted lines in decimal notation and the pathname without
|
||||||
abbreviation, to make it more machine friendly. For
|
abbreviation, to make it more machine friendly. For
|
||||||
binary files, outputs two `-` instead of saying
|
binary files, outputs two `-` instead of saying
|
||||||
|
@ -47,25 +51,25 @@ OPTIONS
|
||||||
|
|
||||||
--check::
|
--check::
|
||||||
Instead of applying the patch, see if the patch is
|
Instead of applying the patch, see if the patch is
|
||||||
applicable to the current work tree and/or the index
|
applicable to the current working tree and/or the index
|
||||||
file and detects errors. Turns off "apply".
|
file and detects errors. Turns off "apply".
|
||||||
|
|
||||||
--index::
|
--index::
|
||||||
When --check is in effect, or when applying the patch
|
When `--check` is in effect, or when applying the patch
|
||||||
(which is the default when none of the options that
|
(which is the default when none of the options that
|
||||||
disables it is in effect), make sure the patch is
|
disables it is in effect), make sure the patch is
|
||||||
applicable to what the current index file records. If
|
applicable to what the current index file records. If
|
||||||
the file to be patched in the work tree is not
|
the file to be patched in the working tree is not
|
||||||
up-to-date, it is flagged as an error. This flag also
|
up-to-date, it is flagged as an error. This flag also
|
||||||
causes the index file to be updated.
|
causes the index file to be updated.
|
||||||
|
|
||||||
--cached::
|
--cached::
|
||||||
Apply a patch without touching the working tree. Instead take the
|
Apply a patch without touching the working tree. Instead take the
|
||||||
cached data, apply the patch, and store the result in the index
|
cached data, apply the patch, and store the result in the index
|
||||||
without using the working tree. This implies '--index'.
|
without using the working tree. This implies `--index`.
|
||||||
|
|
||||||
--build-fake-ancestor=<file>::
|
--build-fake-ancestor=<file>::
|
||||||
Newer 'git-diff' output has embedded 'index information'
|
Newer 'git diff' output has embedded 'index information'
|
||||||
for each blob to help identify the original version that
|
for each blob to help identify the original version that
|
||||||
the patch applies to. When this flag is given, and if
|
the patch applies to. When this flag is given, and if
|
||||||
the original versions of the blobs are available locally,
|
the original versions of the blobs are available locally,
|
||||||
|
@ -79,18 +83,20 @@ the information is read from the current index instead.
|
||||||
Apply the patch in reverse.
|
Apply the patch in reverse.
|
||||||
|
|
||||||
--reject::
|
--reject::
|
||||||
For atomicity, 'git-apply' by default fails the whole patch and
|
For atomicity, 'git apply' by default fails the whole patch and
|
||||||
does not touch the working tree when some of the hunks
|
does not touch the working tree when some of the hunks
|
||||||
do not apply. This option makes it apply
|
do not apply. This option makes it apply
|
||||||
the parts of the patch that are applicable, and leave the
|
the parts of the patch that are applicable, and leave the
|
||||||
rejected hunks in corresponding *.rej files.
|
rejected hunks in corresponding *.rej files.
|
||||||
|
|
||||||
-z::
|
-z::
|
||||||
When showing the index information, do not munge paths,
|
When `--numstat` has been given, do not munge pathnames,
|
||||||
but use NUL terminated machine readable format. Without
|
but use a NUL-terminated machine-readable format.
|
||||||
this flag, the pathnames output will have TAB, LF, and
|
+
|
||||||
backslash characters replaced with `\t`, `\n`, and `\\`,
|
Without this option, each pathname output will have TAB, LF, double quotes,
|
||||||
respectively.
|
and backslash characters replaced with `\t`, `\n`, `\"`, and `\\`,
|
||||||
|
respectively, and the pathname will be enclosed in double quotes if
|
||||||
|
any of those replacements occurred.
|
||||||
|
|
||||||
-p<n>::
|
-p<n>::
|
||||||
Remove <n> leading slashes from traditional diff paths. The
|
Remove <n> leading slashes from traditional diff paths. The
|
||||||
|
@ -103,18 +109,18 @@ the information is read from the current index instead.
|
||||||
ever ignored.
|
ever ignored.
|
||||||
|
|
||||||
--unidiff-zero::
|
--unidiff-zero::
|
||||||
By default, 'git-apply' expects that the patch being
|
By default, 'git apply' expects that the patch being
|
||||||
applied is a unified diff with at least one line of context.
|
applied is a unified diff with at least one line of context.
|
||||||
This provides good safety measures, but breaks down when
|
This provides good safety measures, but breaks down when
|
||||||
applying a diff generated with --unified=0. To bypass these
|
applying a diff generated with `--unified=0`. To bypass these
|
||||||
checks use '--unidiff-zero'.
|
checks use `--unidiff-zero`.
|
||||||
+
|
+
|
||||||
Note, for the reasons stated above usage of context-free patches is
|
Note, for the reasons stated above usage of context-free patches is
|
||||||
discouraged.
|
discouraged.
|
||||||
|
|
||||||
--apply::
|
--apply::
|
||||||
If you use any of the options marked "Turns off
|
If you use any of the options marked "Turns off
|
||||||
'apply'" above, 'git-apply' reads and outputs the
|
'apply'" above, 'git apply' reads and outputs the
|
||||||
requested information without actually applying the
|
requested information without actually applying the
|
||||||
patch. Give this flag after those flags to also apply
|
patch. Give this flag after those flags to also apply
|
||||||
the patch.
|
the patch.
|
||||||
|
@ -143,12 +149,20 @@ discouraged.
|
||||||
be useful when importing patchsets, where you want to include certain
|
be useful when importing patchsets, where you want to include certain
|
||||||
files or directories.
|
files or directories.
|
||||||
+
|
+
|
||||||
When --exclude and --include patterns are used, they are examined in the
|
When `--exclude` and `--include` patterns are used, they are examined in the
|
||||||
order they appear on the command line, and the first match determines if a
|
order they appear on the command line, and the first match determines if a
|
||||||
patch to each path is used. A patch to a path that does not match any
|
patch to each path is used. A patch to a path that does not match any
|
||||||
include/exclude pattern is used by default if there is no include pattern
|
include/exclude pattern is used by default if there is no include pattern
|
||||||
on the command line, and ignored if there is any include pattern.
|
on the command line, and ignored if there is any include pattern.
|
||||||
|
|
||||||
|
--ignore-space-change::
|
||||||
|
--ignore-whitespace::
|
||||||
|
When applying a patch, ignore changes in whitespace in context
|
||||||
|
lines if necessary.
|
||||||
|
Context lines will preserve their whitespace, and they will not
|
||||||
|
undergo whitespace fixing regardless of the value of the
|
||||||
|
`--whitespace` option. New lines will still be fixed, though.
|
||||||
|
|
||||||
--whitespace=<action>::
|
--whitespace=<action>::
|
||||||
When applying a patch, detect a new or modified line that has
|
When applying a patch, detect a new or modified line that has
|
||||||
whitespace errors. What are considered whitespace errors is
|
whitespace errors. What are considered whitespace errors is
|
||||||
|
@ -205,22 +219,26 @@ running `git apply --directory=modules/git-gui`.
|
||||||
Configuration
|
Configuration
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
apply.ignorewhitespace::
|
||||||
|
Set to 'change' if you want changes in whitespace to be ignored by default.
|
||||||
|
Set to one of: no, none, never, false if you want changes in
|
||||||
|
whitespace to be significant.
|
||||||
apply.whitespace::
|
apply.whitespace::
|
||||||
When no `--whitespace` flag is given from the command
|
When no `--whitespace` flag is given from the command
|
||||||
line, this configuration item is used as the default.
|
line, this configuration item is used as the default.
|
||||||
|
|
||||||
Submodules
|
Submodules
|
||||||
----------
|
----------
|
||||||
If the patch contains any changes to submodules then 'git-apply'
|
If the patch contains any changes to submodules then 'git apply'
|
||||||
treats these changes as follows.
|
treats these changes as follows.
|
||||||
|
|
||||||
If --index is specified (explicitly or implicitly), then the submodule
|
If `--index` is specified (explicitly or implicitly), then the submodule
|
||||||
commits must match the index exactly for the patch to apply. If any
|
commits must match the index exactly for the patch to apply. If any
|
||||||
of the submodules are checked-out, then these check-outs are completely
|
of the submodules are checked-out, then these check-outs are completely
|
||||||
ignored, i.e., they are not required to be up-to-date or clean and they
|
ignored, i.e., they are not required to be up-to-date or clean and they
|
||||||
are not updated.
|
are not updated.
|
||||||
|
|
||||||
If --index is not specified, then the submodule commits in the patch
|
If `--index` is not specified, then the submodule commits in the patch
|
||||||
are ignored and only the absence or presence of the corresponding
|
are ignored and only the absence or presence of the corresponding
|
||||||
subdirectory is checked and (if possible) updated.
|
subdirectory is checked and (if possible) updated.
|
||||||
|
|
||||||
|
|
|
@ -29,17 +29,17 @@ branches that have different roots, it will refuse to run. In that case,
|
||||||
edit your <archive/branch> parameters to define clearly the scope of the
|
edit your <archive/branch> parameters to define clearly the scope of the
|
||||||
import.
|
import.
|
||||||
|
|
||||||
'git-archimport' uses `tla` extensively in the background to access the
|
'git archimport' uses `tla` extensively in the background to access the
|
||||||
Arch repository.
|
Arch repository.
|
||||||
Make sure you have a recent version of `tla` available in the path. `tla` must
|
Make sure you have a recent version of `tla` available in the path. `tla` must
|
||||||
know about the repositories you pass to 'git-archimport'.
|
know about the repositories you pass to 'git archimport'.
|
||||||
|
|
||||||
For the initial import, 'git-archimport' expects to find itself in an empty
|
For the initial import, 'git archimport' expects to find itself in an empty
|
||||||
directory. To follow the development of a project that uses Arch, rerun
|
directory. To follow the development of a project that uses Arch, rerun
|
||||||
'git-archimport' with the same parameters as the initial import to perform
|
'git archimport' with the same parameters as the initial import to perform
|
||||||
incremental imports.
|
incremental imports.
|
||||||
|
|
||||||
While 'git-archimport' will try to create sensible branch names for the
|
While 'git archimport' will try to create sensible branch names for the
|
||||||
archives that it imports, it is also possible to specify git branch names
|
archives that it imports, it is also possible to specify git branch names
|
||||||
manually. To do so, write a git branch name after each <archive/branch>
|
manually. To do so, write a git branch name after each <archive/branch>
|
||||||
parameter, separated by a colon. This way, you can shorten the Arch
|
parameter, separated by a colon. This way, you can shorten the Arch
|
||||||
|
@ -84,7 +84,7 @@ OPTIONS
|
||||||
|
|
||||||
-o::
|
-o::
|
||||||
Use this for compatibility with old-style branch names used by
|
Use this for compatibility with old-style branch names used by
|
||||||
earlier versions of 'git-archimport'. Old-style branch names
|
earlier versions of 'git archimport'. Old-style branch names
|
||||||
were category--branch, whereas new-style branch names are
|
were category--branch, whereas new-style branch names are
|
||||||
archive,category--branch--version. In both cases, names given
|
archive,category--branch--version. In both cases, names given
|
||||||
on the command-line will override the automatically-generated
|
on the command-line will override the automatically-generated
|
||||||
|
|
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git archive' [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]
|
'git archive' [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]
|
||||||
[--output=<file>] [--worktree-attributes]
|
[-o | --output=<file>] [--worktree-attributes]
|
||||||
[--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
|
[--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
|
||||||
[path...]
|
[path...]
|
||||||
|
|
||||||
|
@ -21,21 +21,24 @@ structure for the named tree, and writes it out to the standard
|
||||||
output. If <prefix> is specified it is
|
output. If <prefix> is specified it is
|
||||||
prepended to the filenames in the archive.
|
prepended to the filenames in the archive.
|
||||||
|
|
||||||
'git-archive' behaves differently when given a tree ID versus when
|
'git archive' behaves differently when given a tree ID versus when
|
||||||
given a commit ID or tag ID. In the first case the current time is
|
given a commit ID or tag ID. In the first case the current time is
|
||||||
used as the modification time of each file in the archive. In the latter
|
used as the modification time of each file in the archive. In the latter
|
||||||
case the commit time as recorded in the referenced commit object is
|
case the commit time as recorded in the referenced commit object is
|
||||||
used instead. Additionally the commit ID is stored in a global
|
used instead. Additionally the commit ID is stored in a global
|
||||||
extended pax header if the tar format is used; it can be extracted
|
extended pax header if the tar format is used; it can be extracted
|
||||||
using 'git-get-tar-commit-id'. In ZIP files it is stored as a file
|
using 'git get-tar-commit-id'. In ZIP files it is stored as a file
|
||||||
comment.
|
comment.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
|
|
||||||
--format=<fmt>::
|
--format=<fmt>::
|
||||||
Format of the resulting archive: 'tar' or 'zip'. The default
|
Format of the resulting archive: 'tar' or 'zip'. If this option
|
||||||
is 'tar'.
|
is not given, and the output file is specified, the format is
|
||||||
|
inferred from the filename if possible (e.g. writing to "foo.zip"
|
||||||
|
makes the output to be in the zip format). Otherwise the output
|
||||||
|
format is `tar`.
|
||||||
|
|
||||||
-l::
|
-l::
|
||||||
--list::
|
--list::
|
||||||
|
@ -48,6 +51,7 @@ OPTIONS
|
||||||
--prefix=<prefix>/::
|
--prefix=<prefix>/::
|
||||||
Prepend <prefix>/ to each filename in the archive.
|
Prepend <prefix>/ to each filename in the archive.
|
||||||
|
|
||||||
|
-o <file>::
|
||||||
--output=<file>::
|
--output=<file>::
|
||||||
Write the archive to <file> instead of stdout.
|
Write the archive to <file> instead of stdout.
|
||||||
|
|
||||||
|
@ -70,8 +74,9 @@ OPTIONS
|
||||||
The tree or commit to produce an archive for.
|
The tree or commit to produce an archive for.
|
||||||
|
|
||||||
path::
|
path::
|
||||||
If one or more paths are specified, include only these in the
|
Without an optional path parameter, all files and subdirectories
|
||||||
archive, otherwise include all files and subdirectories.
|
of the current working directory are included in the archive.
|
||||||
|
If one or more paths are specified, only these are included.
|
||||||
|
|
||||||
BACKEND EXTRA OPTIONS
|
BACKEND EXTRA OPTIONS
|
||||||
---------------------
|
---------------------
|
||||||
|
@ -107,6 +112,14 @@ export-subst::
|
||||||
expand several placeholders when adding this file to an archive.
|
expand several placeholders when adding this file to an archive.
|
||||||
See linkgit:gitattributes[5] for details.
|
See linkgit:gitattributes[5] for details.
|
||||||
|
|
||||||
|
Note that attributes are by default taken from the `.gitattributes` files
|
||||||
|
in the tree that is being archived. If you want to tweak the way the
|
||||||
|
output is generated after the fact (e.g. you committed without adding an
|
||||||
|
appropriate export-ignore in its `.gitattributes`), adjust the checked out
|
||||||
|
`.gitattributes` file as necessary and use `--work-tree-attributes`
|
||||||
|
option. Alternatively you can keep necessary attributes that should apply
|
||||||
|
while archiving any tree in your `$GIT_DIR/info/attributes` file.
|
||||||
|
|
||||||
EXAMPLES
|
EXAMPLES
|
||||||
--------
|
--------
|
||||||
git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)::
|
git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)::
|
||||||
|
@ -129,6 +142,12 @@ git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs
|
||||||
Put everything in the current head's Documentation/ directory
|
Put everything in the current head's Documentation/ directory
|
||||||
into 'git-1.4.0-docs.zip', with the prefix 'git-docs/'.
|
into 'git-1.4.0-docs.zip', with the prefix 'git-docs/'.
|
||||||
|
|
||||||
|
git archive -o latest.zip HEAD::
|
||||||
|
|
||||||
|
Create a Zip archive that contains the contents of the latest
|
||||||
|
commit on the current branch. Note that the output format is
|
||||||
|
inferred by the extension of the output file.
|
||||||
|
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
--------
|
--------
|
||||||
|
|
1358
Documentation/git-bisect-lk2009.txt
Normal file
1358
Documentation/git-bisect-lk2009.txt
Normal file
File diff suppressed because it is too large
Load diff
|
@ -20,7 +20,7 @@ on the subcommand:
|
||||||
git bisect bad [<rev>]
|
git bisect bad [<rev>]
|
||||||
git bisect good [<rev>...]
|
git bisect good [<rev>...]
|
||||||
git bisect skip [(<rev>|<range>)...]
|
git bisect skip [(<rev>|<range>)...]
|
||||||
git bisect reset [<branch>]
|
git bisect reset [<commit>]
|
||||||
git bisect visualize
|
git bisect visualize
|
||||||
git bisect replay <logfile>
|
git bisect replay <logfile>
|
||||||
git bisect log
|
git bisect log
|
||||||
|
@ -81,16 +81,27 @@ will have been left with the first bad kernel revision in "refs/bisect/bad".
|
||||||
Bisect reset
|
Bisect reset
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
To return to the original head after a bisect session, issue the
|
After a bisect session, to clean up the bisection state and return to
|
||||||
following command:
|
the original HEAD, issue the following command:
|
||||||
|
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
$ git bisect reset
|
$ git bisect reset
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
This resets the tree to the original branch instead of being on the
|
By default, this will return your tree to the commit that was checked
|
||||||
bisection commit ("git bisect start" will also do that, as it resets
|
out before `git bisect start`. (A new `git bisect start` will also do
|
||||||
the bisection state).
|
that, as it cleans up the old bisection state.)
|
||||||
|
|
||||||
|
With an optional argument, you can return to a different commit
|
||||||
|
instead:
|
||||||
|
|
||||||
|
------------------------------------------------
|
||||||
|
$ git bisect reset <commit>
|
||||||
|
------------------------------------------------
|
||||||
|
|
||||||
|
For example, `git bisect reset HEAD` will leave you on the current
|
||||||
|
bisection commit and avoid switching commits at all, while `git bisect
|
||||||
|
reset bisect/bad` will check out the first bad revision.
|
||||||
|
|
||||||
Bisect visualize
|
Bisect visualize
|
||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
@ -319,6 +330,11 @@ Documentation
|
||||||
-------------
|
-------------
|
||||||
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
|
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
--------
|
||||||
|
link:git-bisect-lk2009.html[Fighting regressions with git bisect],
|
||||||
|
linkgit:git-blame[1].
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
---
|
---
|
||||||
Part of the linkgit:git[1] suite
|
Part of the linkgit:git[1] suite
|
||||||
|
|
|
@ -9,7 +9,7 @@ SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-p] [-w] [--incremental] [-L n,m]
|
'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-p] [-w] [--incremental] [-L n,m]
|
||||||
[-S <revs-file>] [-M] [-C] [-C] [--since=<date>]
|
[-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>]
|
||||||
[<rev> | --contents <file> | --reverse <rev>] [--] <file>
|
[<rev> | --contents <file> | --reverse <rev>] [--] <file>
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
|
@ -21,7 +21,7 @@ last modified the line. Optionally, start annotating from the given revision.
|
||||||
The command can also limit the range of lines annotated.
|
The command can also limit the range of lines annotated.
|
||||||
|
|
||||||
The report does not tell you anything about lines which have been deleted or
|
The report does not tell you anything about lines which have been deleted or
|
||||||
replaced; you need to use a tool such as 'git-diff' or the "pickaxe"
|
replaced; you need to use a tool such as 'git diff' or the "pickaxe"
|
||||||
interface briefly mentioned in the following paragraph.
|
interface briefly mentioned in the following paragraph.
|
||||||
|
|
||||||
Apart from supporting file annotation, git also supports searching the
|
Apart from supporting file annotation, git also supports searching the
|
||||||
|
@ -49,7 +49,7 @@ include::blame-options.txt[]
|
||||||
file (see `-M`). The first number listed is the score.
|
file (see `-M`). The first number listed is the score.
|
||||||
This is the number of alphanumeric characters detected
|
This is the number of alphanumeric characters detected
|
||||||
as having been moved between or within files. This must be above
|
as having been moved between or within files. This must be above
|
||||||
a certain threshold for 'git-blame' to consider those lines
|
a certain threshold for 'git blame' to consider those lines
|
||||||
of code to have been moved.
|
of code to have been moved.
|
||||||
|
|
||||||
-f::
|
-f::
|
||||||
|
@ -100,7 +100,7 @@ header elements later.
|
||||||
SPECIFYING RANGES
|
SPECIFYING RANGES
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
Unlike 'git-blame' and 'git-annotate' in older versions of git, the extent
|
Unlike 'git blame' and 'git annotate' in older versions of git, the extent
|
||||||
of the annotation can be limited to both line ranges and revision
|
of the annotation can be limited to both line ranges and revision
|
||||||
ranges. When you are interested in finding the origin for
|
ranges. When you are interested in finding the origin for
|
||||||
lines 40-60 for file `foo`, you can use the `-L` option like so
|
lines 40-60 for file `foo`, you can use the `-L` option like so
|
||||||
|
@ -118,7 +118,7 @@ which limits the annotation to the body of the `hello` subroutine.
|
||||||
|
|
||||||
When you are not interested in changes older than version
|
When you are not interested in changes older than version
|
||||||
v2.6.18, or changes older than 3 weeks, you can use revision
|
v2.6.18, or changes older than 3 weeks, you can use revision
|
||||||
range specifiers similar to 'git-rev-list':
|
range specifiers similar to 'git rev-list':
|
||||||
|
|
||||||
git blame v2.6.18.. -- foo
|
git blame v2.6.18.. -- foo
|
||||||
git blame --since=3.weeks -- foo
|
git blame --since=3.weeks -- foo
|
||||||
|
|
|
@ -8,10 +8,10 @@ git-branch - List, create, or delete branches
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git branch' [--color | --no-color] [-r | -a]
|
'git branch' [--color[=<when>] | --no-color] [-r | -a]
|
||||||
[-v [--abbrev=<length> | --no-abbrev]]
|
[-v [--abbrev=<length> | --no-abbrev]]
|
||||||
[(--merged | --no-merged | --contains) [<commit>]]
|
[(--merged | --no-merged | --contains) [<commit>]]
|
||||||
'git branch' [--track | --no-track] [-l] [-f] <branchname> [<start-point>]
|
'git branch' [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
|
||||||
'git branch' (-m | -M) [<oldbranch>] <newbranch>
|
'git branch' (-m | -M) [<oldbranch>] <newbranch>
|
||||||
'git branch' (-d | -D) [-r] <branchname>...
|
'git branch' (-d | -D) [-r] <branchname>...
|
||||||
|
|
||||||
|
@ -30,17 +30,15 @@ commit) will be listed. With `--no-merged` only branches not merged into
|
||||||
the named commit will be listed. If the <commit> argument is missing it
|
the named commit will be listed. If the <commit> argument is missing it
|
||||||
defaults to 'HEAD' (i.e. the tip of the current branch).
|
defaults to 'HEAD' (i.e. the tip of the current branch).
|
||||||
|
|
||||||
In the command's second form, a new branch named <branchname> will be created.
|
The command's second form creates a new branch head named <branchname>
|
||||||
It will start out with a head equal to the one given as <start-point>.
|
which points to the current 'HEAD', or <start-point> if given.
|
||||||
If no <start-point> is given, the branch will be created with a head
|
|
||||||
equal to that of the currently checked out branch.
|
|
||||||
|
|
||||||
Note that this will create the new branch, but it will not switch the
|
Note that this will create the new branch, but it will not switch the
|
||||||
working tree to it; use "git checkout <newbranch>" to switch to the
|
working tree to it; use "git checkout <newbranch>" to switch to the
|
||||||
new branch.
|
new branch.
|
||||||
|
|
||||||
When a local branch is started off a remote branch, git sets up the
|
When a local branch is started off a remote branch, git sets up the
|
||||||
branch so that 'git-pull' will appropriately merge from
|
branch so that 'git pull' will appropriately merge from
|
||||||
the remote branch. This behavior may be changed via the global
|
the remote branch. This behavior may be changed via the global
|
||||||
`branch.autosetupmerge` configuration flag. That setting can be
|
`branch.autosetupmerge` configuration flag. That setting can be
|
||||||
overridden by using the `--track` and `--no-track` options.
|
overridden by using the `--track` and `--no-track` options.
|
||||||
|
@ -57,7 +55,7 @@ has a reflog then the reflog will also be deleted.
|
||||||
|
|
||||||
Use -r together with -d to delete remote-tracking branches. Note, that it
|
Use -r together with -d to delete remote-tracking branches. Note, that it
|
||||||
only makes sense to delete remote-tracking branches if they no longer exist
|
only makes sense to delete remote-tracking branches if they no longer exist
|
||||||
in the remote repository or if 'git-fetch' was configured not to fetch
|
in the remote repository or if 'git fetch' was configured not to fetch
|
||||||
them again. See also the 'prune' subcommand of linkgit:git-remote[1] for a
|
them again. See also the 'prune' subcommand of linkgit:git-remote[1] for a
|
||||||
way to clean up all obsolete remote-tracking branches.
|
way to clean up all obsolete remote-tracking branches.
|
||||||
|
|
||||||
|
@ -65,7 +63,9 @@ way to clean up all obsolete remote-tracking branches.
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
-d::
|
-d::
|
||||||
Delete a branch. The branch must be fully merged in HEAD.
|
Delete a branch. The branch must be fully merged in its
|
||||||
|
upstream branch, or in `HEAD` if no upstream was set with
|
||||||
|
`--track` or `--set-upstream`.
|
||||||
|
|
||||||
-D::
|
-D::
|
||||||
Delete a branch irrespective of its merged status.
|
Delete a branch irrespective of its merged status.
|
||||||
|
@ -74,10 +74,13 @@ OPTIONS
|
||||||
Create the branch's reflog. This activates recording of
|
Create the branch's reflog. This activates recording of
|
||||||
all changes made to the branch ref, enabling use of date
|
all changes made to the branch ref, enabling use of date
|
||||||
based sha1 expressions such as "<branchname>@\{yesterday}".
|
based sha1 expressions such as "<branchname>@\{yesterday}".
|
||||||
|
Note that in non-bare repositories, reflogs are usually
|
||||||
|
enabled by default by the `core.logallrefupdates` config option.
|
||||||
|
|
||||||
-f::
|
-f::
|
||||||
|
--force::
|
||||||
Reset <branchname> to <startpoint> if <branchname> exists
|
Reset <branchname> to <startpoint> if <branchname> exists
|
||||||
already. Without `-f` 'git-branch' refuses to change an existing branch.
|
already. Without `-f` 'git branch' refuses to change an existing branch.
|
||||||
|
|
||||||
-m::
|
-m::
|
||||||
Move/rename a branch and the corresponding reflog.
|
Move/rename a branch and the corresponding reflog.
|
||||||
|
@ -85,12 +88,14 @@ OPTIONS
|
||||||
-M::
|
-M::
|
||||||
Move/rename a branch even if the new branch name already exists.
|
Move/rename a branch even if the new branch name already exists.
|
||||||
|
|
||||||
--color::
|
--color[=<when>]::
|
||||||
Color branches to highlight current, local, and remote branches.
|
Color branches to highlight current, local, and remote branches.
|
||||||
|
The value must be always (the default), never, or auto.
|
||||||
|
|
||||||
--no-color::
|
--no-color::
|
||||||
Turn off branch colors, even when the configuration file gives the
|
Turn off branch colors, even when the configuration file gives the
|
||||||
default to color output.
|
default to color output.
|
||||||
|
Same as `--color=never`.
|
||||||
|
|
||||||
-r::
|
-r::
|
||||||
List or delete (if used with -d) the remote-tracking branches.
|
List or delete (if used with -d) the remote-tracking branches.
|
||||||
|
@ -130,14 +135,22 @@ start-point is either a local or remote branch.
|
||||||
Do not set up "upstream" configuration, even if the
|
Do not set up "upstream" configuration, even if the
|
||||||
branch.autosetupmerge configuration variable is true.
|
branch.autosetupmerge configuration variable is true.
|
||||||
|
|
||||||
|
--set-upstream::
|
||||||
|
If specified branch does not exist yet or if '--force' has been
|
||||||
|
given, acts exactly like '--track'. Otherwise sets up configuration
|
||||||
|
like '--track' would when creating the branch, except that where
|
||||||
|
branch points to is not changed.
|
||||||
|
|
||||||
--contains <commit>::
|
--contains <commit>::
|
||||||
Only list branches which contain the specified commit.
|
Only list branches which contain the specified commit.
|
||||||
|
|
||||||
--merged::
|
--merged [<commit>]::
|
||||||
Only list branches which are fully contained by HEAD.
|
Only list branches whose tips are reachable from the
|
||||||
|
specified commit (HEAD if not specified).
|
||||||
|
|
||||||
--no-merged::
|
--no-merged [<commit>]::
|
||||||
Do not list branches which are fully contained by HEAD.
|
Only list branches whose tips are not reachable from the
|
||||||
|
specified commit (HEAD if not specified).
|
||||||
|
|
||||||
<branchname>::
|
<branchname>::
|
||||||
The name of the branch to create or delete.
|
The name of the branch to create or delete.
|
||||||
|
@ -146,9 +159,9 @@ start-point is either a local or remote branch.
|
||||||
may restrict the characters allowed in a branch name.
|
may restrict the characters allowed in a branch name.
|
||||||
|
|
||||||
<start-point>::
|
<start-point>::
|
||||||
The new branch will be created with a HEAD equal to this. It may
|
The new branch head will point to this commit. It may be
|
||||||
be given as a branch name, a commit-id, or a tag. If this option
|
given as a branch name, a commit-id, or a tag. If this
|
||||||
is omitted, the current branch is assumed.
|
option is omitted, the current HEAD will be used instead.
|
||||||
|
|
||||||
<oldbranch>::
|
<oldbranch>::
|
||||||
The name of an existing branch to rename.
|
The name of an existing branch to rename.
|
||||||
|
@ -209,6 +222,14 @@ but different purposes:
|
||||||
- `--no-merged` is used to find branches which are candidates for merging
|
- `--no-merged` is used to find branches which are candidates for merging
|
||||||
into HEAD, since those branches are not fully contained by HEAD.
|
into HEAD, since those branches are not fully contained by HEAD.
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
--------
|
||||||
|
linkgit:git-check-ref-format[1],
|
||||||
|
linkgit:git-fetch[1],
|
||||||
|
linkgit:git-remote[1],
|
||||||
|
link:user-manual.html#what-is-a-branch[``Understanding history: What is
|
||||||
|
a branch?''] in the Git User's Manual.
|
||||||
|
|
||||||
Author
|
Author
|
||||||
------
|
------
|
||||||
Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <gitster@pobox.com>
|
Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <gitster@pobox.com>
|
||||||
|
|
|
@ -21,10 +21,10 @@ Some workflows require that one or more branches of development on one
|
||||||
machine be replicated on another machine, but the two machines cannot
|
machine be replicated on another machine, but the two machines cannot
|
||||||
be directly connected, and therefore the interactive git protocols (git,
|
be directly connected, and therefore the interactive git protocols (git,
|
||||||
ssh, rsync, http) cannot be used. This command provides support for
|
ssh, rsync, http) cannot be used. This command provides support for
|
||||||
'git-fetch' and 'git-pull' to operate by packaging objects and references
|
'git fetch' and 'git pull' to operate by packaging objects and references
|
||||||
in an archive at the originating machine, then importing those into
|
in an archive at the originating machine, then importing those into
|
||||||
another repository using 'git-fetch' and 'git-pull'
|
another repository using 'git fetch' and 'git pull'
|
||||||
after moving the archive by some means (i.e., by sneakernet). As no
|
after moving the archive by some means (e.g., by sneakernet). As no
|
||||||
direct connection between the repositories exists, the user must specify a
|
direct connection between the repositories exists, the user must specify a
|
||||||
basis for the bundle that is held by the destination repository: the
|
basis for the bundle that is held by the destination repository: the
|
||||||
bundle assumes that all objects in the basis are already in the
|
bundle assumes that all objects in the basis are already in the
|
||||||
|
@ -35,14 +35,14 @@ OPTIONS
|
||||||
|
|
||||||
create <file>::
|
create <file>::
|
||||||
Used to create a bundle named 'file'. This requires the
|
Used to create a bundle named 'file'. This requires the
|
||||||
'git-rev-list' arguments to define the bundle contents.
|
'git rev-list' arguments to define the bundle contents.
|
||||||
|
|
||||||
verify <file>::
|
verify <file>::
|
||||||
Used to check that a bundle file is valid and will apply
|
Used to check that a bundle file is valid and will apply
|
||||||
cleanly to the current repository. This includes checks on the
|
cleanly to the current repository. This includes checks on the
|
||||||
bundle format itself as well as checking that the prerequisite
|
bundle format itself as well as checking that the prerequisite
|
||||||
commits exist and are fully linked in the current repository.
|
commits exist and are fully linked in the current repository.
|
||||||
'git-bundle' prints a list of missing commits, if any, and exits
|
'git bundle' prints a list of missing commits, if any, and exits
|
||||||
with a non-zero status.
|
with a non-zero status.
|
||||||
|
|
||||||
list-heads <file>::
|
list-heads <file>::
|
||||||
|
@ -51,15 +51,15 @@ list-heads <file>::
|
||||||
printed out.
|
printed out.
|
||||||
|
|
||||||
unbundle <file>::
|
unbundle <file>::
|
||||||
Passes the objects in the bundle to 'git-index-pack'
|
Passes the objects in the bundle to 'git index-pack'
|
||||||
for storage in the repository, then prints the names of all
|
for storage in the repository, then prints the names of all
|
||||||
defined references. If a list of references is given, only
|
defined references. If a list of references is given, only
|
||||||
references matching those in the list are printed. This command is
|
references matching those in the list are printed. This command is
|
||||||
really plumbing, intended to be called only by 'git-fetch'.
|
really plumbing, intended to be called only by 'git fetch'.
|
||||||
|
|
||||||
[git-rev-list-args...]::
|
[git-rev-list-args...]::
|
||||||
A list of arguments, acceptable to 'git-rev-parse' and
|
A list of arguments, acceptable to 'git rev-parse' and
|
||||||
'git-rev-list', that specifies the specific objects and references
|
'git rev-list', that specifies the specific objects and references
|
||||||
to transport. For example, `master\~10..master` causes the
|
to transport. For example, `master\~10..master` causes the
|
||||||
current master reference to be packaged along with all objects
|
current master reference to be packaged along with all objects
|
||||||
added since its 10th ancestor commit. There is no explicit
|
added since its 10th ancestor commit. There is no explicit
|
||||||
|
@ -69,16 +69,16 @@ unbundle <file>::
|
||||||
|
|
||||||
[refname...]::
|
[refname...]::
|
||||||
A list of references used to limit the references reported as
|
A list of references used to limit the references reported as
|
||||||
available. This is principally of use to 'git-fetch', which
|
available. This is principally of use to 'git fetch', which
|
||||||
expects to receive only those references asked for and not
|
expects to receive only those references asked for and not
|
||||||
necessarily everything in the pack (in this case, 'git-bundle' acts
|
necessarily everything in the pack (in this case, 'git bundle' acts
|
||||||
like 'git-fetch-pack').
|
like 'git fetch-pack').
|
||||||
|
|
||||||
SPECIFYING REFERENCES
|
SPECIFYING REFERENCES
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
'git-bundle' will only package references that are shown by
|
'git bundle' will only package references that are shown by
|
||||||
'git-show-ref': this includes heads, tags, and remote heads. References
|
'git show-ref': this includes heads, tags, and remote heads. References
|
||||||
such as `master\~1` cannot be packaged, but are perfectly suitable for
|
such as `master\~1` cannot be packaged, but are perfectly suitable for
|
||||||
defining the basis. More than one reference may be packaged, and more
|
defining the basis. More than one reference may be packaged, and more
|
||||||
than one basis can be specified. The objects packaged are those not
|
than one basis can be specified. The objects packaged are those not
|
||||||
|
|
|
@ -9,14 +9,15 @@ git-cat-file - Provide content or type and size information for repository objec
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git cat-file' (-t | -s | -e | -p | <type>) <object>
|
'git cat-file' (-t | -s | -e | -p | <type> | --textconv ) <object>
|
||||||
'git cat-file' (--batch | --batch-check) < <list-of-objects>
|
'git cat-file' (--batch | --batch-check) < <list-of-objects>
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
In its first form, the command provides the content or the type of an object in
|
In its first form, the command provides the content or the type of an object in
|
||||||
the repository. The type is required unless '-t' or '-p' is used to find the
|
the repository. The type is required unless '-t' or '-p' is used to find the
|
||||||
object type, or '-s' is used to find the object size.
|
object type, or '-s' is used to find the object size, or '--textconv' is used
|
||||||
|
(which implies type "blob").
|
||||||
|
|
||||||
In the second form, a list of objects (separated by linefeeds) is provided on
|
In the second form, a list of objects (separated by linefeeds) is provided on
|
||||||
stdin, and the SHA1, type, and size of each object is printed on stdout.
|
stdin, and the SHA1, type, and size of each object is printed on stdout.
|
||||||
|
@ -51,6 +52,11 @@ OPTIONS
|
||||||
or to ask for a "blob" with <object> being a tag object that
|
or to ask for a "blob" with <object> being a tag object that
|
||||||
points at it.
|
points at it.
|
||||||
|
|
||||||
|
--textconv::
|
||||||
|
Show the content as transformed by a textconv filter. In this case,
|
||||||
|
<object> has be of the form <treeish>:<path>, or :<path> in order
|
||||||
|
to apply the filter to the content recorded in the index at <path>.
|
||||||
|
|
||||||
--batch::
|
--batch::
|
||||||
Print the SHA1, type, size, and contents of each object provided on
|
Print the SHA1, type, size, and contents of each object provided on
|
||||||
stdin. May not be combined with any other options or arguments.
|
stdin. May not be combined with any other options or arguments.
|
||||||
|
|
|
@ -9,6 +9,7 @@ SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git check-ref-format' <refname>
|
'git check-ref-format' <refname>
|
||||||
|
'git check-ref-format' --print <refname>
|
||||||
'git check-ref-format' --branch <branchname-shorthand>
|
'git check-ref-format' --branch <branchname-shorthand>
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
|
@ -18,8 +19,9 @@ status if it is not.
|
||||||
|
|
||||||
A reference is used in git to specify branches and tags. A
|
A reference is used in git to specify branches and tags. A
|
||||||
branch head is stored under the `$GIT_DIR/refs/heads` directory, and
|
branch head is stored under the `$GIT_DIR/refs/heads` directory, and
|
||||||
a tag is stored under the `$GIT_DIR/refs/tags` directory. git
|
a tag is stored under the `$GIT_DIR/refs/tags` directory (or, if refs
|
||||||
imposes the following rules on how references are named:
|
are packed by `git gc`, as entries in the `$GIT_DIR/packed-refs` file).
|
||||||
|
git imposes the following rules on how references are named:
|
||||||
|
|
||||||
. They can include slash `/` for hierarchical (directory)
|
. They can include slash `/` for hierarchical (directory)
|
||||||
grouping, but no slash-separated component can begin with a
|
grouping, but no slash-separated component can begin with a
|
||||||
|
@ -42,7 +44,7 @@ imposes the following rules on how references are named:
|
||||||
|
|
||||||
. They cannot contain a sequence `@{`.
|
. They cannot contain a sequence `@{`.
|
||||||
|
|
||||||
- They cannot contain a `\\`.
|
. They cannot contain a `\`.
|
||||||
|
|
||||||
These rules make it easy for shell script based tools to parse
|
These rules make it easy for shell script based tools to parse
|
||||||
reference names, pathname expansion by the shell when a reference name is used
|
reference names, pathname expansion by the shell when a reference name is used
|
||||||
|
@ -59,23 +61,35 @@ reference name expressions (see linkgit:git-rev-parse[1]):
|
||||||
. A colon `:` is used as in `srcref:dstref` to mean "use srcref\'s
|
. A colon `:` is used as in `srcref:dstref` to mean "use srcref\'s
|
||||||
value and store it in dstref" in fetch and push operations.
|
value and store it in dstref" in fetch and push operations.
|
||||||
It may also be used to select a specific object such as with
|
It may also be used to select a specific object such as with
|
||||||
'git-cat-file': "git cat-file blob v1.3.3:refs.c".
|
'git cat-file': "git cat-file blob v1.3.3:refs.c".
|
||||||
|
|
||||||
. at-open-brace `@{` is used as a notation to access a reflog entry.
|
. at-open-brace `@{` is used as a notation to access a reflog entry.
|
||||||
|
|
||||||
|
With the `--print` option, if 'refname' is acceptable, it prints the
|
||||||
|
canonicalized name of a hypothetical reference with that name. That is,
|
||||||
|
it prints 'refname' with any extra `/` characters removed.
|
||||||
|
|
||||||
With the `--branch` option, it expands the ``previous branch syntax''
|
With the `--branch` option, it expands the ``previous branch syntax''
|
||||||
`@{-n}`. For example, `@{-1}` is a way to refer the last branch you
|
`@{-n}`. For example, `@{-1}` is a way to refer the last branch you
|
||||||
were on. This option should be used by porcelains to accept this
|
were on. This option should be used by porcelains to accept this
|
||||||
syntax anywhere a branch name is expected, so they can act as if you
|
syntax anywhere a branch name is expected, so they can act as if you
|
||||||
typed the branch name.
|
typed the branch name.
|
||||||
|
|
||||||
EXAMPLE
|
EXAMPLES
|
||||||
-------
|
--------
|
||||||
|
|
||||||
git check-ref-format --branch @{-1}::
|
* Print the name of the previous branch:
|
||||||
|
+
|
||||||
Print the name of the previous branch.
|
------------
|
||||||
|
$ git check-ref-format --branch @{-1}
|
||||||
|
------------
|
||||||
|
|
||||||
|
* Determine the reference name to use for a new branch:
|
||||||
|
+
|
||||||
|
------------
|
||||||
|
$ ref=$(git check-ref-format --print "refs/heads/$newbranch") ||
|
||||||
|
die "we do not like '$newbranch' as a branch name."
|
||||||
|
------------
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
---
|
---
|
||||||
|
|
|
@ -88,7 +88,7 @@ $ find . -name '*.h' -print0 | xargs -0 git checkout-index -f --
|
||||||
which will force all existing `*.h` files to be replaced with their
|
which will force all existing `*.h` files to be replaced with their
|
||||||
cached copies. If an empty command line implied "all", then this would
|
cached copies. If an empty command line implied "all", then this would
|
||||||
force-refresh everything in the index, which was not the point. But
|
force-refresh everything in the index, which was not the point. But
|
||||||
since 'git-checkout-index' accepts --stdin it would be faster to use:
|
since 'git checkout-index' accepts --stdin it would be faster to use:
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
$ find . -name '*.h' -print0 | git checkout-index -f -z --stdin
|
$ find . -name '*.h' -print0 | git checkout-index -f -z --stdin
|
||||||
|
@ -102,7 +102,7 @@ Using `--` is probably a good policy in scripts.
|
||||||
Using --temp or --stage=all
|
Using --temp or --stage=all
|
||||||
---------------------------
|
---------------------------
|
||||||
When `--temp` is used (or implied by `--stage=all`)
|
When `--temp` is used (or implied by `--stage=all`)
|
||||||
'git-checkout-index' will create a temporary file for each index
|
'git checkout-index' will create a temporary file for each index
|
||||||
entry being checked out. The index will not be updated with stat
|
entry being checked out. The index will not be updated with stat
|
||||||
information. These options can be useful if the caller needs all
|
information. These options can be useful if the caller needs all
|
||||||
stages of all unmerged entries so that the unmerged files can be
|
stages of all unmerged entries so that the unmerged files can be
|
||||||
|
@ -147,9 +147,9 @@ To update and refresh only the files already checked out::
|
||||||
$ git checkout-index -n -f -a && git update-index --ignore-missing --refresh
|
$ git checkout-index -n -f -a && git update-index --ignore-missing --refresh
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
Using 'git-checkout-index' to "export an entire tree"::
|
Using 'git checkout-index' to "export an entire tree"::
|
||||||
The prefix ability basically makes it trivial to use
|
The prefix ability basically makes it trivial to use
|
||||||
'git-checkout-index' as an "export as tree" function.
|
'git checkout-index' as an "export as tree" function.
|
||||||
Just read the desired tree into the index, and do:
|
Just read the desired tree into the index, and do:
|
||||||
+
|
+
|
||||||
----------------
|
----------------
|
||||||
|
|
|
@ -9,45 +9,56 @@ SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git checkout' [-q] [-f] [-m] [<branch>]
|
'git checkout' [-q] [-f] [-m] [<branch>]
|
||||||
'git checkout' [-q] [-f] [-m] [-b <new_branch>] [<start_point>]
|
'git checkout' [-q] [-f] [-m] [[-b|--orphan] <new_branch>] [<start_point>]
|
||||||
'git checkout' [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>...
|
'git checkout' [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>...
|
||||||
|
'git checkout' --patch [<tree-ish>] [--] [<paths>...]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
Updates files in the working tree to match the version in the index
|
||||||
When <paths> are not given, this command switches branches by
|
or the specified tree. If no paths are given, 'git checkout' will
|
||||||
updating the index, working tree, and HEAD to reflect the specified
|
also update `HEAD` to set the specified branch as the current
|
||||||
branch.
|
branch.
|
||||||
|
|
||||||
If `-b` is given, a new branch is created and checked out, as if
|
'git checkout' [<branch>]::
|
||||||
linkgit:git-branch[1] were called; in this case you can
|
'git checkout' -b <new branch> [<start point>]::
|
||||||
use the --track or --no-track options, which will be passed to `git
|
|
||||||
branch`. As a convenience, --track without `-b` implies branch
|
|
||||||
creation; see the description of --track below.
|
|
||||||
|
|
||||||
When <paths> are given, this command does *not* switch
|
This form switches branches by updating the index, working
|
||||||
branches. It updates the named paths in the working tree from
|
tree, and HEAD to reflect the specified branch.
|
||||||
the index file, or from a named <tree-ish> (most often a commit). In
|
+
|
||||||
this case, the `-b` and `--track` options are meaningless and giving
|
If `-b` is given, a new branch is created as if linkgit:git-branch[1]
|
||||||
either of them results in an error. The <tree-ish> argument can be
|
were called and then checked out; in this case you can
|
||||||
used to specify a specific tree-ish (i.e. commit, tag or tree)
|
use the `--track` or `--no-track` options, which will be passed to
|
||||||
to update the index for the given paths before updating the
|
'git branch'. As a convenience, `--track` without `-b` implies branch
|
||||||
working tree.
|
creation; see the description of `--track` below.
|
||||||
|
|
||||||
The index may contain unmerged entries after a failed merge. By
|
'git checkout' [--patch] [<tree-ish>] [--] <pathspec>...::
|
||||||
default, if you try to check out such an entry from the index, the
|
|
||||||
|
When <paths> or `--patch` are given, 'git checkout' *not* switch
|
||||||
|
branches. It updates the named paths in the working tree from
|
||||||
|
the index file or from a named <tree-ish> (most often a commit). In
|
||||||
|
this case, the `-b` and `--track` options are meaningless and giving
|
||||||
|
either of them results in an error. The <tree-ish> argument can be
|
||||||
|
used to specify a specific tree-ish (i.e. commit, tag or tree)
|
||||||
|
to update the index for the given paths before updating the
|
||||||
|
working tree.
|
||||||
|
+
|
||||||
|
The index may contain unmerged entries because of a previous failed merge.
|
||||||
|
By default, if you try to check out such an entry from the index, the
|
||||||
checkout operation will fail and nothing will be checked out.
|
checkout operation will fail and nothing will be checked out.
|
||||||
Using -f will ignore these unmerged entries. The contents from a
|
Using `-f` will ignore these unmerged entries. The contents from a
|
||||||
specific side of the merge can be checked out of the index by
|
specific side of the merge can be checked out of the index by
|
||||||
using --ours or --theirs. With -m, changes made to the working tree
|
using `--ours` or `--theirs`. With `-m`, changes made to the working tree
|
||||||
file can be discarded to recreate the original conflicted merge result.
|
file can be discarded to re-create the original conflicted merge result.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
-q::
|
-q::
|
||||||
|
--quiet::
|
||||||
Quiet, suppress feedback messages.
|
Quiet, suppress feedback messages.
|
||||||
|
|
||||||
-f::
|
-f::
|
||||||
|
--force::
|
||||||
When switching branches, proceed even if the index or the
|
When switching branches, proceed even if the index or the
|
||||||
working tree differs from HEAD. This is used to throw away
|
working tree differs from HEAD. This is used to throw away
|
||||||
local changes.
|
local changes.
|
||||||
|
@ -87,6 +98,31 @@ explicitly give a name with '-b' in such a case.
|
||||||
Create the new branch's reflog; see linkgit:git-branch[1] for
|
Create the new branch's reflog; see linkgit:git-branch[1] for
|
||||||
details.
|
details.
|
||||||
|
|
||||||
|
--orphan::
|
||||||
|
Create a new 'orphan' branch, named <new_branch>, started from
|
||||||
|
<start_point> and switch to it. The first commit made on this
|
||||||
|
new branch will have no parents and it will be the root of a new
|
||||||
|
history totally disconnected from all the other branches and
|
||||||
|
commits.
|
||||||
|
+
|
||||||
|
The index and the working tree are adjusted as if you had previously run
|
||||||
|
"git checkout <start_point>". This allows you to start a new history
|
||||||
|
that records a set of paths similar to <start_point> by easily running
|
||||||
|
"git commit -a" to make the root commit.
|
||||||
|
+
|
||||||
|
This can be useful when you want to publish the tree from a commit
|
||||||
|
without exposing its full history. You might want to do this to publish
|
||||||
|
an open source branch of a project whose current tree is "clean", but
|
||||||
|
whose full history contains proprietary or otherwise encumbered bits of
|
||||||
|
code.
|
||||||
|
+
|
||||||
|
If you want to start a disconnected history that records a set of paths
|
||||||
|
that is totally different from the one of <start_point>, then you should
|
||||||
|
clear the index and the working tree right after creating the orphan
|
||||||
|
branch by running "git rm -rf ." from the top level of the working tree.
|
||||||
|
Afterwards you will be ready to prepare your new files, repopulating the
|
||||||
|
working tree, by copying them from elsewhere, extracting a tarball, etc.
|
||||||
|
|
||||||
-m::
|
-m::
|
||||||
--merge::
|
--merge::
|
||||||
When switching branches,
|
When switching branches,
|
||||||
|
@ -113,6 +149,16 @@ the conflicted merge in the specified paths.
|
||||||
"merge" (default) and "diff3" (in addition to what is shown by
|
"merge" (default) and "diff3" (in addition to what is shown by
|
||||||
"merge" style, shows the original contents).
|
"merge" style, shows the original contents).
|
||||||
|
|
||||||
|
-p::
|
||||||
|
--patch::
|
||||||
|
Interactively select hunks in the difference between the
|
||||||
|
<tree-ish> (or the index, if unspecified) and the working
|
||||||
|
tree. The chosen hunks are then applied in reverse to the
|
||||||
|
working tree (and if a <tree-ish> was specified, the index).
|
||||||
|
+
|
||||||
|
This means that you can use `git checkout -p` to selectively discard
|
||||||
|
edits from your current working tree.
|
||||||
|
|
||||||
<branch>::
|
<branch>::
|
||||||
Branch to checkout; if it refers to a branch (i.e., a name that,
|
Branch to checkout; if it refers to a branch (i.e., a name that,
|
||||||
when prepended with "refs/heads/", is a valid ref), then that
|
when prepended with "refs/heads/", is a valid ref), then that
|
||||||
|
@ -123,6 +169,10 @@ the conflicted merge in the specified paths.
|
||||||
As a special case, the `"@\{-N\}"` syntax for the N-th last branch
|
As a special case, the `"@\{-N\}"` syntax for the N-th last branch
|
||||||
checks out the branch (instead of detaching). You may also specify
|
checks out the branch (instead of detaching). You may also specify
|
||||||
`-` which is synonymous with `"@\{-1\}"`.
|
`-` which is synonymous with `"@\{-1\}"`.
|
||||||
|
+
|
||||||
|
As a further special case, you may use `"A...B"` as a shortcut for the
|
||||||
|
merge base of `A` and `B` if there is exactly one merge base. You can
|
||||||
|
leave out at most one of `A` and `B`, in which case it defaults to `HEAD`.
|
||||||
|
|
||||||
<new_branch>::
|
<new_branch>::
|
||||||
Name for the new branch.
|
Name for the new branch.
|
||||||
|
|
|
@ -3,28 +3,32 @@ git-cherry-pick(1)
|
||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-cherry-pick - Apply the change introduced by an existing commit
|
git-cherry-pick - Apply the changes introduced by some existing commits
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git cherry-pick' [--edit] [-n] [-m parent-number] [-s] [-x] <commit>
|
'git cherry-pick' [--edit] [-n] [-m parent-number] [-s] [-x] [--ff] <commit>...
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Given one existing commit, apply the change the patch introduces, and record a
|
|
||||||
new commit that records it. This requires your working tree to be clean (no
|
Given one or more existing commits, apply the change each one
|
||||||
modifications from the HEAD commit).
|
introduces, recording a new commit for each. This requires your
|
||||||
|
working tree to be clean (no modifications from the HEAD commit).
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
<commit>::
|
<commit>...::
|
||||||
Commit to cherry-pick.
|
Commits to cherry-pick.
|
||||||
For a more complete list of ways to spell commits, see the
|
For a more complete list of ways to spell commits, see the
|
||||||
"SPECIFYING REVISIONS" section in linkgit:git-rev-parse[1].
|
"SPECIFYING REVISIONS" section in linkgit:git-rev-parse[1].
|
||||||
|
Sets of commits can be passed but no traversal is done by
|
||||||
|
default, as if the '--no-walk' option was specified, see
|
||||||
|
linkgit:git-rev-list[1].
|
||||||
|
|
||||||
-e::
|
-e::
|
||||||
--edit::
|
--edit::
|
||||||
With this option, 'git-cherry-pick' will let you edit the commit
|
With this option, 'git cherry-pick' will let you edit the commit
|
||||||
message prior to committing.
|
message prior to committing.
|
||||||
|
|
||||||
-x::
|
-x::
|
||||||
|
@ -55,10 +59,10 @@ OPTIONS
|
||||||
|
|
||||||
-n::
|
-n::
|
||||||
--no-commit::
|
--no-commit::
|
||||||
Usually the command automatically creates a commit.
|
Usually the command automatically creates a sequence of commits.
|
||||||
This flag applies the change necessary to cherry-pick
|
This flag applies the changes necessary to cherry-pick
|
||||||
the named commit to your working tree and the index,
|
each named commit to your working tree and the index,
|
||||||
but does not make the commit. In addition, when this
|
without making any commit. In addition, when this
|
||||||
option is used, your index does not have to match the
|
option is used, your index does not have to match the
|
||||||
HEAD commit. The cherry-pick is done against the
|
HEAD commit. The cherry-pick is done against the
|
||||||
beginning state of your index.
|
beginning state of your index.
|
||||||
|
@ -70,6 +74,51 @@ effect to your index in a row.
|
||||||
--signoff::
|
--signoff::
|
||||||
Add Signed-off-by line at the end of the commit message.
|
Add Signed-off-by line at the end of the commit message.
|
||||||
|
|
||||||
|
--ff::
|
||||||
|
If the current HEAD is the same as the parent of the
|
||||||
|
cherry-pick'ed commit, then a fast forward to this commit will
|
||||||
|
be performed.
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
git cherry-pick master::
|
||||||
|
|
||||||
|
Apply the change introduced by the commit at the tip of the
|
||||||
|
master branch and create a new commit with this change.
|
||||||
|
|
||||||
|
git cherry-pick ..master::
|
||||||
|
git cherry-pick ^HEAD master::
|
||||||
|
|
||||||
|
Apply the changes introduced by all commits that are ancestors
|
||||||
|
of master but not of HEAD to produce new commits.
|
||||||
|
|
||||||
|
git cherry-pick master\~4 master~2::
|
||||||
|
|
||||||
|
Apply the changes introduced by the fifth and third last
|
||||||
|
commits pointed to by master and create 2 new commits with
|
||||||
|
these changes.
|
||||||
|
|
||||||
|
git cherry-pick -n master~1 next::
|
||||||
|
|
||||||
|
Apply to the working tree and the index the changes introduced
|
||||||
|
by the second last commit pointed to by master and by the last
|
||||||
|
commit pointed to by next, but do not create any commit with
|
||||||
|
these changes.
|
||||||
|
|
||||||
|
git cherry-pick --ff ..next::
|
||||||
|
|
||||||
|
If history is linear and HEAD is an ancestor of next, update
|
||||||
|
the working tree and advance the HEAD pointer to match next.
|
||||||
|
Otherwise, apply the changes introduced by those commits that
|
||||||
|
are in next but not HEAD to the current branch, creating a new
|
||||||
|
commit for each new change.
|
||||||
|
|
||||||
|
git rev-list --reverse master \-- README | git cherry-pick -n --stdin::
|
||||||
|
|
||||||
|
Apply the changes introduced by all commits on the master
|
||||||
|
branch that touched README to the working tree and index,
|
||||||
|
so the result can be inspected and made into a single new
|
||||||
|
commit if suitable.
|
||||||
|
|
||||||
Author
|
Author
|
||||||
------
|
------
|
||||||
|
@ -79,6 +128,10 @@ Documentation
|
||||||
--------------
|
--------------
|
||||||
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
|
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
--------
|
||||||
|
linkgit:git-revert[1]
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
---
|
---
|
||||||
Part of the linkgit:git[1] suite
|
Part of the linkgit:git[1] suite
|
||||||
|
|
|
@ -14,7 +14,7 @@ DESCRIPTION
|
||||||
The changeset (or "diff") of each commit between the fork-point and <head>
|
The changeset (or "diff") of each commit between the fork-point and <head>
|
||||||
is compared against each commit between the fork-point and <upstream>.
|
is compared against each commit between the fork-point and <upstream>.
|
||||||
The commits are compared with their 'patch id', obtained from
|
The commits are compared with their 'patch id', obtained from
|
||||||
the 'git-patch-id' program.
|
the 'git patch-id' program.
|
||||||
|
|
||||||
Every commit that doesn't exist in the <upstream> branch
|
Every commit that doesn't exist in the <upstream> branch
|
||||||
has its id (sha1) reported, prefixed by a symbol. The ones that have
|
has its id (sha1) reported, prefixed by a symbol. The ones that have
|
||||||
|
@ -37,8 +37,8 @@ to and including <limit> are not reported:
|
||||||
\__*__*__<limit>__-__+__> <head>
|
\__*__*__<limit>__-__+__> <head>
|
||||||
|
|
||||||
|
|
||||||
Because 'git-cherry' compares the changeset rather than the commit id
|
Because 'git cherry' compares the changeset rather than the commit id
|
||||||
(sha1), you can use 'git-cherry' to find out if a commit you made locally
|
(sha1), you can use 'git cherry' to find out if a commit you made locally
|
||||||
has been applied <upstream> under a different commit id. For example,
|
has been applied <upstream> under a different commit id. For example,
|
||||||
this will happen if you're feeding patches <upstream> via email rather
|
this will happen if you're feeding patches <upstream> via email rather
|
||||||
than pushing or pulling commits directly.
|
than pushing or pulling commits directly.
|
||||||
|
|
|
@ -14,9 +14,9 @@ DESCRIPTION
|
||||||
A Tcl/Tk based graphical interface to review modified files, stage
|
A Tcl/Tk based graphical interface to review modified files, stage
|
||||||
them into the index, enter a commit message and record the new
|
them into the index, enter a commit message and record the new
|
||||||
commit onto the current branch. This interface is an alternative
|
commit onto the current branch. This interface is an alternative
|
||||||
to the less interactive 'git-commit' program.
|
to the less interactive 'git commit' program.
|
||||||
|
|
||||||
'git-citool' is actually a standard alias for `git gui citool`.
|
'git citool' is actually a standard alias for `git gui citool`.
|
||||||
See linkgit:git-gui[1] for more details.
|
See linkgit:git-gui[1] for more details.
|
||||||
|
|
||||||
Author
|
Author
|
||||||
|
|
|
@ -32,8 +32,9 @@ OPTIONS
|
||||||
if you really want to remove such a directory.
|
if you really want to remove such a directory.
|
||||||
|
|
||||||
-f::
|
-f::
|
||||||
If the git configuration specifies clean.requireForce as true,
|
--force::
|
||||||
'git-clean' will refuse to run unless given -f or -n.
|
If the git configuration variable clean.requireForce is not set
|
||||||
|
to false, 'git clean' will refuse to run unless given -f or -n.
|
||||||
|
|
||||||
-n::
|
-n::
|
||||||
--dry-run::
|
--dry-run::
|
||||||
|
@ -47,7 +48,7 @@ OPTIONS
|
||||||
-x::
|
-x::
|
||||||
Don't use the ignore rules. This allows removing all untracked
|
Don't use the ignore rules. This allows removing all untracked
|
||||||
files, including build products. This can be used (possibly in
|
files, including build products. This can be used (possibly in
|
||||||
conjunction with 'git-reset') to create a pristine
|
conjunction with 'git reset') to create a pristine
|
||||||
working directory to test a clean build.
|
working directory to test a clean build.
|
||||||
|
|
||||||
-X::
|
-X::
|
||||||
|
|
|
@ -11,16 +11,17 @@ SYNOPSIS
|
||||||
[verse]
|
[verse]
|
||||||
'git clone' [--template=<template_directory>]
|
'git clone' [--template=<template_directory>]
|
||||||
[-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]
|
[-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]
|
||||||
[-o <name>] [-u <upload-pack>] [--reference <repository>]
|
[-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>]
|
||||||
[--depth <depth>] [--] <repository> [<directory>]
|
[--depth <depth>] [--recursive] [--] <repository> [<directory>]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Clones a repository into a newly created directory, creates
|
Clones a repository into a newly created directory, creates
|
||||||
remote-tracking branches for each branch in the cloned repository
|
remote-tracking branches for each branch in the cloned repository
|
||||||
(visible using `git branch -r`), and creates and checks out an initial
|
(visible using `git branch -r`), and creates and checks out an
|
||||||
branch equal to the cloned repository's currently active branch.
|
initial branch that is forked from the cloned repository's
|
||||||
|
currently active branch.
|
||||||
|
|
||||||
After the clone, a plain `git fetch` without arguments will update
|
After the clone, a plain `git fetch` without arguments will update
|
||||||
all the remote-tracking branches, and a `git pull` without
|
all the remote-tracking branches, and a `git pull` without
|
||||||
|
@ -28,7 +29,7 @@ arguments will in addition merge the remote master branch into the
|
||||||
current master branch, if any.
|
current master branch, if any.
|
||||||
|
|
||||||
This default configuration is achieved by creating references to
|
This default configuration is achieved by creating references to
|
||||||
the remote branch heads under `$GIT_DIR/refs/remotes/origin` and
|
the remote branch heads under `refs/remotes/origin` and
|
||||||
by initializing `remote.origin.url` and `remote.origin.fetch`
|
by initializing `remote.origin.url` and `remote.origin.fetch`
|
||||||
configuration variables.
|
configuration variables.
|
||||||
|
|
||||||
|
@ -38,7 +39,7 @@ OPTIONS
|
||||||
--local::
|
--local::
|
||||||
-l::
|
-l::
|
||||||
When the repository to clone from is on a local machine,
|
When the repository to clone from is on a local machine,
|
||||||
this flag bypasses normal "git aware" transport
|
this flag bypasses the normal "git aware" transport
|
||||||
mechanism and clones the repository by making a copy of
|
mechanism and clones the repository by making a copy of
|
||||||
HEAD and everything under objects and refs directories.
|
HEAD and everything under objects and refs directories.
|
||||||
The files under `.git/objects/` directory are hardlinked
|
The files under `.git/objects/` directory are hardlinked
|
||||||
|
@ -59,7 +60,7 @@ OPTIONS
|
||||||
-s::
|
-s::
|
||||||
When the repository to clone is on the local machine,
|
When the repository to clone is on the local machine,
|
||||||
instead of using hard links, automatically setup
|
instead of using hard links, automatically setup
|
||||||
.git/objects/info/alternates to share the objects
|
`.git/objects/info/alternates` to share the objects
|
||||||
with the source repository. The resulting repository
|
with the source repository. The resulting repository
|
||||||
starts out without any object of its own.
|
starts out without any object of its own.
|
||||||
+
|
+
|
||||||
|
@ -68,7 +69,7 @@ it unless you understand what it does. If you clone your
|
||||||
repository using this option and then delete branches (or use any
|
repository using this option and then delete branches (or use any
|
||||||
other git command that makes any existing commit unreferenced) in the
|
other git command that makes any existing commit unreferenced) in the
|
||||||
source repository, some objects may become unreferenced (or dangling).
|
source repository, some objects may become unreferenced (or dangling).
|
||||||
These objects may be removed by normal git operations (such as 'git-commit')
|
These objects may be removed by normal git operations (such as `git commit`)
|
||||||
which automatically call `git gc --auto`. (See linkgit:git-gc[1].)
|
which automatically call `git gc --auto`. (See linkgit:git-gc[1].)
|
||||||
If these objects are removed and were referenced by the cloned repository,
|
If these objects are removed and were referenced by the cloned repository,
|
||||||
then the cloned repository will become corrupt.
|
then the cloned repository will become corrupt.
|
||||||
|
@ -85,23 +86,30 @@ objects from the source repository into a pack in the cloned repository.
|
||||||
|
|
||||||
--reference <repository>::
|
--reference <repository>::
|
||||||
If the reference repository is on the local machine,
|
If the reference repository is on the local machine,
|
||||||
automatically setup .git/objects/info/alternates to
|
automatically setup `.git/objects/info/alternates` to
|
||||||
obtain objects from the reference repository. Using
|
obtain objects from the reference repository. Using
|
||||||
an already existing repository as an alternate will
|
an already existing repository as an alternate will
|
||||||
require fewer objects to be copied from the repository
|
require fewer objects to be copied from the repository
|
||||||
being cloned, reducing network and local storage costs.
|
being cloned, reducing network and local storage costs.
|
||||||
+
|
+
|
||||||
*NOTE*: see NOTE to --shared option.
|
*NOTE*: see the NOTE for the `--shared` option.
|
||||||
|
|
||||||
--quiet::
|
--quiet::
|
||||||
-q::
|
-q::
|
||||||
Operate quietly. This flag is also passed to the `rsync'
|
Operate quietly. Progress is not reported to the standard
|
||||||
|
error stream. This flag is also passed to the `rsync'
|
||||||
command when given.
|
command when given.
|
||||||
|
|
||||||
--verbose::
|
--verbose::
|
||||||
-v::
|
-v::
|
||||||
Display the progressbar, even in case the standard output is not
|
Run verbosely. Does not affect the reporting of progress status
|
||||||
a terminal.
|
to the standard error stream.
|
||||||
|
|
||||||
|
--progress::
|
||||||
|
Progress status is reported on the standard error stream
|
||||||
|
by default when it is attached to a terminal, unless -q
|
||||||
|
is specified. This flag forces progress status even if the
|
||||||
|
standard error stream is not directed to a terminal.
|
||||||
|
|
||||||
--no-checkout::
|
--no-checkout::
|
||||||
-n::
|
-n::
|
||||||
|
@ -120,12 +128,19 @@ objects from the source repository into a pack in the cloned repository.
|
||||||
configuration variables are created.
|
configuration variables are created.
|
||||||
|
|
||||||
--mirror::
|
--mirror::
|
||||||
Set up a mirror of the remote repository. This implies --bare.
|
Set up a mirror of the remote repository. This implies `--bare`.
|
||||||
|
|
||||||
--origin <name>::
|
--origin <name>::
|
||||||
-o <name>::
|
-o <name>::
|
||||||
Instead of using the remote name 'origin' to keep track
|
Instead of using the remote name `origin` to keep track
|
||||||
of the upstream repository, use <name>.
|
of the upstream repository, use `<name>`.
|
||||||
|
|
||||||
|
--branch <name>::
|
||||||
|
-b <name>::
|
||||||
|
Instead of pointing the newly created HEAD to the branch pointed
|
||||||
|
to by the cloned repository's HEAD, point to `<name>` branch
|
||||||
|
instead. In a non-bare repository, this is the branch that will
|
||||||
|
be checked out.
|
||||||
|
|
||||||
--upload-pack <upload-pack>::
|
--upload-pack <upload-pack>::
|
||||||
-u <upload-pack>::
|
-u <upload-pack>::
|
||||||
|
@ -135,8 +150,7 @@ objects from the source repository into a pack in the cloned repository.
|
||||||
|
|
||||||
--template=<template_directory>::
|
--template=<template_directory>::
|
||||||
Specify the directory from which templates will be used;
|
Specify the directory from which templates will be used;
|
||||||
if unset the templates are taken from the installation
|
(See the "TEMPLATE DIRECTORY" section of linkgit:git-init[1].)
|
||||||
defined default, typically `/usr/share/git-core/templates`.
|
|
||||||
|
|
||||||
--depth <depth>::
|
--depth <depth>::
|
||||||
Create a 'shallow' clone with a history truncated to the
|
Create a 'shallow' clone with a history truncated to the
|
||||||
|
@ -147,6 +161,14 @@ objects from the source repository into a pack in the cloned repository.
|
||||||
with a long history, and would want to send in fixes
|
with a long history, and would want to send in fixes
|
||||||
as patches.
|
as patches.
|
||||||
|
|
||||||
|
--recursive::
|
||||||
|
After the clone is created, initialize all submodules within,
|
||||||
|
using their default settings. This is equivalent to running
|
||||||
|
`git submodule update --init --recursive` immediately after
|
||||||
|
the clone is finished. This option is ignored if the cloned
|
||||||
|
repository does not have a worktree/checkout (i.e. if any of
|
||||||
|
`--no-checkout`/`-n`, `--bare`, or `--mirror` is given)
|
||||||
|
|
||||||
<repository>::
|
<repository>::
|
||||||
The (possibly remote) repository to clone from. See the
|
The (possibly remote) repository to clone from. See the
|
||||||
<<URLS,URLS>> section below for more information on specifying
|
<<URLS,URLS>> section below for more information on specifying
|
||||||
|
@ -155,8 +177,8 @@ objects from the source repository into a pack in the cloned repository.
|
||||||
<directory>::
|
<directory>::
|
||||||
The name of a new directory to clone into. The "humanish"
|
The name of a new directory to clone into. The "humanish"
|
||||||
part of the source repository is used if no directory is
|
part of the source repository is used if no directory is
|
||||||
explicitly given ("repo" for "/path/to/repo.git" and "foo"
|
explicitly given (`repo` for `/path/to/repo.git` and `foo`
|
||||||
for "host.xz:foo/.git"). Cloning into an existing directory
|
for `host.xz:foo/.git`). Cloning into an existing directory
|
||||||
is only allowed if the directory is empty.
|
is only allowed if the directory is empty.
|
||||||
|
|
||||||
:git-clone: 1
|
:git-clone: 1
|
||||||
|
@ -165,7 +187,7 @@ include::urls.txt[]
|
||||||
Examples
|
Examples
|
||||||
--------
|
--------
|
||||||
|
|
||||||
Clone from upstream::
|
* Clone from upstream:
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
|
$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
|
||||||
|
@ -174,7 +196,7 @@ $ make
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
||||||
Make a local clone that borrows from the current directory, without checking things out::
|
* Make a local clone that borrows from the current directory, without checking things out:
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git clone -l -s -n . ../copy
|
$ git clone -l -s -n . ../copy
|
||||||
|
@ -183,7 +205,7 @@ $ git show-branch
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
||||||
Clone from upstream while borrowing from an existing local directory::
|
* Clone from upstream while borrowing from an existing local directory:
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git clone --reference my2.6 \
|
$ git clone --reference my2.6 \
|
||||||
|
@ -193,14 +215,14 @@ $ cd my2.7
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
||||||
Create a bare repository to publish your changes to the public::
|
* Create a bare repository to publish your changes to the public:
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git clone --bare -l /home/proj/.git /pub/scm/proj.git
|
$ git clone --bare -l /home/proj/.git /pub/scm/proj.git
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
||||||
Create a repository on the kernel.org machine that borrows from Linus::
|
* Create a repository on the kernel.org machine that borrows from Linus:
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git clone --bare -l -s /pub/scm/.../torvalds/linux-2.6.git \
|
$ git clone --bare -l -s /pub/scm/.../torvalds/linux-2.6.git \
|
||||||
|
|
|
@ -70,9 +70,10 @@ is taken from the configuration items user.name and user.email, or, if not
|
||||||
present, system user name and fully qualified hostname.
|
present, system user name and fully qualified hostname.
|
||||||
|
|
||||||
A commit comment is read from stdin. If a changelog
|
A commit comment is read from stdin. If a changelog
|
||||||
entry is not provided via "<" redirection, 'git-commit-tree' will just wait
|
entry is not provided via "<" redirection, 'git commit-tree' will just wait
|
||||||
for one to be entered and terminated with ^D.
|
for one to be entered and terminated with ^D.
|
||||||
|
|
||||||
|
include::date-formats.txt[]
|
||||||
|
|
||||||
Diagnostics
|
Diagnostics
|
||||||
-----------
|
-----------
|
||||||
|
|
|
@ -8,10 +8,11 @@ git-commit - Record changes to the repository
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git commit' [-a | --interactive] [-s] [-v] [-u<mode>] [--amend]
|
'git commit' [-a | --interactive] [-s] [-v] [-u<mode>] [--amend] [--dry-run]
|
||||||
[(-c | -C) <commit>] [-F <file> | -m <msg>]
|
[(-c | -C) <commit>] [-F <file> | -m <msg>] [--reset-author]
|
||||||
[--allow-empty] [--no-verify] [-e] [--author=<author>]
|
[--allow-empty] [--allow-empty-message] [--no-verify] [-e] [--author=<author>]
|
||||||
[--cleanup=<mode>] [--] [[-i | -o ]<file>...]
|
[--date=<date>] [--cleanup=<mode>] [--status | --no-status] [--]
|
||||||
|
[[-i | -o ]<file>...]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
@ -20,11 +21,11 @@ with a log message from the user describing the changes.
|
||||||
|
|
||||||
The content to be added can be specified in several ways:
|
The content to be added can be specified in several ways:
|
||||||
|
|
||||||
1. by using 'git-add' to incrementally "add" changes to the
|
1. by using 'git add' to incrementally "add" changes to the
|
||||||
index before using the 'commit' command (Note: even modified
|
index before using the 'commit' command (Note: even modified
|
||||||
files must be "added");
|
files must be "added");
|
||||||
|
|
||||||
2. by using 'git-rm' to remove files from the working tree
|
2. by using 'git rm' to remove files from the working tree
|
||||||
and the index, again before using the 'commit' command;
|
and the index, again before using the 'commit' command;
|
||||||
|
|
||||||
3. by listing files as arguments to the 'commit' command, in which
|
3. by listing files as arguments to the 'commit' command, in which
|
||||||
|
@ -40,15 +41,14 @@ The content to be added can be specified in several ways:
|
||||||
|
|
||||||
5. by using the --interactive switch with the 'commit' command to decide one
|
5. by using the --interactive switch with the 'commit' command to decide one
|
||||||
by one which files should be part of the commit, before finalizing the
|
by one which files should be part of the commit, before finalizing the
|
||||||
operation. Currently, this is done by invoking 'git-add --interactive'.
|
operation. Currently, this is done by invoking 'git add --interactive'.
|
||||||
|
|
||||||
The 'git-status' command can be used to obtain a
|
The `--dry-run` option can be used to obtain a
|
||||||
summary of what is included by any of the above for the next
|
summary of what is included by any of the above for the next
|
||||||
commit by giving the same set of parameters you would give to
|
commit by giving the same set of parameters (options and paths).
|
||||||
this command.
|
|
||||||
|
|
||||||
If you make a commit and then find a mistake immediately after
|
If you make a commit and then find a mistake immediately after
|
||||||
that, you can recover from it with 'git-reset'.
|
that, you can recover from it with 'git reset'.
|
||||||
|
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
|
@ -70,16 +70,39 @@ OPTIONS
|
||||||
Like '-C', but with '-c' the editor is invoked, so that
|
Like '-C', but with '-c' the editor is invoked, so that
|
||||||
the user can further edit the commit message.
|
the user can further edit the commit message.
|
||||||
|
|
||||||
|
--reset-author::
|
||||||
|
When used with -C/-c/--amend options, declare that the
|
||||||
|
authorship of the resulting commit now belongs of the committer.
|
||||||
|
This also renews the author timestamp.
|
||||||
|
|
||||||
|
--short::
|
||||||
|
When doing a dry-run, give the output in the short-format. See
|
||||||
|
linkgit:git-status[1] for details. Implies `--dry-run`.
|
||||||
|
|
||||||
|
--porcelain::
|
||||||
|
When doing a dry-run, give the output in a porcelain-ready
|
||||||
|
format. See linkgit:git-status[1] for details. Implies
|
||||||
|
`--dry-run`.
|
||||||
|
|
||||||
|
-z::
|
||||||
|
When showing `short` or `porcelain` status output, terminate
|
||||||
|
entries in the status output with NUL, instead of LF. If no
|
||||||
|
format is given, implies the `--porcelain` output format.
|
||||||
|
|
||||||
-F <file>::
|
-F <file>::
|
||||||
--file=<file>::
|
--file=<file>::
|
||||||
Take the commit message from the given file. Use '-' to
|
Take the commit message from the given file. Use '-' to
|
||||||
read the message from the standard input.
|
read the message from the standard input.
|
||||||
|
|
||||||
--author=<author>::
|
--author=<author>::
|
||||||
Override the author name used in the commit. You can use the
|
Override the commit author. Specify an explicit author using the
|
||||||
standard `A U Thor <author@example.com>` format. Otherwise,
|
standard `A U Thor <author@example.com>` format. Otherwise <author>
|
||||||
an existing commit that matches the given string and its author
|
is assumed to be a pattern and is used to search for an existing
|
||||||
name is used.
|
commit by that author (i.e. rev-list --all -i --author=<author>);
|
||||||
|
the commit author is then copied from the first such commit found.
|
||||||
|
|
||||||
|
--date=<date>::
|
||||||
|
Override the author date used in the commit.
|
||||||
|
|
||||||
-m <msg>::
|
-m <msg>::
|
||||||
--message=<msg>::
|
--message=<msg>::
|
||||||
|
@ -109,6 +132,12 @@ OPTIONS
|
||||||
from making such a commit. This option bypasses the safety, and
|
from making such a commit. This option bypasses the safety, and
|
||||||
is primarily for use by foreign scm interface scripts.
|
is primarily for use by foreign scm interface scripts.
|
||||||
|
|
||||||
|
--allow-empty-message::
|
||||||
|
Like --allow-empty this command is primarily for use by foreign
|
||||||
|
scm interface scripts. It allows you to create a commit with an
|
||||||
|
empty commit message without using plumbing commands like
|
||||||
|
linkgit:git-commit-tree[1].
|
||||||
|
|
||||||
--cleanup=<mode>::
|
--cleanup=<mode>::
|
||||||
This option sets how the commit message is cleaned up.
|
This option sets how the commit message is cleaned up.
|
||||||
The '<mode>' can be one of 'verbatim', 'whitespace', 'strip',
|
The '<mode>' can be one of 'verbatim', 'whitespace', 'strip',
|
||||||
|
@ -163,7 +192,7 @@ FROM UPSTREAM REBASE" section in linkgit:git-rebase[1].)
|
||||||
Make a commit only from the paths specified on the
|
Make a commit only from the paths specified on the
|
||||||
command line, disregarding any contents that have been
|
command line, disregarding any contents that have been
|
||||||
staged so far. This is the default mode of operation of
|
staged so far. This is the default mode of operation of
|
||||||
'git-commit' if any paths are given on the command line,
|
'git commit' if any paths are given on the command line,
|
||||||
in which case this option can be omitted.
|
in which case this option can be omitted.
|
||||||
If this option is specified together with '--amend', then
|
If this option is specified together with '--amend', then
|
||||||
no paths need to be specified, which can be used to amend
|
no paths need to be specified, which can be used to amend
|
||||||
|
@ -175,13 +204,13 @@ FROM UPSTREAM REBASE" section in linkgit:git-rebase[1].)
|
||||||
Show untracked files (Default: 'all').
|
Show untracked files (Default: 'all').
|
||||||
+
|
+
|
||||||
The mode parameter is optional, and is used to specify
|
The mode parameter is optional, and is used to specify
|
||||||
the handling of untracked files. The possible options are:
|
the handling of untracked files.
|
||||||
|
+
|
||||||
|
The possible options are:
|
||||||
+
|
+
|
||||||
--
|
|
||||||
- 'no' - Show no untracked files
|
- 'no' - Show no untracked files
|
||||||
- 'normal' - Shows untracked files and directories
|
- 'normal' - Shows untracked files and directories
|
||||||
- 'all' - Also shows individual files in untracked directories.
|
- 'all' - Also shows individual files in untracked directories.
|
||||||
--
|
|
||||||
+
|
+
|
||||||
See linkgit:git-config[1] for configuration variable
|
See linkgit:git-config[1] for configuration variable
|
||||||
used to change the default for when the option is not
|
used to change the default for when the option is not
|
||||||
|
@ -198,6 +227,22 @@ specified.
|
||||||
--quiet::
|
--quiet::
|
||||||
Suppress commit summary message.
|
Suppress commit summary message.
|
||||||
|
|
||||||
|
--dry-run::
|
||||||
|
Do not create a commit, but show a list of paths that are
|
||||||
|
to be committed, paths with local changes that will be left
|
||||||
|
uncommitted and paths that are untracked.
|
||||||
|
|
||||||
|
--status::
|
||||||
|
Include the output of linkgit:git-status[1] in the commit
|
||||||
|
message template when using an editor to prepare the commit
|
||||||
|
message. Defaults to on, but can be used to override
|
||||||
|
configuration variable commit.status.
|
||||||
|
|
||||||
|
--no-status::
|
||||||
|
Do not include the output of linkgit:git-status[1] in the
|
||||||
|
commit message template when using an editor to prepare the
|
||||||
|
default commit message.
|
||||||
|
|
||||||
\--::
|
\--::
|
||||||
Do not interpret any more arguments as options.
|
Do not interpret any more arguments as options.
|
||||||
|
|
||||||
|
@ -208,15 +253,17 @@ specified.
|
||||||
these files are also staged for the next commit on top
|
these files are also staged for the next commit on top
|
||||||
of what have been staged before.
|
of what have been staged before.
|
||||||
|
|
||||||
|
:git-commit: 1
|
||||||
|
include::date-formats.txt[]
|
||||||
|
|
||||||
EXAMPLES
|
EXAMPLES
|
||||||
--------
|
--------
|
||||||
When recording your own work, the contents of modified files in
|
When recording your own work, the contents of modified files in
|
||||||
your working tree are temporarily stored to a staging area
|
your working tree are temporarily stored to a staging area
|
||||||
called the "index" with 'git-add'. A file can be
|
called the "index" with 'git add'. A file can be
|
||||||
reverted back, only in the index but not in the working tree,
|
reverted back, only in the index but not in the working tree,
|
||||||
to that of the last commit with `git reset HEAD -- <file>`,
|
to that of the last commit with `git reset HEAD -- <file>`,
|
||||||
which effectively reverts 'git-add' and prevents the changes to
|
which effectively reverts 'git add' and prevents the changes to
|
||||||
this file from participating in the next commit. After building
|
this file from participating in the next commit. After building
|
||||||
the state to be committed incrementally with these commands,
|
the state to be committed incrementally with these commands,
|
||||||
`git commit` (without any pathname parameter) is used to record what
|
`git commit` (without any pathname parameter) is used to record what
|
||||||
|
@ -272,13 +319,13 @@ $ git commit
|
||||||
this second commit would record the changes to `hello.c` and
|
this second commit would record the changes to `hello.c` and
|
||||||
`hello.h` as expected.
|
`hello.h` as expected.
|
||||||
|
|
||||||
After a merge (initiated by 'git-merge' or 'git-pull') stops
|
After a merge (initiated by 'git merge' or 'git pull') stops
|
||||||
because of conflicts, cleanly merged
|
because of conflicts, cleanly merged
|
||||||
paths are already staged to be committed for you, and paths that
|
paths are already staged to be committed for you, and paths that
|
||||||
conflicted are left in unmerged state. You would have to first
|
conflicted are left in unmerged state. You would have to first
|
||||||
check which paths are conflicting with 'git-status'
|
check which paths are conflicting with 'git status'
|
||||||
and after fixing them manually in your working tree, you would
|
and after fixing them manually in your working tree, you would
|
||||||
stage the result as usual with 'git-add':
|
stage the result as usual with 'git add':
|
||||||
|
|
||||||
------------
|
------------
|
||||||
$ git status | grep unmerged
|
$ git status | grep unmerged
|
||||||
|
@ -319,7 +366,7 @@ ENVIRONMENT AND CONFIGURATION VARIABLES
|
||||||
The editor used to edit the commit log message will be chosen from the
|
The editor used to edit the commit log message will be chosen from the
|
||||||
GIT_EDITOR environment variable, the core.editor configuration variable, the
|
GIT_EDITOR environment variable, the core.editor configuration variable, the
|
||||||
VISUAL environment variable, or the EDITOR environment variable (in that
|
VISUAL environment variable, or the EDITOR environment variable (in that
|
||||||
order).
|
order). See linkgit:git-var[1] for details.
|
||||||
|
|
||||||
HOOKS
|
HOOKS
|
||||||
-----
|
-----
|
||||||
|
|
|
@ -37,11 +37,12 @@ existing values that match the regexp are updated or unset. If
|
||||||
you want to handle the lines that do *not* match the regex, just
|
you want to handle the lines that do *not* match the regex, just
|
||||||
prepend a single exclamation mark in front (see also <<EXAMPLES>>).
|
prepend a single exclamation mark in front (see also <<EXAMPLES>>).
|
||||||
|
|
||||||
The type specifier can be either '--int' or '--bool', which will make
|
The type specifier can be either '--int' or '--bool', to make
|
||||||
'git-config' ensure that the variable(s) are of the given type and
|
'git config' ensure that the variable(s) are of the given type and
|
||||||
convert the value to the canonical form (simple decimal number for int,
|
convert the value to the canonical form (simple decimal number for int,
|
||||||
a "true" or "false" string for bool). If no type specifier is passed,
|
a "true" or "false" string for bool), or '--path', which does some
|
||||||
no checks or transformations are performed on the value.
|
path expansion (see '--path' below). If no type specifier is passed, no
|
||||||
|
checks or transformations are performed on the value.
|
||||||
|
|
||||||
The file-option can be one of '--system', '--global' or '--file'
|
The file-option can be one of '--system', '--global' or '--file'
|
||||||
which specify where the values will be read from or written to.
|
which specify where the values will be read from or written to.
|
||||||
|
@ -124,18 +125,25 @@ See also <<FILES>>.
|
||||||
List all variables set in config file.
|
List all variables set in config file.
|
||||||
|
|
||||||
--bool::
|
--bool::
|
||||||
'git-config' will ensure that the output is "true" or "false"
|
'git config' will ensure that the output is "true" or "false"
|
||||||
|
|
||||||
--int::
|
--int::
|
||||||
'git-config' will ensure that the output is a simple
|
'git config' will ensure that the output is a simple
|
||||||
decimal number. An optional value suffix of 'k', 'm', or 'g'
|
decimal number. An optional value suffix of 'k', 'm', or 'g'
|
||||||
in the config file will cause the value to be multiplied
|
in the config file will cause the value to be multiplied
|
||||||
by 1024, 1048576, or 1073741824 prior to output.
|
by 1024, 1048576, or 1073741824 prior to output.
|
||||||
|
|
||||||
--bool-or-int::
|
--bool-or-int::
|
||||||
'git-config' will ensure that the output matches the format of
|
'git config' will ensure that the output matches the format of
|
||||||
either --bool or --int, as described above.
|
either --bool or --int, as described above.
|
||||||
|
|
||||||
|
--path::
|
||||||
|
'git-config' will expand leading '{tilde}' to the value of
|
||||||
|
'$HOME', and '{tilde}user' to the home directory for the
|
||||||
|
specified user. This option has no effect when setting the
|
||||||
|
value (but you can use 'git config bla {tilde}/' from the
|
||||||
|
command line to let your shell do the expansion).
|
||||||
|
|
||||||
-z::
|
-z::
|
||||||
--null::
|
--null::
|
||||||
For all options that output values and/or keys, always
|
For all options that output values and/or keys, always
|
||||||
|
@ -173,7 +181,7 @@ FILES
|
||||||
-----
|
-----
|
||||||
|
|
||||||
If not set explicitly with '--file', there are three files where
|
If not set explicitly with '--file', there are three files where
|
||||||
'git-config' will search for configuration options:
|
'git config' will search for configuration options:
|
||||||
|
|
||||||
$GIT_DIR/config::
|
$GIT_DIR/config::
|
||||||
Repository specific configuration file. (The filename is
|
Repository specific configuration file. (The filename is
|
||||||
|
@ -190,12 +198,12 @@ $(prefix)/etc/gitconfig::
|
||||||
If no further options are given, all reading options will read all of these
|
If no further options are given, all reading options will read all of these
|
||||||
files that are available. If the global or the system-wide configuration
|
files that are available. If the global or the system-wide configuration
|
||||||
file are not available they will be ignored. If the repository configuration
|
file are not available they will be ignored. If the repository configuration
|
||||||
file is not available or readable, 'git-config' will exit with a non-zero
|
file is not available or readable, 'git config' will exit with a non-zero
|
||||||
error code. However, in neither case will an error message be issued.
|
error code. However, in neither case will an error message be issued.
|
||||||
|
|
||||||
All writing options will per default write to the repository specific
|
All writing options will per default write to the repository specific
|
||||||
configuration file. Note that this also affects options like '--replace-all'
|
configuration file. Note that this also affects options like '--replace-all'
|
||||||
and '--unset'. *'git-config' will only ever change one file at a time*.
|
and '--unset'. *'git config' will only ever change one file at a time*.
|
||||||
|
|
||||||
You can override these rules either by command line options or by environment
|
You can override these rules either by command line options or by environment
|
||||||
variables. The '--global' and the '--system' options will limit the file used
|
variables. The '--global' and the '--system' options will limit the file used
|
||||||
|
|
|
@ -27,7 +27,7 @@ by default.
|
||||||
|
|
||||||
Supports file additions, removals, and commits that affect binary files.
|
Supports file additions, removals, and commits that affect binary files.
|
||||||
|
|
||||||
If the commit is a merge commit, you must tell 'git-cvsexportcommit' what
|
If the commit is a merge commit, you must tell 'git cvsexportcommit' what
|
||||||
parent the changeset should be done against.
|
parent the changeset should be done against.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
|
|
|
@ -13,7 +13,7 @@ SYNOPSIS
|
||||||
[-A <author-conv-file>] [-p <options-for-cvsps>] [-P <file>]
|
[-A <author-conv-file>] [-p <options-for-cvsps>] [-P <file>]
|
||||||
[-C <git_repository>] [-z <fuzz>] [-i] [-k] [-u] [-s <subst>]
|
[-C <git_repository>] [-z <fuzz>] [-i] [-k] [-u] [-s <subst>]
|
||||||
[-a] [-m] [-M <regex>] [-S <regex>] [-L <commitlimit>]
|
[-a] [-m] [-M <regex>] [-S <regex>] [-L <commitlimit>]
|
||||||
[-r <remote>] [<CVS_module>]
|
[-r <remote>] [-R] [<CVS_module>]
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
|
@ -28,9 +28,9 @@ At least version 2.1 is required.
|
||||||
Please see the section <<issues,ISSUES>> for further reference.
|
Please see the section <<issues,ISSUES>> for further reference.
|
||||||
|
|
||||||
You should *never* do any work of your own on the branches that are
|
You should *never* do any work of your own on the branches that are
|
||||||
created by 'git-cvsimport'. By default initial import will create and populate a
|
created by 'git cvsimport'. By default initial import will create and populate a
|
||||||
"master" branch from the CVS repository's main branch which you're free
|
"master" branch from the CVS repository's main branch which you're free
|
||||||
to work with; after that, you need to 'git-merge' incremental imports, or
|
to work with; after that, you need to 'git merge' incremental imports, or
|
||||||
any CVS branches, yourself. It is advisable to specify a named remote via
|
any CVS branches, yourself. It is advisable to specify a named remote via
|
||||||
-r to separate and protect the incoming branches.
|
-r to separate and protect the incoming branches.
|
||||||
|
|
||||||
|
@ -49,13 +49,13 @@ OPTIONS
|
||||||
-d <CVSROOT>::
|
-d <CVSROOT>::
|
||||||
The root of the CVS archive. May be local (a simple path) or remote;
|
The root of the CVS archive. May be local (a simple path) or remote;
|
||||||
currently, only the :local:, :ext: and :pserver: access methods
|
currently, only the :local:, :ext: and :pserver: access methods
|
||||||
are supported. If not given, 'git-cvsimport' will try to read it
|
are supported. If not given, 'git cvsimport' will try to read it
|
||||||
from `CVS/Root`. If no such file exists, it checks for the
|
from `CVS/Root`. If no such file exists, it checks for the
|
||||||
`CVSROOT` environment variable.
|
`CVSROOT` environment variable.
|
||||||
|
|
||||||
<CVS_module>::
|
<CVS_module>::
|
||||||
The CVS module you want to import. Relative to <CVSROOT>.
|
The CVS module you want to import. Relative to <CVSROOT>.
|
||||||
If not given, 'git-cvsimport' tries to read it from
|
If not given, 'git cvsimport' tries to read it from
|
||||||
`CVS/Repository`.
|
`CVS/Repository`.
|
||||||
|
|
||||||
-C <target-dir>::
|
-C <target-dir>::
|
||||||
|
@ -65,14 +65,14 @@ OPTIONS
|
||||||
-r <remote>::
|
-r <remote>::
|
||||||
The git remote to import this CVS repository into.
|
The git remote to import this CVS repository into.
|
||||||
Moves all CVS branches into remotes/<remote>/<branch>
|
Moves all CVS branches into remotes/<remote>/<branch>
|
||||||
akin to the way 'git-clone' uses 'origin' by default.
|
akin to the way 'git clone' uses 'origin' by default.
|
||||||
|
|
||||||
-o <branch-for-HEAD>::
|
-o <branch-for-HEAD>::
|
||||||
When no remote is specified (via -r) the 'HEAD' branch
|
When no remote is specified (via -r) the 'HEAD' branch
|
||||||
from CVS is imported to the 'origin' branch within the git
|
from CVS is imported to the 'origin' branch within the git
|
||||||
repository, as 'HEAD' already has a special meaning for git.
|
repository, as 'HEAD' already has a special meaning for git.
|
||||||
When a remote is specified the 'HEAD' branch is named
|
When a remote is specified the 'HEAD' branch is named
|
||||||
remotes/<remote>/master mirroring 'git-clone' behaviour.
|
remotes/<remote>/master mirroring 'git clone' behaviour.
|
||||||
Use this option if you want to import into a different
|
Use this option if you want to import into a different
|
||||||
branch.
|
branch.
|
||||||
+
|
+
|
||||||
|
@ -145,17 +145,33 @@ This option can be used several times to provide several detection regexes.
|
||||||
|
|
||||||
---------
|
---------
|
||||||
+
|
+
|
||||||
'git-cvsimport' will make it appear as those authors had
|
'git cvsimport' will make it appear as those authors had
|
||||||
their GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly
|
their GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly
|
||||||
all along.
|
all along.
|
||||||
+
|
+
|
||||||
For convenience, this data is saved to `$GIT_DIR/cvs-authors`
|
For convenience, this data is saved to `$GIT_DIR/cvs-authors`
|
||||||
each time the '-A' option is provided and read from that same
|
each time the '-A' option is provided and read from that same
|
||||||
file each time 'git-cvsimport' is run.
|
file each time 'git cvsimport' is run.
|
||||||
+
|
+
|
||||||
It is not recommended to use this feature if you intend to
|
It is not recommended to use this feature if you intend to
|
||||||
export changes back to CVS again later with
|
export changes back to CVS again later with
|
||||||
'git-cvsexportcommit'.
|
'git cvsexportcommit'.
|
||||||
|
|
||||||
|
-R::
|
||||||
|
Generate a `$GIT_DIR/cvs-revisions` file containing a mapping from CVS
|
||||||
|
revision numbers to newly-created Git commit IDs. The generated file
|
||||||
|
will contain one line for each (filename, revision) pair imported;
|
||||||
|
each line will look like
|
||||||
|
+
|
||||||
|
---------
|
||||||
|
src/widget.c 1.1 1d862f173cdc7325b6fa6d2ae1cfd61fd1b512b7
|
||||||
|
---------
|
||||||
|
+
|
||||||
|
The revision data is appended to the file if it already exists, for use when
|
||||||
|
doing incremental imports.
|
||||||
|
+
|
||||||
|
This option may be useful if you have CVS revision numbers stored in commit
|
||||||
|
messages, bug-tracking systems, email archives, and the like.
|
||||||
|
|
||||||
-h::
|
-h::
|
||||||
Print a short usage message and exit.
|
Print a short usage message and exit.
|
||||||
|
|
|
@ -22,7 +22,7 @@ cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver
|
||||||
Usage:
|
Usage:
|
||||||
|
|
||||||
[verse]
|
[verse]
|
||||||
'git cvsserver' [options] [pserver|server] [<directory> ...]
|
'git-cvsserver' [options] [pserver|server] [<directory> ...]
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
|
@ -72,9 +72,6 @@ plugin. Most functionality works fine with both of these clients.
|
||||||
LIMITATIONS
|
LIMITATIONS
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Currently cvsserver works over SSH connections for read/write clients, and
|
|
||||||
over pserver for anonymous CVS access.
|
|
||||||
|
|
||||||
CVS clients cannot tag, branch or perform GIT merges.
|
CVS clients cannot tag, branch or perform GIT merges.
|
||||||
|
|
||||||
'git-cvsserver' maps GIT branches to CVS modules. This is very different
|
'git-cvsserver' maps GIT branches to CVS modules. This is very different
|
||||||
|
@ -84,7 +81,7 @@ one or more directories.
|
||||||
INSTALLATION
|
INSTALLATION
|
||||||
------------
|
------------
|
||||||
|
|
||||||
1. If you are going to offer anonymous CVS access via pserver, add a line in
|
1. If you are going to offer CVS access via pserver, add a line in
|
||||||
/etc/inetd.conf like
|
/etc/inetd.conf like
|
||||||
+
|
+
|
||||||
--
|
--
|
||||||
|
@ -101,6 +98,38 @@ looks like
|
||||||
cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver
|
cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver
|
||||||
|
|
||||||
------
|
------
|
||||||
|
|
||||||
|
Only anonymous access is provided by pserve by default. To commit you
|
||||||
|
will have to create pserver accounts, simply add a gitcvs.authdb
|
||||||
|
setting in the config file of the repositories you want the cvsserver
|
||||||
|
to allow writes to, for example:
|
||||||
|
|
||||||
|
------
|
||||||
|
|
||||||
|
[gitcvs]
|
||||||
|
authdb = /etc/cvsserver/passwd
|
||||||
|
|
||||||
|
------
|
||||||
|
The format of these files is username followed by the crypted password,
|
||||||
|
for example:
|
||||||
|
|
||||||
|
------
|
||||||
|
myuser:$1Oyx5r9mdGZ2
|
||||||
|
myuser:$1$BA)@$vbnMJMDym7tA32AamXrm./
|
||||||
|
------
|
||||||
|
You can use the 'htpasswd' facility that comes with Apache to make these
|
||||||
|
files, but Apache's MD5 crypt method differs from the one used by most C
|
||||||
|
library's crypt() function, so don't use the -m option.
|
||||||
|
|
||||||
|
Alternatively you can produce the password with perl's crypt() operator:
|
||||||
|
-----
|
||||||
|
perl -e 'my ($user, $pass) = @ARGV; printf "%s:%s\n", $user, crypt($user, $pass)' $USER password
|
||||||
|
-----
|
||||||
|
|
||||||
|
Then provide your password via the pserver method, for example:
|
||||||
|
------
|
||||||
|
cvs -d:pserver:someuser:somepassword <at> server/path/repo.git co <HEAD_name>
|
||||||
|
------
|
||||||
No special setup is needed for SSH access, other than having GIT tools
|
No special setup is needed for SSH access, other than having GIT tools
|
||||||
in the PATH. If you have clients that do not accept the CVS_SERVER
|
in the PATH. If you have clients that do not accept the CVS_SERVER
|
||||||
environment variable, you can rename 'git-cvsserver' to `cvs`.
|
environment variable, you can rename 'git-cvsserver' to `cvs`.
|
||||||
|
@ -182,10 +211,9 @@ Database Backend
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
'git-cvsserver' uses one database per git head (i.e. CVS module) to
|
'git-cvsserver' uses one database per git head (i.e. CVS module) to
|
||||||
store information about the repository for faster access. The
|
store information about the repository to maintain consistent
|
||||||
database doesn't contain any persistent data and can be completely
|
CVS revision numbers. The database needs to be
|
||||||
regenerated from the git repository at any time. The database
|
updated (i.e. written to) after every commit.
|
||||||
needs to be updated (i.e. written to) after every commit.
|
|
||||||
|
|
||||||
If the commit is done directly by using `git` (as opposed to
|
If the commit is done directly by using `git` (as opposed to
|
||||||
using 'git-cvsserver') the update will need to happen on the
|
using 'git-cvsserver') the update will need to happen on the
|
||||||
|
@ -204,6 +232,18 @@ write so it might not be enough to grant the users using
|
||||||
'git-cvsserver' write access to the database file without granting
|
'git-cvsserver' write access to the database file without granting
|
||||||
them write access to the directory, too.
|
them write access to the directory, too.
|
||||||
|
|
||||||
|
The database can not be reliably regenerated in a
|
||||||
|
consistent form after the branch it is tracking has changed.
|
||||||
|
Example: For merged branches, 'git-cvsserver' only tracks
|
||||||
|
one branch of development, and after a 'git merge' an
|
||||||
|
incrementally updated database may track a different branch
|
||||||
|
than a database regenerated from scratch, causing inconsistent
|
||||||
|
CVS revision numbers. `git-cvsserver` has no way of knowing which
|
||||||
|
branch it would have picked if it had been run incrementally
|
||||||
|
pre-merge. So if you have to fully or partially (from old
|
||||||
|
backup) regenerate the database, you should be suspicious
|
||||||
|
of pre-existing CVS sandboxes.
|
||||||
|
|
||||||
You can configure the database backend with the following
|
You can configure the database backend with the following
|
||||||
configuration variables:
|
configuration variables:
|
||||||
|
|
||||||
|
@ -266,6 +306,21 @@ In `dbdriver` and `dbuser` you can use the following variables:
|
||||||
If no name can be determined, the
|
If no name can be determined, the
|
||||||
numeric uid is used.
|
numeric uid is used.
|
||||||
|
|
||||||
|
ENVIRONMENT
|
||||||
|
-----------
|
||||||
|
|
||||||
|
These variables obviate the need for command-line options in some
|
||||||
|
circumstances, allowing easier restricted usage through git-shell.
|
||||||
|
|
||||||
|
GIT_CVSSERVER_BASE_PATH takes the place of the argument to --base-path.
|
||||||
|
|
||||||
|
GIT_CVSSERVER_ROOT specifies a single-directory whitelist. The
|
||||||
|
repository must still be configured to allow access through
|
||||||
|
git-cvsserver, as described above.
|
||||||
|
|
||||||
|
When these environment variables are set, the corresponding
|
||||||
|
command-line arguments may not be used.
|
||||||
|
|
||||||
Eclipse CVS Client Notes
|
Eclipse CVS Client Notes
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
|
@ -283,7 +338,7 @@ To get a checkout with the Eclipse CVS client:
|
||||||
Protocol notes: If you are using anonymous access via pserver, just select that.
|
Protocol notes: If you are using anonymous access via pserver, just select that.
|
||||||
Those using SSH access should choose the 'ext' protocol, and configure 'ext'
|
Those using SSH access should choose the 'ext' protocol, and configure 'ext'
|
||||||
access on the Preferences->Team->CVS->ExtConnection pane. Set CVS_SERVER to
|
access on the Preferences->Team->CVS->ExtConnection pane. Set CVS_SERVER to
|
||||||
"'git cvsserver'". Note that password support is not good when using 'ext',
|
"`git cvsserver`". Note that password support is not good when using 'ext',
|
||||||
you will definitely want to have SSH keys setup.
|
you will definitely want to have SSH keys setup.
|
||||||
|
|
||||||
Alternatively, you can just use the non-standard extssh protocol that Eclipse
|
Alternatively, you can just use the non-standard extssh protocol that Eclipse
|
||||||
|
@ -314,16 +369,13 @@ By default the server leaves the '-k' mode blank for all files,
|
||||||
which causes the cvs client to treat them as a text files, subject
|
which causes the cvs client to treat them as a text files, subject
|
||||||
to crlf conversion on some platforms.
|
to crlf conversion on some platforms.
|
||||||
|
|
||||||
You can make the server use `crlf` attributes to set the '-k' modes
|
You can make the server use the end-of-line conversion attributes to
|
||||||
for files by setting the `gitcvs.usecrlfattr` config variable.
|
set the '-k' modes for files by setting the `gitcvs.usecrlfattr`
|
||||||
In this case, if `crlf` is explicitly unset ('-crlf'), then the
|
config variable. See linkgit:gitattributes[5] for more information
|
||||||
server will set '-kb' mode for binary files. If `crlf` is set,
|
about end-of-line conversion.
|
||||||
then the '-k' mode will explicitly be left blank. See
|
|
||||||
also linkgit:gitattributes[5] for more information about the `crlf`
|
|
||||||
attribute.
|
|
||||||
|
|
||||||
Alternatively, if `gitcvs.usecrlfattr` config is not enabled
|
Alternatively, if `gitcvs.usecrlfattr` config is not enabled
|
||||||
or if the `crlf` attribute is unspecified for a filename, then
|
or the attributes do not allow automatic detection for a filename, then
|
||||||
the server uses the `gitcvs.allbinary` config for the default setting.
|
the server uses the `gitcvs.allbinary` config for the default setting.
|
||||||
If `gitcvs.allbinary` is set, then file not otherwise
|
If `gitcvs.allbinary` is set, then file not otherwise
|
||||||
specified will default to '-kb' mode. Otherwise the '-k' mode
|
specified will default to '-kb' mode. Otherwise the '-k' mode
|
||||||
|
|
|
@ -28,36 +28,36 @@ that service if it is enabled.
|
||||||
It verifies that the directory has the magic file "git-daemon-export-ok", and
|
It verifies that the directory has the magic file "git-daemon-export-ok", and
|
||||||
it will refuse to export any git directory that hasn't explicitly been marked
|
it will refuse to export any git directory that hasn't explicitly been marked
|
||||||
for export this way (unless the '--export-all' parameter is specified). If you
|
for export this way (unless the '--export-all' parameter is specified). If you
|
||||||
pass some directory paths as 'git-daemon' arguments, you can further restrict
|
pass some directory paths as 'git daemon' arguments, you can further restrict
|
||||||
the offers to a whitelist comprising of those.
|
the offers to a whitelist comprising of those.
|
||||||
|
|
||||||
By default, only `upload-pack` service is enabled, which serves
|
By default, only `upload-pack` service is enabled, which serves
|
||||||
'git-fetch-pack' and 'git-ls-remote' clients, which are invoked
|
'git fetch-pack' and 'git ls-remote' clients, which are invoked
|
||||||
from 'git-fetch', 'git-pull', and 'git-clone'.
|
from 'git fetch', 'git pull', and 'git clone'.
|
||||||
|
|
||||||
This is ideally suited for read-only updates, i.e., pulling from
|
This is ideally suited for read-only updates, i.e., pulling from
|
||||||
git repositories.
|
git repositories.
|
||||||
|
|
||||||
An `upload-archive` also exists to serve 'git-archive'.
|
An `upload-archive` also exists to serve 'git archive'.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
--strict-paths::
|
--strict-paths::
|
||||||
Match paths exactly (i.e. don't allow "/foo/repo" when the real path is
|
Match paths exactly (i.e. don't allow "/foo/repo" when the real path is
|
||||||
"/foo/repo.git" or "/foo/repo/.git") and don't do user-relative paths.
|
"/foo/repo.git" or "/foo/repo/.git") and don't do user-relative paths.
|
||||||
'git-daemon' will refuse to start when this option is enabled and no
|
'git daemon' will refuse to start when this option is enabled and no
|
||||||
whitelist is specified.
|
whitelist is specified.
|
||||||
|
|
||||||
--base-path=path::
|
--base-path=path::
|
||||||
Remap all the path requests as relative to the given path.
|
Remap all the path requests as relative to the given path.
|
||||||
This is sort of "GIT root" - if you run 'git-daemon' with
|
This is sort of "GIT root" - if you run 'git daemon' with
|
||||||
'--base-path=/srv/git' on example.com, then if you later try to pull
|
'--base-path=/srv/git' on example.com, then if you later try to pull
|
||||||
'git://example.com/hello.git', 'git-daemon' will interpret the path
|
'git://example.com/hello.git', 'git daemon' will interpret the path
|
||||||
as '/srv/git/hello.git'.
|
as '/srv/git/hello.git'.
|
||||||
|
|
||||||
--base-path-relaxed::
|
--base-path-relaxed::
|
||||||
If --base-path is enabled and repo lookup fails, with this option
|
If --base-path is enabled and repo lookup fails, with this option
|
||||||
'git-daemon' will attempt to lookup without prefixing the base path.
|
'git daemon' will attempt to lookup without prefixing the base path.
|
||||||
This is useful for switching to --base-path usage, while still
|
This is useful for switching to --base-path usage, while still
|
||||||
allowing the old paths.
|
allowing the old paths.
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ OPTIONS
|
||||||
+
|
+
|
||||||
Giving these options is an error when used with `--inetd`; use
|
Giving these options is an error when used with `--inetd`; use
|
||||||
the facility of inet daemon to achieve the same before spawning
|
the facility of inet daemon to achieve the same before spawning
|
||||||
'git-daemon' if needed.
|
'git daemon' if needed.
|
||||||
|
|
||||||
--enable=service::
|
--enable=service::
|
||||||
--disable=service::
|
--disable=service::
|
||||||
|
@ -169,24 +169,24 @@ SERVICES
|
||||||
|
|
||||||
These services can be globally enabled/disabled using the
|
These services can be globally enabled/disabled using the
|
||||||
command line options of this command. If a finer-grained
|
command line options of this command. If a finer-grained
|
||||||
control is desired (e.g. to allow 'git-archive' to be run
|
control is desired (e.g. to allow 'git archive' to be run
|
||||||
against only in a few selected repositories the daemon serves),
|
against only in a few selected repositories the daemon serves),
|
||||||
the per-repository configuration file can be used to enable or
|
the per-repository configuration file can be used to enable or
|
||||||
disable them.
|
disable them.
|
||||||
|
|
||||||
upload-pack::
|
upload-pack::
|
||||||
This serves 'git-fetch-pack' and 'git-ls-remote'
|
This serves 'git fetch-pack' and 'git ls-remote'
|
||||||
clients. It is enabled by default, but a repository can
|
clients. It is enabled by default, but a repository can
|
||||||
disable it by setting `daemon.uploadpack` configuration
|
disable it by setting `daemon.uploadpack` configuration
|
||||||
item to `false`.
|
item to `false`.
|
||||||
|
|
||||||
upload-archive::
|
upload-archive::
|
||||||
This serves 'git-archive --remote'. It is disabled by
|
This serves 'git archive --remote'. It is disabled by
|
||||||
default, but a repository can enable it by setting
|
default, but a repository can enable it by setting
|
||||||
`daemon.uploadarch` configuration item to `true`.
|
`daemon.uploadarch` configuration item to `true`.
|
||||||
|
|
||||||
receive-pack::
|
receive-pack::
|
||||||
This serves 'git-send-pack' clients, allowing anonymous
|
This serves 'git send-pack' clients, allowing anonymous
|
||||||
push. It is disabled by default, as there is _no_
|
push. It is disabled by default, as there is _no_
|
||||||
authentication in the protocol (in other words, anybody
|
authentication in the protocol (in other words, anybody
|
||||||
can push anything into the repository, including removal
|
can push anything into the repository, including removal
|
||||||
|
@ -204,8 +204,8 @@ $ grep 9418 /etc/services
|
||||||
git 9418/tcp # Git Version Control System
|
git 9418/tcp # Git Version Control System
|
||||||
------------
|
------------
|
||||||
|
|
||||||
'git-daemon' as inetd server::
|
'git daemon' as inetd server::
|
||||||
To set up 'git-daemon' as an inetd service that handles any
|
To set up 'git daemon' as an inetd service that handles any
|
||||||
repository under the whitelisted set of directories, /pub/foo
|
repository under the whitelisted set of directories, /pub/foo
|
||||||
and /pub/bar, place an entry like the following into
|
and /pub/bar, place an entry like the following into
|
||||||
/etc/inetd all on one line:
|
/etc/inetd all on one line:
|
||||||
|
@ -217,8 +217,8 @@ git 9418/tcp # Git Version Control System
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
'git-daemon' as inetd server for virtual hosts::
|
'git daemon' as inetd server for virtual hosts::
|
||||||
To set up 'git-daemon' as an inetd service that handles
|
To set up 'git daemon' as an inetd service that handles
|
||||||
repositories for different virtual hosts, `www.example.com`
|
repositories for different virtual hosts, `www.example.com`
|
||||||
and `www.example.org`, place an entry like the following into
|
and `www.example.org`, place an entry like the following into
|
||||||
`/etc/inetd` all on one line:
|
`/etc/inetd` all on one line:
|
||||||
|
@ -240,8 +240,8 @@ clients, a symlink from `/software` into the appropriate
|
||||||
default repository could be made as well.
|
default repository could be made as well.
|
||||||
|
|
||||||
|
|
||||||
'git-daemon' as regular daemon for virtual hosts::
|
'git daemon' as regular daemon for virtual hosts::
|
||||||
To set up 'git-daemon' as a regular, non-inetd service that
|
To set up 'git daemon' as a regular, non-inetd service that
|
||||||
handles repositories for multiple virtual hosts based on
|
handles repositories for multiple virtual hosts based on
|
||||||
their IP addresses, start the daemon like this:
|
their IP addresses, start the daemon like this:
|
||||||
+
|
+
|
||||||
|
@ -258,7 +258,7 @@ Repositories can still be accessed by hostname though, assuming
|
||||||
they correspond to these IP addresses.
|
they correspond to these IP addresses.
|
||||||
|
|
||||||
selectively enable/disable services per repository::
|
selectively enable/disable services per repository::
|
||||||
To enable 'git-archive --remote' and disable 'git-fetch' against
|
To enable 'git archive --remote' and disable 'git fetch' against
|
||||||
a repository, have the following in the configuration file in the
|
a repository, have the following in the configuration file in the
|
||||||
repository (that is the file 'config' next to 'HEAD', 'refs' and
|
repository (that is the file 'config' next to 'HEAD', 'refs' and
|
||||||
'objects').
|
'objects').
|
||||||
|
@ -272,7 +272,7 @@ selectively enable/disable services per repository::
|
||||||
|
|
||||||
ENVIRONMENT
|
ENVIRONMENT
|
||||||
-----------
|
-----------
|
||||||
'git-daemon' will set REMOTE_ADDR to the IP address of the client
|
'git daemon' will set REMOTE_ADDR to the IP address of the client
|
||||||
that connected to it, if the IP address is available. REMOTE_ADDR will
|
that connected to it, if the IP address is available. REMOTE_ADDR will
|
||||||
be available in the environment of hooks called when
|
be available in the environment of hooks called when
|
||||||
services are performed.
|
services are performed.
|
||||||
|
|
|
@ -8,7 +8,9 @@ git-describe - Show the most recent tag that is reachable from a commit
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
|
[verse]
|
||||||
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] <committish>...
|
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] <committish>...
|
||||||
|
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] --dirty[=<mark>]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
@ -27,6 +29,11 @@ OPTIONS
|
||||||
<committish>...::
|
<committish>...::
|
||||||
Committish object names to describe.
|
Committish object names to describe.
|
||||||
|
|
||||||
|
--dirty[=<mark>]::
|
||||||
|
Describe the working tree.
|
||||||
|
It means describe HEAD and appends <mark> (`-dirty` by
|
||||||
|
default) if the working tree is dirty.
|
||||||
|
|
||||||
--all::
|
--all::
|
||||||
Instead of using only the annotated tags, use any ref
|
Instead of using only the annotated tags, use any ref
|
||||||
found in `.git/refs/`. This option enables matching
|
found in `.git/refs/`. This option enables matching
|
||||||
|
@ -44,7 +51,9 @@ OPTIONS
|
||||||
|
|
||||||
--abbrev=<n>::
|
--abbrev=<n>::
|
||||||
Instead of using the default 7 hexadecimal digits as the
|
Instead of using the default 7 hexadecimal digits as the
|
||||||
abbreviated object name, use <n> digits.
|
abbreviated object name, use <n> digits, or as many digits
|
||||||
|
as needed to form a unique object name. An <n> of 0
|
||||||
|
will suppress long format, only showing the closest tag.
|
||||||
|
|
||||||
--candidates=<n>::
|
--candidates=<n>::
|
||||||
Instead of considering only the 10 most recent tags as
|
Instead of considering only the 10 most recent tags as
|
||||||
|
@ -68,8 +77,8 @@ OPTIONS
|
||||||
This is useful when you want to see parts of the commit object name
|
This is useful when you want to see parts of the commit object name
|
||||||
in "describe" output, even when the commit in question happens to be
|
in "describe" output, even when the commit in question happens to be
|
||||||
a tagged version. Instead of just emitting the tag name, it will
|
a tagged version. Instead of just emitting the tag name, it will
|
||||||
describe such a commit as v1.2-0-deadbeef (0th commit since tag v1.2
|
describe such a commit as v1.2-0-gdeadbee (0th commit since tag v1.2
|
||||||
that points at object deadbeef....).
|
that points at object deadbee....).
|
||||||
|
|
||||||
--match <pattern>::
|
--match <pattern>::
|
||||||
Only consider tags matching the given pattern (can be used to avoid
|
Only consider tags matching the given pattern (can be used to avoid
|
||||||
|
@ -96,8 +105,11 @@ The number of additional commits is the number
|
||||||
of commits which would be displayed by "git log v1.0.4..parent".
|
of commits which would be displayed by "git log v1.0.4..parent".
|
||||||
The hash suffix is "-g" + 7-char abbreviation for the tip commit
|
The hash suffix is "-g" + 7-char abbreviation for the tip commit
|
||||||
of parent (which was `2414721b194453f058079d897d13c4e377f92dc6`).
|
of parent (which was `2414721b194453f058079d897d13c4e377f92dc6`).
|
||||||
|
The "g" prefix stands for "git" and is used to allow describing the version of
|
||||||
|
a software depending on the SCM the software is managed with. This is useful
|
||||||
|
in an environment where people may use different SCMs.
|
||||||
|
|
||||||
Doing a 'git-describe' on a tag-name will just show the tag name:
|
Doing a 'git describe' on a tag-name will just show the tag name:
|
||||||
|
|
||||||
[torvalds@g5 git]$ git describe v1.0.4
|
[torvalds@g5 git]$ git describe v1.0.4
|
||||||
v1.0.4
|
v1.0.4
|
||||||
|
@ -108,7 +120,7 @@ the output shows the reference path as well:
|
||||||
[torvalds@g5 git]$ git describe --all --abbrev=4 v1.0.5^2
|
[torvalds@g5 git]$ git describe --all --abbrev=4 v1.0.5^2
|
||||||
tags/v1.0.0-21-g975b
|
tags/v1.0.0-21-g975b
|
||||||
|
|
||||||
[torvalds@g5 git]$ git describe --all HEAD^
|
[torvalds@g5 git]$ git describe --all --abbrev=4 HEAD^
|
||||||
heads/lt/describe-7-g975b
|
heads/lt/describe-7-g975b
|
||||||
|
|
||||||
With --abbrev set to 0, the command can be used to find the
|
With --abbrev set to 0, the command can be used to find the
|
||||||
|
@ -117,16 +129,23 @@ closest tagname without any suffix:
|
||||||
[torvalds@g5 git]$ git describe --abbrev=0 v1.0.5^2
|
[torvalds@g5 git]$ git describe --abbrev=0 v1.0.5^2
|
||||||
tags/v1.0.0
|
tags/v1.0.0
|
||||||
|
|
||||||
|
Note that the suffix you get if you type these commands today may be
|
||||||
|
longer than what Linus saw above when he ran these commands, as your
|
||||||
|
git repository may have new commits whose object names begin with
|
||||||
|
975b that did not exist back then, and "-g975b" suffix alone may not
|
||||||
|
be sufficient to disambiguate these commits.
|
||||||
|
|
||||||
|
|
||||||
SEARCH STRATEGY
|
SEARCH STRATEGY
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
For each committish supplied, 'git-describe' will first look for
|
For each committish supplied, 'git describe' will first look for
|
||||||
a tag which tags exactly that commit. Annotated tags will always
|
a tag which tags exactly that commit. Annotated tags will always
|
||||||
be preferred over lightweight tags, and tags with newer dates will
|
be preferred over lightweight tags, and tags with newer dates will
|
||||||
always be preferred over tags with older dates. If an exact match
|
always be preferred over tags with older dates. If an exact match
|
||||||
is found, its name will be output and searching will stop.
|
is found, its name will be output and searching will stop.
|
||||||
|
|
||||||
If an exact match was not found, 'git-describe' will walk back
|
If an exact match was not found, 'git describe' will walk back
|
||||||
through the commit history to locate an ancestor commit which
|
through the commit history to locate an ancestor commit which
|
||||||
has been tagged. The ancestor's tag will be output along with an
|
has been tagged. The ancestor's tag will be output along with an
|
||||||
abbreviation of the input committish's SHA1.
|
abbreviation of the input committish's SHA1.
|
||||||
|
|
|
@ -15,7 +15,7 @@ DESCRIPTION
|
||||||
Compares the files in the working tree and the index. When paths
|
Compares the files in the working tree and the index. When paths
|
||||||
are specified, compares only those named paths. Otherwise all
|
are specified, compares only those named paths. Otherwise all
|
||||||
entries in the index are compared. The output format is the
|
entries in the index are compared. The output format is the
|
||||||
same as for 'git-diff-index' and 'git-diff-tree'.
|
same as for 'git diff-index' and 'git diff-tree'.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
|
|
|
@ -31,7 +31,7 @@ include::diff-options.txt[]
|
||||||
-m::
|
-m::
|
||||||
By default, files recorded in the index but not checked
|
By default, files recorded in the index but not checked
|
||||||
out are reported as deleted. This flag makes
|
out are reported as deleted. This flag makes
|
||||||
'git-diff-index' say that all non-checked-out files are up
|
'git diff-index' say that all non-checked-out files are up
|
||||||
to date.
|
to date.
|
||||||
|
|
||||||
include::diff-format.txt[]
|
include::diff-format.txt[]
|
||||||
|
@ -48,7 +48,7 @@ Cached Mode
|
||||||
If '--cached' is specified, it allows you to ask:
|
If '--cached' is specified, it allows you to ask:
|
||||||
|
|
||||||
show me the differences between HEAD and the current index
|
show me the differences between HEAD and the current index
|
||||||
contents (the ones I'd write using 'git-write-tree')
|
contents (the ones I'd write using 'git write-tree')
|
||||||
|
|
||||||
For example, let's say that you have worked on your working directory, updated
|
For example, let's say that you have worked on your working directory, updated
|
||||||
some files in the index and are ready to commit. You want to see exactly
|
some files in the index and are ready to commit. You want to see exactly
|
||||||
|
@ -60,7 +60,7 @@ object and compare it that way, and to do that, you just do
|
||||||
Example: let's say I had renamed `commit.c` to `git-commit.c`, and I had
|
Example: let's say I had renamed `commit.c` to `git-commit.c`, and I had
|
||||||
done an `update-index` to make that effective in the index file.
|
done an `update-index` to make that effective in the index file.
|
||||||
`git diff-files` wouldn't show anything at all, since the index file
|
`git diff-files` wouldn't show anything at all, since the index file
|
||||||
matches my working directory. But doing a 'git-diff-index' does:
|
matches my working directory. But doing a 'git diff-index' does:
|
||||||
|
|
||||||
torvalds@ppc970:~/git> git diff-index --cached HEAD
|
torvalds@ppc970:~/git> git diff-index --cached HEAD
|
||||||
-100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 commit.c
|
-100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 commit.c
|
||||||
|
@ -69,10 +69,10 @@ matches my working directory. But doing a 'git-diff-index' does:
|
||||||
You can see easily that the above is a rename.
|
You can see easily that the above is a rename.
|
||||||
|
|
||||||
In fact, `git diff-index --cached` *should* always be entirely equivalent to
|
In fact, `git diff-index --cached` *should* always be entirely equivalent to
|
||||||
actually doing a 'git-write-tree' and comparing that. Except this one is much
|
actually doing a 'git write-tree' and comparing that. Except this one is much
|
||||||
nicer for the case where you just want to check where you are.
|
nicer for the case where you just want to check where you are.
|
||||||
|
|
||||||
So doing a 'git-diff-index --cached' is basically very useful when you are
|
So doing a `git diff-index --cached` is basically very useful when you are
|
||||||
asking yourself "what have I already marked for being committed, and
|
asking yourself "what have I already marked for being committed, and
|
||||||
what's the difference to a previous tree".
|
what's the difference to a previous tree".
|
||||||
|
|
||||||
|
@ -80,20 +80,20 @@ Non-cached Mode
|
||||||
---------------
|
---------------
|
||||||
The "non-cached" mode takes a different approach, and is potentially
|
The "non-cached" mode takes a different approach, and is potentially
|
||||||
the more useful of the two in that what it does can't be emulated with
|
the more useful of the two in that what it does can't be emulated with
|
||||||
a 'git-write-tree' + 'git-diff-tree'. Thus that's the default mode.
|
a 'git write-tree' + 'git diff-tree'. Thus that's the default mode.
|
||||||
The non-cached version asks the question:
|
The non-cached version asks the question:
|
||||||
|
|
||||||
show me the differences between HEAD and the currently checked out
|
show me the differences between HEAD and the currently checked out
|
||||||
tree - index contents _and_ files that aren't up-to-date
|
tree - index contents _and_ files that aren't up-to-date
|
||||||
|
|
||||||
which is obviously a very useful question too, since that tells you what
|
which is obviously a very useful question too, since that tells you what
|
||||||
you *could* commit. Again, the output matches the 'git-diff-tree -r'
|
you *could* commit. Again, the output matches the 'git diff-tree -r'
|
||||||
output to a tee, but with a twist.
|
output to a tee, but with a twist.
|
||||||
|
|
||||||
The twist is that if some file doesn't match the index, we don't have
|
The twist is that if some file doesn't match the index, we don't have
|
||||||
a backing store thing for it, and we use the magic "all-zero" sha1 to
|
a backing store thing for it, and we use the magic "all-zero" sha1 to
|
||||||
show that. So let's say that you have edited `kernel/sched.c`, but
|
show that. So let's say that you have edited `kernel/sched.c`, but
|
||||||
have not actually done a 'git-update-index' on it yet - there is no
|
have not actually done a 'git update-index' on it yet - there is no
|
||||||
"object" associated with the new state, and you get:
|
"object" associated with the new state, and you get:
|
||||||
|
|
||||||
torvalds@ppc970:~/v2.6/linux> git diff-index HEAD
|
torvalds@ppc970:~/v2.6/linux> git diff-index HEAD
|
||||||
|
@ -104,11 +104,11 @@ not up-to-date and may contain new stuff. The all-zero sha1 means that to
|
||||||
get the real diff, you need to look at the object in the working directory
|
get the real diff, you need to look at the object in the working directory
|
||||||
directly rather than do an object-to-object diff.
|
directly rather than do an object-to-object diff.
|
||||||
|
|
||||||
NOTE: As with other commands of this type, 'git-diff-index' does not
|
NOTE: As with other commands of this type, 'git diff-index' does not
|
||||||
actually look at the contents of the file at all. So maybe
|
actually look at the contents of the file at all. So maybe
|
||||||
`kernel/sched.c` hasn't actually changed, and it's just that you
|
`kernel/sched.c` hasn't actually changed, and it's just that you
|
||||||
touched it. In either case, it's a note that you need to
|
touched it. In either case, it's a note that you need to
|
||||||
'git-update-index' it to make the index be in sync.
|
'git update-index' it to make the index be in sync.
|
||||||
|
|
||||||
NOTE: You can have a mixture of files show up as "has been updated"
|
NOTE: You can have a mixture of files show up as "has been updated"
|
||||||
and "is still dirty in the working directory" together. You can always
|
and "is still dirty in the working directory" together. You can always
|
||||||
|
|
|
@ -20,7 +20,7 @@ Compares the content and mode of the blobs found via two tree objects.
|
||||||
If there is only one <tree-ish> given, the commit is compared with its parents
|
If there is only one <tree-ish> given, the commit is compared with its parents
|
||||||
(see --stdin below).
|
(see --stdin below).
|
||||||
|
|
||||||
Note that 'git-diff-tree' can use the tree encapsulated in a commit object.
|
Note that 'git diff-tree' can use the tree encapsulated in a commit object.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
|
@ -67,25 +67,25 @@ The following flags further affect the behavior when comparing
|
||||||
commits (but not trees).
|
commits (but not trees).
|
||||||
|
|
||||||
-m::
|
-m::
|
||||||
By default, 'git-diff-tree --stdin' does not show
|
By default, 'git diff-tree --stdin' does not show
|
||||||
differences for merge commits. With this flag, it shows
|
differences for merge commits. With this flag, it shows
|
||||||
differences to that commit from all of its parents. See
|
differences to that commit from all of its parents. See
|
||||||
also '-c'.
|
also '-c'.
|
||||||
|
|
||||||
-s::
|
-s::
|
||||||
By default, 'git-diff-tree --stdin' shows differences,
|
By default, 'git diff-tree --stdin' shows differences,
|
||||||
either in machine-readable form (without '-p') or in patch
|
either in machine-readable form (without '-p') or in patch
|
||||||
form (with '-p'). This output can be suppressed. It is
|
form (with '-p'). This output can be suppressed. It is
|
||||||
only useful with '-v' flag.
|
only useful with '-v' flag.
|
||||||
|
|
||||||
-v::
|
-v::
|
||||||
This flag causes 'git-diff-tree --stdin' to also show
|
This flag causes 'git diff-tree --stdin' to also show
|
||||||
the commit message before the differences.
|
the commit message before the differences.
|
||||||
|
|
||||||
include::pretty-options.txt[]
|
include::pretty-options.txt[]
|
||||||
|
|
||||||
--no-commit-id::
|
--no-commit-id::
|
||||||
'git-diff-tree' outputs a line with the commit ID when
|
'git diff-tree' outputs a line with the commit ID when
|
||||||
applicable. This flag suppressed the commit ID output.
|
applicable. This flag suppressed the commit ID output.
|
||||||
|
|
||||||
-c::
|
-c::
|
||||||
|
|
|
@ -157,6 +157,10 @@ $ git diff -R <2>
|
||||||
rewrites (very expensive).
|
rewrites (very expensive).
|
||||||
<2> Output diff in reverse.
|
<2> Output diff in reverse.
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
--------
|
||||||
|
linkgit:git-difftool[1]::
|
||||||
|
Show changes using common diff tools
|
||||||
|
|
||||||
Author
|
Author
|
||||||
------
|
------
|
||||||
|
|
|
@ -7,13 +7,13 @@ git-difftool - Show changes using common diff tools
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git difftool' [--tool=<tool>] [-y|--no-prompt|--prompt] [<'git diff' options>]
|
'git difftool' [<options>] <commit>{0,2} [--] [<path>...]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
'git-difftool' is a git command that allows you to compare and edit files
|
'git difftool' is a git command that allows you to compare and edit files
|
||||||
between revisions using common diff tools. 'git difftool' is a frontend
|
between revisions using common diff tools. 'git difftool' is a frontend
|
||||||
to 'git-diff' and accepts the same options and arguments.
|
to 'git diff' and accepts the same options and arguments.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
|
@ -31,25 +31,25 @@ OPTIONS
|
||||||
Use the diff tool specified by <tool>.
|
Use the diff tool specified by <tool>.
|
||||||
Valid merge tools are:
|
Valid merge tools are:
|
||||||
kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
|
kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
|
||||||
ecmerge, diffuse, opendiff and araxis.
|
ecmerge, diffuse, opendiff, p4merge and araxis.
|
||||||
+
|
+
|
||||||
If a diff tool is not specified, 'git-difftool'
|
If a diff tool is not specified, 'git difftool'
|
||||||
will use the configuration variable `diff.tool`. If the
|
will use the configuration variable `diff.tool`. If the
|
||||||
configuration variable `diff.tool` is not set, 'git-difftool'
|
configuration variable `diff.tool` is not set, 'git difftool'
|
||||||
will pick a suitable default.
|
will pick a suitable default.
|
||||||
+
|
+
|
||||||
You can explicitly provide a full path to the tool by setting the
|
You can explicitly provide a full path to the tool by setting the
|
||||||
configuration variable `difftool.<tool>.path`. For example, you
|
configuration variable `difftool.<tool>.path`. For example, you
|
||||||
can configure the absolute path to kdiff3 by setting
|
can configure the absolute path to kdiff3 by setting
|
||||||
`difftool.kdiff3.path`. Otherwise, 'git-difftool' assumes the
|
`difftool.kdiff3.path`. Otherwise, 'git difftool' assumes the
|
||||||
tool is available in PATH.
|
tool is available in PATH.
|
||||||
+
|
+
|
||||||
Instead of running one of the known diff tools,
|
Instead of running one of the known diff tools,
|
||||||
'git-difftool' can be customized to run an alternative program
|
'git difftool' can be customized to run an alternative program
|
||||||
by specifying the command line to invoke in a configuration
|
by specifying the command line to invoke in a configuration
|
||||||
variable `difftool.<tool>.cmd`.
|
variable `difftool.<tool>.cmd`.
|
||||||
+
|
+
|
||||||
When 'git-difftool' is invoked with this tool (either through the
|
When 'git difftool' is invoked with this tool (either through the
|
||||||
`-t` or `--tool` option or the `diff.tool` configuration variable)
|
`-t` or `--tool` option or the `diff.tool` configuration variable)
|
||||||
the configured command line will be invoked with the following
|
the configured command line will be invoked with the following
|
||||||
variables available: `$LOCAL` is set to the name of the temporary
|
variables available: `$LOCAL` is set to the name of the temporary
|
||||||
|
@ -58,16 +58,31 @@ is set to the name of the temporary file containing the contents
|
||||||
of the diff post-image. `$BASE` is provided for compatibility
|
of the diff post-image. `$BASE` is provided for compatibility
|
||||||
with custom merge tool commands and has the same value as `$LOCAL`.
|
with custom merge tool commands and has the same value as `$LOCAL`.
|
||||||
|
|
||||||
|
-x <command>::
|
||||||
|
--extcmd=<command>::
|
||||||
|
Specify a custom command for viewing diffs.
|
||||||
|
'git-difftool' ignores the configured defaults and runs
|
||||||
|
`$command $LOCAL $REMOTE` when this option is specified.
|
||||||
|
|
||||||
|
-g::
|
||||||
|
--gui::
|
||||||
|
When 'git-difftool' is invoked with the `-g` or `--gui` option
|
||||||
|
the default diff tool will be read from the configured
|
||||||
|
`diff.guitool` variable instead of `diff.tool`.
|
||||||
|
|
||||||
See linkgit:git-diff[1] for the full list of supported options.
|
See linkgit:git-diff[1] for the full list of supported options.
|
||||||
|
|
||||||
CONFIG VARIABLES
|
CONFIG VARIABLES
|
||||||
----------------
|
----------------
|
||||||
'git-difftool' falls back to 'git-mergetool' config variables when the
|
'git difftool' falls back to 'git mergetool' config variables when the
|
||||||
difftool equivalents have not been defined.
|
difftool equivalents have not been defined.
|
||||||
|
|
||||||
diff.tool::
|
diff.tool::
|
||||||
The default diff tool to use.
|
The default diff tool to use.
|
||||||
|
|
||||||
|
diff.guitool::
|
||||||
|
The default diff tool to use when `--gui` is specified.
|
||||||
|
|
||||||
difftool.<tool>.path::
|
difftool.<tool>.path::
|
||||||
Override the path for the given tool. This is useful in case
|
Override the path for the given tool. This is useful in case
|
||||||
your tool is not in the PATH.
|
your tool is not in the PATH.
|
||||||
|
|
|
@ -13,18 +13,18 @@ SYNOPSIS
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
This program dumps the given revisions in a form suitable to be piped
|
This program dumps the given revisions in a form suitable to be piped
|
||||||
into 'git-fast-import'.
|
into 'git fast-import'.
|
||||||
|
|
||||||
You can use it as a human-readable bundle replacement (see
|
You can use it as a human-readable bundle replacement (see
|
||||||
linkgit:git-bundle[1]), or as a kind of an interactive
|
linkgit:git-bundle[1]), or as a kind of an interactive
|
||||||
'git-filter-branch'.
|
'git filter-branch'.
|
||||||
|
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
--progress=<n>::
|
--progress=<n>::
|
||||||
Insert 'progress' statements every <n> objects, to be shown by
|
Insert 'progress' statements every <n> objects, to be shown by
|
||||||
'git-fast-import' during import.
|
'git fast-import' during import.
|
||||||
|
|
||||||
--signed-tags=(verbatim|warn|strip|abort)::
|
--signed-tags=(verbatim|warn|strip|abort)::
|
||||||
Specify how to handle signed tags. Since any transformation
|
Specify how to handle signed tags. Since any transformation
|
||||||
|
@ -37,7 +37,7 @@ unsigned, with 'verbatim', they will be silently exported
|
||||||
and with 'warn', they will be exported, but you will see a warning.
|
and with 'warn', they will be exported, but you will see a warning.
|
||||||
|
|
||||||
--tag-of-filtered-object=(abort|drop|rewrite)::
|
--tag-of-filtered-object=(abort|drop|rewrite)::
|
||||||
Specify how to handle tags whose tagged objectis filtered out.
|
Specify how to handle tags whose tagged object is filtered out.
|
||||||
Since revisions and files to export can be limited by path,
|
Since revisions and files to export can be limited by path,
|
||||||
tagged objects may be filtered completely.
|
tagged objects may be filtered completely.
|
||||||
+
|
+
|
||||||
|
@ -82,9 +82,17 @@ marks the same across runs.
|
||||||
allow that. So fake a tagger to be able to fast-import the
|
allow that. So fake a tagger to be able to fast-import the
|
||||||
output.
|
output.
|
||||||
|
|
||||||
|
--no-data::
|
||||||
|
Skip output of blob objects and instead refer to blobs via
|
||||||
|
their original SHA-1 hash. This is useful when rewriting the
|
||||||
|
directory structure or history of a repository without
|
||||||
|
touching the contents of individual files. Note that the
|
||||||
|
resulting stream can only be used by a repository which
|
||||||
|
already contains the necessary objects.
|
||||||
|
|
||||||
[git-rev-list-args...]::
|
[git-rev-list-args...]::
|
||||||
A list of arguments, acceptable to 'git-rev-parse' and
|
A list of arguments, acceptable to 'git rev-parse' and
|
||||||
'git-rev-list', that specifies the specific objects and references
|
'git rev-list', that specifies the specific objects and references
|
||||||
to export. For example, `master\~10..master` causes the
|
to export. For example, `master\~10..master` causes the
|
||||||
current master reference to be exported along with all objects
|
current master reference to be exported along with all objects
|
||||||
added since its 10th ancestor commit.
|
added since its 10th ancestor commit.
|
||||||
|
@ -117,7 +125,7 @@ referenced by that revision range contains the string
|
||||||
Limitations
|
Limitations
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Since 'git-fast-import' cannot tag trees, you will not be
|
Since 'git fast-import' cannot tag trees, you will not be
|
||||||
able to export the linux-2.6.git repository completely, as it contains
|
able to export the linux-2.6.git repository completely, as it contains
|
||||||
a tag referencing a tree instead of a commit.
|
a tag referencing a tree instead of a commit.
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ DESCRIPTION
|
||||||
This program is usually not what the end user wants to run directly.
|
This program is usually not what the end user wants to run directly.
|
||||||
Most end users want to use one of the existing frontend programs,
|
Most end users want to use one of the existing frontend programs,
|
||||||
which parses a specific type of foreign source and feeds the contents
|
which parses a specific type of foreign source and feeds the contents
|
||||||
stored there to 'git-fast-import'.
|
stored there to 'git fast-import'.
|
||||||
|
|
||||||
fast-import reads a mixed command/data stream from standard input and
|
fast-import reads a mixed command/data stream from standard input and
|
||||||
writes one or more packfiles directly into the current repository.
|
writes one or more packfiles directly into the current repository.
|
||||||
|
@ -24,7 +24,7 @@ updated branch and tag refs, fully updating the current repository
|
||||||
with the newly imported data.
|
with the newly imported data.
|
||||||
|
|
||||||
The fast-import backend itself can import into an empty repository (one that
|
The fast-import backend itself can import into an empty repository (one that
|
||||||
has already been initialized by 'git-init') or incrementally
|
has already been initialized by 'git init') or incrementally
|
||||||
update an existing populated repository. Whether or not incremental
|
update an existing populated repository. Whether or not incremental
|
||||||
imports are supported from a particular foreign source depends on
|
imports are supported from a particular foreign source depends on
|
||||||
the frontend program in use.
|
the frontend program in use.
|
||||||
|
@ -44,11 +44,14 @@ OPTIONS
|
||||||
not contain the old commit).
|
not contain the old commit).
|
||||||
|
|
||||||
--max-pack-size=<n>::
|
--max-pack-size=<n>::
|
||||||
Maximum size of each output packfile, expressed in MiB.
|
Maximum size of each output packfile.
|
||||||
The default is 4096 (4 GiB) as that is the maximum allowed
|
The default is unlimited.
|
||||||
packfile size (due to file format limitations). Some
|
|
||||||
importers may wish to lower this, such as to ensure the
|
--big-file-threshold=<n>::
|
||||||
resulting packfiles fit on CDs.
|
Maximum size of a blob that fast-import will attempt to
|
||||||
|
create a delta for, expressed in bytes. The default is 512m
|
||||||
|
(512 MiB). Some importers may wish to lower this on systems
|
||||||
|
with constrained memory.
|
||||||
|
|
||||||
--depth=<n>::
|
--depth=<n>::
|
||||||
Maximum delta depth, for blob and tree deltification.
|
Maximum delta depth, for blob and tree deltification.
|
||||||
|
@ -75,6 +78,20 @@ OPTIONS
|
||||||
set of marks. If a mark is defined to different values,
|
set of marks. If a mark is defined to different values,
|
||||||
the last file wins.
|
the last file wins.
|
||||||
|
|
||||||
|
--relative-marks::
|
||||||
|
After specifying --relative-marks= the paths specified
|
||||||
|
with --import-marks= and --export-marks= are relative
|
||||||
|
to an internal directory in the current repository.
|
||||||
|
In git-fast-import this means that the paths are relative
|
||||||
|
to the .git/info/fast-import directory. However, other
|
||||||
|
importers may use a different location.
|
||||||
|
|
||||||
|
--no-relative-marks::
|
||||||
|
Negates a previous --relative-marks. Allows for combining
|
||||||
|
relative and non-relative marks by interweaving
|
||||||
|
--(no-)-relative-marks= with the --(import|export)-marks=
|
||||||
|
options.
|
||||||
|
|
||||||
--export-pack-edges=<file>::
|
--export-pack-edges=<file>::
|
||||||
After creating a packfile, print a line of data to
|
After creating a packfile, print a line of data to
|
||||||
<file> listing the filename of the packfile and the last
|
<file> listing the filename of the packfile and the last
|
||||||
|
@ -82,7 +99,7 @@ OPTIONS
|
||||||
This information may be useful after importing projects
|
This information may be useful after importing projects
|
||||||
whose total object set exceeds the 4 GiB packfile limit,
|
whose total object set exceeds the 4 GiB packfile limit,
|
||||||
as these commits can be used as edge points during calls
|
as these commits can be used as edge points during calls
|
||||||
to 'git-pack-objects'.
|
to 'git pack-objects'.
|
||||||
|
|
||||||
--quiet::
|
--quiet::
|
||||||
Disable all non-fatal output, making fast-import silent when it
|
Disable all non-fatal output, making fast-import silent when it
|
||||||
|
@ -124,9 +141,9 @@ an ideal situation, given that most conversion tools are throw-away
|
||||||
|
|
||||||
Parallel Operation
|
Parallel Operation
|
||||||
------------------
|
------------------
|
||||||
Like 'git-push' or 'git-fetch', imports handled by fast-import are safe to
|
Like 'git push' or 'git fetch', imports handled by fast-import are safe to
|
||||||
run alongside parallel `git repack -a -d` or `git gc` invocations,
|
run alongside parallel `git repack -a -d` or `git gc` invocations,
|
||||||
or any other Git operation (including 'git-prune', as loose objects
|
or any other Git operation (including 'git prune', as loose objects
|
||||||
are never used by fast-import).
|
are never used by fast-import).
|
||||||
|
|
||||||
fast-import does not lock the branch or tag refs it is actively importing.
|
fast-import does not lock the branch or tag refs it is actively importing.
|
||||||
|
@ -138,7 +155,7 @@ fast-forward update, fast-import will skip updating that ref and instead
|
||||||
prints a warning message. fast-import will always attempt to update all
|
prints a warning message. fast-import will always attempt to update all
|
||||||
branch refs, and does not stop on the first failure.
|
branch refs, and does not stop on the first failure.
|
||||||
|
|
||||||
Branch updates can be forced with \--force, but its recommended that
|
Branch updates can be forced with \--force, but it's recommended that
|
||||||
this only be used on an otherwise quiet repository. Using \--force
|
this only be used on an otherwise quiet repository. Using \--force
|
||||||
is not necessary for an initial import into an empty repository.
|
is not necessary for an initial import into an empty repository.
|
||||||
|
|
||||||
|
@ -220,7 +237,7 @@ variation in formatting will cause fast-import to reject the value.
|
||||||
+
|
+
|
||||||
An example value is ``Tue Feb 6 11:22:18 2007 -0500''. The Git
|
An example value is ``Tue Feb 6 11:22:18 2007 -0500''. The Git
|
||||||
parser is accurate, but a little on the lenient side. It is the
|
parser is accurate, but a little on the lenient side. It is the
|
||||||
same parser used by 'git-am' when applying patches
|
same parser used by 'git am' when applying patches
|
||||||
received from email.
|
received from email.
|
||||||
+
|
+
|
||||||
Some malformed strings may be accepted as valid dates. In some of
|
Some malformed strings may be accepted as valid dates. In some of
|
||||||
|
@ -253,10 +270,10 @@ is always copied into the identity string at the time it is being
|
||||||
created by fast-import. There is no way to specify a different time or
|
created by fast-import. There is no way to specify a different time or
|
||||||
timezone.
|
timezone.
|
||||||
+
|
+
|
||||||
This particular format is supplied as its short to implement and
|
This particular format is supplied as it's short to implement and
|
||||||
may be useful to a process that wants to create a new commit
|
may be useful to a process that wants to create a new commit
|
||||||
right now, without needing to use a working directory or
|
right now, without needing to use a working directory or
|
||||||
'git-update-index'.
|
'git update-index'.
|
||||||
+
|
+
|
||||||
If separate `author` and `committer` commands are used in a `commit`
|
If separate `author` and `committer` commands are used in a `commit`
|
||||||
the timestamps may not match, as the system clock will be polled
|
the timestamps may not match, as the system clock will be polled
|
||||||
|
@ -303,6 +320,15 @@ and control the current import process. More detailed discussion
|
||||||
standard output. This command is optional and is not needed
|
standard output. This command is optional and is not needed
|
||||||
to perform an import.
|
to perform an import.
|
||||||
|
|
||||||
|
`feature`::
|
||||||
|
Require that fast-import supports the specified feature, or
|
||||||
|
abort if it does not.
|
||||||
|
|
||||||
|
`option`::
|
||||||
|
Specify any of the options listed under OPTIONS that do not
|
||||||
|
change stream semantic to suit the frontend's needs. This
|
||||||
|
command is optional and is not needed to perform an import.
|
||||||
|
|
||||||
`commit`
|
`commit`
|
||||||
~~~~~~~~
|
~~~~~~~~
|
||||||
Create or update a branch with a new commit, recording one logical
|
Create or update a branch with a new commit, recording one logical
|
||||||
|
@ -311,12 +337,12 @@ change to the project.
|
||||||
....
|
....
|
||||||
'commit' SP <ref> LF
|
'commit' SP <ref> LF
|
||||||
mark?
|
mark?
|
||||||
('author' SP <name> SP LT <email> GT SP <when> LF)?
|
('author' (SP <name>)? SP LT <email> GT SP <when> LF)?
|
||||||
'committer' SP <name> SP LT <email> GT SP <when> LF
|
'committer' (SP <name>)? SP LT <email> GT SP <when> LF
|
||||||
data
|
data
|
||||||
('from' SP <committish> LF)?
|
('from' SP <committish> LF)?
|
||||||
('merge' SP <committish> LF)?
|
('merge' SP <committish> LF)?
|
||||||
(filemodify | filedelete | filecopy | filerename | filedeleteall)*
|
(filemodify | filedelete | filecopy | filerename | filedeleteall | notemodify)*
|
||||||
LF?
|
LF?
|
||||||
....
|
....
|
||||||
|
|
||||||
|
@ -339,14 +365,13 @@ commit message use a 0 length data. Commit messages are free-form
|
||||||
and are not interpreted by Git. Currently they must be encoded in
|
and are not interpreted by Git. Currently they must be encoded in
|
||||||
UTF-8, as fast-import does not permit other encodings to be specified.
|
UTF-8, as fast-import does not permit other encodings to be specified.
|
||||||
|
|
||||||
Zero or more `filemodify`, `filedelete`, `filecopy`, `filerename`
|
Zero or more `filemodify`, `filedelete`, `filecopy`, `filerename`,
|
||||||
and `filedeleteall` commands
|
`filedeleteall` and `notemodify` commands
|
||||||
may be included to update the contents of the branch prior to
|
may be included to update the contents of the branch prior to
|
||||||
creating the commit. These commands may be supplied in any order.
|
creating the commit. These commands may be supplied in any order.
|
||||||
However it is recommended that a `filedeleteall` command precede
|
However it is recommended that a `filedeleteall` command precede
|
||||||
all `filemodify`, `filecopy` and `filerename` commands in the same
|
all `filemodify`, `filecopy`, `filerename` and `notemodify` commands in
|
||||||
commit, as `filedeleteall`
|
the same commit, as `filedeleteall` wipes the branch clean (see below).
|
||||||
wipes the branch clean (see below).
|
|
||||||
|
|
||||||
The `LF` after the command is optional (it used to be required).
|
The `LF` after the command is optional (it used to be required).
|
||||||
|
|
||||||
|
@ -398,7 +423,7 @@ quoting or escaping syntax is supported within `<committish>`.
|
||||||
Here `<committish>` is any of the following:
|
Here `<committish>` is any of the following:
|
||||||
|
|
||||||
* The name of an existing branch already in fast-import's internal branch
|
* The name of an existing branch already in fast-import's internal branch
|
||||||
table. If fast-import doesn't know the name, its treated as a SHA-1
|
table. If fast-import doesn't know the name, it's treated as a SHA-1
|
||||||
expression.
|
expression.
|
||||||
|
|
||||||
* A mark reference, `:<idnum>`, where `<idnum>` is the mark number.
|
* A mark reference, `:<idnum>`, where `<idnum>` is the mark number.
|
||||||
|
@ -595,6 +620,40 @@ more memory per active branch (less than 1 MiB for even most large
|
||||||
projects); so frontends that can easily obtain only the affected
|
projects); so frontends that can easily obtain only the affected
|
||||||
paths for a commit are encouraged to do so.
|
paths for a commit are encouraged to do so.
|
||||||
|
|
||||||
|
`notemodify`
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
Included in a `commit` command to add a new note (annotating a given
|
||||||
|
commit) or change the content of an existing note. This command has
|
||||||
|
two different means of specifying the content of the note.
|
||||||
|
|
||||||
|
External data format::
|
||||||
|
The data content for the note was already supplied by a prior
|
||||||
|
`blob` command. The frontend just needs to connect it to the
|
||||||
|
commit that is to be annotated.
|
||||||
|
+
|
||||||
|
....
|
||||||
|
'N' SP <dataref> SP <committish> LF
|
||||||
|
....
|
||||||
|
+
|
||||||
|
Here `<dataref>` can be either a mark reference (`:<idnum>`)
|
||||||
|
set by a prior `blob` command, or a full 40-byte SHA-1 of an
|
||||||
|
existing Git blob object.
|
||||||
|
|
||||||
|
Inline data format::
|
||||||
|
The data content for the note has not been supplied yet.
|
||||||
|
The frontend wants to supply it as part of this modify
|
||||||
|
command.
|
||||||
|
+
|
||||||
|
....
|
||||||
|
'N' SP 'inline' SP <committish> LF
|
||||||
|
data
|
||||||
|
....
|
||||||
|
+
|
||||||
|
See below for a detailed description of the `data` command.
|
||||||
|
|
||||||
|
In both formats `<committish>` is any of the commit specification
|
||||||
|
expressions also accepted by `from` (see above).
|
||||||
|
|
||||||
`mark`
|
`mark`
|
||||||
~~~~~~
|
~~~~~~
|
||||||
Arranges for fast-import to save a reference to the current object, allowing
|
Arranges for fast-import to save a reference to the current object, allowing
|
||||||
|
@ -624,7 +683,7 @@ lightweight (non-annotated) tags see the `reset` command below.
|
||||||
....
|
....
|
||||||
'tag' SP <name> LF
|
'tag' SP <name> LF
|
||||||
'from' SP <committish> LF
|
'from' SP <committish> LF
|
||||||
'tagger' SP <name> SP LT <email> GT SP <when> LF
|
'tagger' (SP <name>)? SP LT <email> GT SP <when> LF
|
||||||
data
|
data
|
||||||
....
|
....
|
||||||
|
|
||||||
|
@ -657,7 +716,7 @@ recommended, as the frontend does not (easily) have access to the
|
||||||
complete set of bytes which normally goes into such a signature.
|
complete set of bytes which normally goes into such a signature.
|
||||||
If signing is required, create lightweight tags from within fast-import with
|
If signing is required, create lightweight tags from within fast-import with
|
||||||
`reset`, then create the annotated versions of those tags offline
|
`reset`, then create the annotated versions of those tags offline
|
||||||
with the standard 'git-tag' process.
|
with the standard 'git tag' process.
|
||||||
|
|
||||||
`reset`
|
`reset`
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
@ -703,7 +762,7 @@ assigned mark.
|
||||||
|
|
||||||
The mark command is optional here as some frontends have chosen
|
The mark command is optional here as some frontends have chosen
|
||||||
to generate the Git SHA-1 for the blob on their own, and feed that
|
to generate the Git SHA-1 for the blob on their own, and feed that
|
||||||
directly to `commit`. This is typically more work than its worth
|
directly to `commit`. This is typically more work than it's worth
|
||||||
however, as marks are inexpensive to store and easy to use.
|
however, as marks are inexpensive to store and easy to use.
|
||||||
|
|
||||||
`data`
|
`data`
|
||||||
|
@ -813,6 +872,62 @@ Placing a `progress` command immediately after a `checkpoint` will
|
||||||
inform the reader when the `checkpoint` has been completed and it
|
inform the reader when the `checkpoint` has been completed and it
|
||||||
can safely access the refs that fast-import updated.
|
can safely access the refs that fast-import updated.
|
||||||
|
|
||||||
|
`feature`
|
||||||
|
~~~~~~~~~
|
||||||
|
Require that fast-import supports the specified feature, or abort if
|
||||||
|
it does not.
|
||||||
|
|
||||||
|
....
|
||||||
|
'feature' SP <feature> LF
|
||||||
|
....
|
||||||
|
|
||||||
|
The <feature> part of the command may be any string matching
|
||||||
|
^[a-zA-Z][a-zA-Z-]*$ and should be understood by fast-import.
|
||||||
|
|
||||||
|
Feature work identical as their option counterparts with the
|
||||||
|
exception of the import-marks feature, see below.
|
||||||
|
|
||||||
|
The following features are currently supported:
|
||||||
|
|
||||||
|
* date-format
|
||||||
|
* import-marks
|
||||||
|
* export-marks
|
||||||
|
* relative-marks
|
||||||
|
* no-relative-marks
|
||||||
|
* force
|
||||||
|
|
||||||
|
The import-marks behaves differently from when it is specified as
|
||||||
|
commandline option in that only one "feature import-marks" is allowed
|
||||||
|
per stream. Also, any --import-marks= specified on the commandline
|
||||||
|
will override those from the stream (if any).
|
||||||
|
|
||||||
|
`option`
|
||||||
|
~~~~~~~~
|
||||||
|
Processes the specified option so that git fast-import behaves in a
|
||||||
|
way that suits the frontend's needs.
|
||||||
|
Note that options specified by the frontend are overridden by any
|
||||||
|
options the user may specify to git fast-import itself.
|
||||||
|
|
||||||
|
....
|
||||||
|
'option' SP <option> LF
|
||||||
|
....
|
||||||
|
|
||||||
|
The `<option>` part of the command may contain any of the options
|
||||||
|
listed in the OPTIONS section that do not change import semantics,
|
||||||
|
without the leading '--' and is treated in the same way.
|
||||||
|
|
||||||
|
Option commands must be the first commands on the input (not counting
|
||||||
|
feature commands), to give an option command after any non-option
|
||||||
|
command is an error.
|
||||||
|
|
||||||
|
The following commandline options change import semantics and may therefore
|
||||||
|
not be passed as option:
|
||||||
|
|
||||||
|
* date-format
|
||||||
|
* import-marks
|
||||||
|
* export-marks
|
||||||
|
* force
|
||||||
|
|
||||||
Crash Reports
|
Crash Reports
|
||||||
-------------
|
-------------
|
||||||
If fast-import is supplied invalid input it will terminate with a
|
If fast-import is supplied invalid input it will terminate with a
|
||||||
|
@ -958,7 +1073,7 @@ is not `refs/heads/TAG_FIXUP`).
|
||||||
|
|
||||||
When committing fixups, consider using `merge` to connect the
|
When committing fixups, consider using `merge` to connect the
|
||||||
commit(s) which are supplying file revisions to the fixup branch.
|
commit(s) which are supplying file revisions to the fixup branch.
|
||||||
Doing so will allow tools such as 'git-blame' to track
|
Doing so will allow tools such as 'git blame' to track
|
||||||
through the real commit history and properly annotate the source
|
through the real commit history and properly annotate the source
|
||||||
files.
|
files.
|
||||||
|
|
||||||
|
@ -987,7 +1102,7 @@ Repacking Historical Data
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
If you are repacking very old imported data (e.g. older than the
|
If you are repacking very old imported data (e.g. older than the
|
||||||
last year), consider expending some extra CPU time and supplying
|
last year), consider expending some extra CPU time and supplying
|
||||||
\--window=50 (or higher) when you run 'git-repack'.
|
\--window=50 (or higher) when you run 'git repack'.
|
||||||
This will take longer, but will also produce a smaller packfile.
|
This will take longer, but will also produce a smaller packfile.
|
||||||
You only need to expend the effort once, and everyone using your
|
You only need to expend the effort once, and everyone using your
|
||||||
project will benefit from the smaller repository.
|
project will benefit from the smaller repository.
|
||||||
|
|
|
@ -12,13 +12,13 @@ SYNOPSIS
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Usually you would want to use 'git-fetch', which is a
|
Usually you would want to use 'git fetch', which is a
|
||||||
higher level wrapper of this command, instead.
|
higher level wrapper of this command, instead.
|
||||||
|
|
||||||
Invokes 'git-upload-pack' on a possibly remote repository
|
Invokes 'git-upload-pack' on a possibly remote repository
|
||||||
and asks it to send objects missing from this repository, to
|
and asks it to send objects missing from this repository, to
|
||||||
update the named heads. The list of commits available locally
|
update the named heads. The list of commits available locally
|
||||||
is found out by scanning local $GIT_DIR/refs/ and sent to
|
is found out by scanning the local refs/ hierarchy and sent to
|
||||||
'git-upload-pack' running on the other end.
|
'git-upload-pack' running on the other end.
|
||||||
|
|
||||||
This command degenerates to download everything to complete the
|
This command degenerates to download everything to complete the
|
||||||
|
@ -33,19 +33,19 @@ OPTIONS
|
||||||
|
|
||||||
-q::
|
-q::
|
||||||
--quiet::
|
--quiet::
|
||||||
Pass '-q' flag to 'git-unpack-objects'; this makes the
|
Pass '-q' flag to 'git unpack-objects'; this makes the
|
||||||
cloning process less verbose.
|
cloning process less verbose.
|
||||||
|
|
||||||
-k::
|
-k::
|
||||||
--keep::
|
--keep::
|
||||||
Do not invoke 'git-unpack-objects' on received data, but
|
Do not invoke 'git unpack-objects' on received data, but
|
||||||
create a single packfile out of it instead, and store it
|
create a single packfile out of it instead, and store it
|
||||||
in the object database. If provided twice then the pack is
|
in the object database. If provided twice then the pack is
|
||||||
locked against repacking.
|
locked against repacking.
|
||||||
|
|
||||||
--thin::
|
--thin::
|
||||||
Spend extra cycles to minimize the number of objects to be sent.
|
Fetch a "thin" pack, which records objects in deltified form based
|
||||||
Use it on slower connection.
|
on objects not included in the pack to reduce network traffic.
|
||||||
|
|
||||||
--include-tag::
|
--include-tag::
|
||||||
If the remote side supports it, annotated tags objects will
|
If the remote side supports it, annotated tags objects will
|
||||||
|
|
|
@ -8,17 +8,23 @@ git-fetch - Download objects and refs from another repository
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git fetch' <options> <repository> <refspec>...
|
'git fetch' [<options>] [<repository> [<refspec>...]]
|
||||||
|
|
||||||
|
'git fetch' [<options>] <group>
|
||||||
|
|
||||||
|
'git fetch' --multiple [<options>] [<repository> | <group>]...
|
||||||
|
|
||||||
|
'git fetch' --all [<options>]
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Fetches named heads or tags from another repository, along with
|
Fetches named heads or tags from one or more other repositories,
|
||||||
the objects necessary to complete them.
|
along with the objects necessary to complete them.
|
||||||
|
|
||||||
The ref names and their object names of fetched refs are stored
|
The ref names and their object names of fetched refs are stored
|
||||||
in `.git/FETCH_HEAD`. This information is left for a later merge
|
in `.git/FETCH_HEAD`. This information is left for a later merge
|
||||||
operation done by 'git-merge'.
|
operation done by 'git merge'.
|
||||||
|
|
||||||
When <refspec> stores the fetched result in tracking branches,
|
When <refspec> stores the fetched result in tracking branches,
|
||||||
the tags that point at these branches are automatically
|
the tags that point at these branches are automatically
|
||||||
|
@ -28,6 +34,10 @@ pointed by remote tags that it does not yet have, then fetch
|
||||||
those missing tags. If the other end has tags that point at
|
those missing tags. If the other end has tags that point at
|
||||||
branches you are not interested in, you will not get them.
|
branches you are not interested in, you will not get them.
|
||||||
|
|
||||||
|
'git fetch' can fetch from either a single named repository, or
|
||||||
|
or from several repositories at once if <group> is given and
|
||||||
|
there is a remotes.<group> entry in the configuration file.
|
||||||
|
(See linkgit:git-config[1]).
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
|
@ -37,6 +47,35 @@ include::pull-fetch-param.txt[]
|
||||||
|
|
||||||
include::urls-remotes.txt[]
|
include::urls-remotes.txt[]
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
|
||||||
|
* Update the remote-tracking branches:
|
||||||
|
+
|
||||||
|
------------------------------------------------
|
||||||
|
$ git fetch origin
|
||||||
|
------------------------------------------------
|
||||||
|
+
|
||||||
|
The above command copies all branches from the remote refs/heads/
|
||||||
|
namespace and stores them to the local refs/remotes/origin/ namespace,
|
||||||
|
unless the branch.<name>.fetch option is used to specify a non-default
|
||||||
|
refspec.
|
||||||
|
|
||||||
|
* Using refspecs explicitly:
|
||||||
|
+
|
||||||
|
------------------------------------------------
|
||||||
|
$ git fetch origin +pu:pu maint:tmp
|
||||||
|
------------------------------------------------
|
||||||
|
+
|
||||||
|
This updates (or creates, as necessary) branches `pu` and `tmp` in
|
||||||
|
the local repository by fetching from the branches (respectively)
|
||||||
|
`pu` and `maint` from the remote repository.
|
||||||
|
+
|
||||||
|
The `pu` branch will be updated even if it is does not fast-forward,
|
||||||
|
because it is prefixed with a plus sign; `tmp` will not be.
|
||||||
|
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
--------
|
--------
|
||||||
linkgit:git-pull[1]
|
linkgit:git-pull[1]
|
||||||
|
|
|
@ -12,6 +12,7 @@ SYNOPSIS
|
||||||
[--index-filter <command>] [--parent-filter <command>]
|
[--index-filter <command>] [--parent-filter <command>]
|
||||||
[--msg-filter <command>] [--commit-filter <command>]
|
[--msg-filter <command>] [--commit-filter <command>]
|
||||||
[--tag-name-filter <command>] [--subdirectory-filter <directory>]
|
[--tag-name-filter <command>] [--subdirectory-filter <directory>]
|
||||||
|
[--prune-empty]
|
||||||
[--original <namespace>] [-d <directory>] [-f | --force]
|
[--original <namespace>] [-d <directory>] [-f | --force]
|
||||||
[--] [<rev-list options>...]
|
[--] [<rev-list options>...]
|
||||||
|
|
||||||
|
@ -115,7 +116,7 @@ OPTIONS
|
||||||
--commit-filter <command>::
|
--commit-filter <command>::
|
||||||
This is the filter for performing the commit.
|
This is the filter for performing the commit.
|
||||||
If this filter is specified, it will be called instead of the
|
If this filter is specified, it will be called instead of the
|
||||||
'git-commit-tree' command, with arguments of the form
|
'git commit-tree' command, with arguments of the form
|
||||||
"<TREE_ID> [-p <PARENT_COMMIT_ID>]..." and the log message on
|
"<TREE_ID> [-p <PARENT_COMMIT_ID>]..." and the log message on
|
||||||
stdin. The commit id is expected on stdout.
|
stdin. The commit id is expected on stdout.
|
||||||
+
|
+
|
||||||
|
@ -126,10 +127,10 @@ have all of them as parents.
|
||||||
You can use the 'map' convenience function in this filter, and other
|
You can use the 'map' convenience function in this filter, and other
|
||||||
convenience functions, too. For example, calling 'skip_commit "$@"'
|
convenience functions, too. For example, calling 'skip_commit "$@"'
|
||||||
will leave out the current commit (but not its changes! If you want
|
will leave out the current commit (but not its changes! If you want
|
||||||
that, use 'git-rebase' instead).
|
that, use 'git rebase' instead).
|
||||||
+
|
+
|
||||||
You can also use the 'git_commit_non_empty_tree "$@"' instead of
|
You can also use the `git_commit_non_empty_tree "$@"` instead of
|
||||||
'git commit-tree "$@"' if you don't wish to keep commits with a single parent
|
`git commit-tree "$@"` if you don't wish to keep commits with a single parent
|
||||||
and that makes no change to the tree.
|
and that makes no change to the tree.
|
||||||
|
|
||||||
--tag-name-filter <command>::
|
--tag-name-filter <command>::
|
||||||
|
@ -158,7 +159,18 @@ to other tags will be rewritten to point to the underlying commit.
|
||||||
--subdirectory-filter <directory>::
|
--subdirectory-filter <directory>::
|
||||||
Only look at the history which touches the given subdirectory.
|
Only look at the history which touches the given subdirectory.
|
||||||
The result will contain that directory (and only that) as its
|
The result will contain that directory (and only that) as its
|
||||||
project root.
|
project root. Implies --remap-to-ancestor.
|
||||||
|
|
||||||
|
--remap-to-ancestor::
|
||||||
|
Rewrite refs to the nearest rewritten ancestor instead of
|
||||||
|
ignoring them.
|
||||||
|
+
|
||||||
|
Normally, positive refs on the command line are only changed if the
|
||||||
|
commit they point to was rewritten. However, you can limit the extent
|
||||||
|
of this rewriting by using linkgit:rev-list[1] arguments, e.g., path
|
||||||
|
limiters. Refs pointing to such excluded commits would then normally
|
||||||
|
be ignored. With this option, they are instead rewritten to point at
|
||||||
|
the nearest ancestor that was not excluded.
|
||||||
|
|
||||||
--prune-empty::
|
--prune-empty::
|
||||||
Some kind of filters will generate empty commits, that left the tree
|
Some kind of filters will generate empty commits, that left the tree
|
||||||
|
@ -167,7 +179,7 @@ to other tags will be rewritten to point to the underlying commit.
|
||||||
and only one parent, it will hence keep merges points. Also, this
|
and only one parent, it will hence keep merges points. Also, this
|
||||||
option is not compatible with the use of '--commit-filter'. Though you
|
option is not compatible with the use of '--commit-filter'. Though you
|
||||||
just need to use the function 'git_commit_non_empty_tree "$@"' instead
|
just need to use the function 'git_commit_non_empty_tree "$@"' instead
|
||||||
of the 'git commit-tree "$@"' idiom in your commit filter to make that
|
of the `git commit-tree "$@"` idiom in your commit filter to make that
|
||||||
happen.
|
happen.
|
||||||
|
|
||||||
--original <namespace>::
|
--original <namespace>::
|
||||||
|
@ -184,15 +196,15 @@ to other tags will be rewritten to point to the underlying commit.
|
||||||
|
|
||||||
-f::
|
-f::
|
||||||
--force::
|
--force::
|
||||||
'git-filter-branch' refuses to start with an existing temporary
|
'git filter-branch' refuses to start with an existing temporary
|
||||||
directory or when there are already refs starting with
|
directory or when there are already refs starting with
|
||||||
'refs/original/', unless forced.
|
'refs/original/', unless forced.
|
||||||
|
|
||||||
<rev-list options>...::
|
<rev-list options>...::
|
||||||
Arguments for 'git-rev-list'. All positive refs included by
|
Arguments for 'git rev-list'. All positive refs included by
|
||||||
these options are rewritten. You may also specify options
|
these options are rewritten. You may also specify options
|
||||||
such as '--all', but you must use '--' to separate them from
|
such as '--all', but you must use '--' to separate them from
|
||||||
the 'git-filter-branch' options.
|
the 'git filter-branch' options.
|
||||||
|
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
|
@ -209,7 +221,7 @@ However, if the file is absent from the tree of some commit,
|
||||||
a simple `rm filename` will fail for that tree and commit.
|
a simple `rm filename` will fail for that tree and commit.
|
||||||
Thus you may instead want to use `rm -f filename` as the script.
|
Thus you may instead want to use `rm -f filename` as the script.
|
||||||
|
|
||||||
Using `\--index-filter` with 'git-rm' yields a significantly faster
|
Using `\--index-filter` with 'git rm' yields a significantly faster
|
||||||
version. Like with using `rm filename`, `git rm --cached filename`
|
version. Like with using `rm filename`, `git rm --cached filename`
|
||||||
will fail if the file is absent from the tree of a commit. If you
|
will fail if the file is absent from the tree of a commit. If you
|
||||||
want to "completely forget" a file, it does not matter when it entered
|
want to "completely forget" a file, it does not matter when it entered
|
||||||
|
@ -291,7 +303,7 @@ and all children of the merge will become merge commits with P1,P2
|
||||||
as their parents instead of the merge commit.
|
as their parents instead of the merge commit.
|
||||||
|
|
||||||
You can rewrite the commit log messages using `--msg-filter`. For
|
You can rewrite the commit log messages using `--msg-filter`. For
|
||||||
example, 'git-svn-id' strings in a repository created by 'git-svn' can
|
example, 'git svn-id' strings in a repository created by 'git svn' can
|
||||||
be removed this way:
|
be removed this way:
|
||||||
|
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
@ -302,7 +314,7 @@ git filter-branch --msg-filter '
|
||||||
|
|
||||||
To restrict rewriting to only part of the history, specify a revision
|
To restrict rewriting to only part of the history, specify a revision
|
||||||
range in addition to the new branch name. The new branch name will
|
range in addition to the new branch name. The new branch name will
|
||||||
point to the top-most revision that a 'git-rev-list' of this range
|
point to the top-most revision that a 'git rev-list' of this range
|
||||||
will print.
|
will print.
|
||||||
|
|
||||||
If you need to add 'Acked-by' lines to, say, the last 10 commits (none
|
If you need to add 'Acked-by' lines to, say, the last 10 commits (none
|
||||||
|
@ -318,7 +330,7 @@ git filter-branch --msg-filter '
|
||||||
*NOTE* the changes introduced by the commits, and which are not reverted
|
*NOTE* the changes introduced by the commits, and which are not reverted
|
||||||
by subsequent commits, will still be in the rewritten branch. If you want
|
by subsequent commits, will still be in the rewritten branch. If you want
|
||||||
to throw out _changes_ together with the commits, you should use the
|
to throw out _changes_ together with the commits, you should use the
|
||||||
interactive mode of 'git-rebase'.
|
interactive mode of 'git rebase'.
|
||||||
|
|
||||||
|
|
||||||
Consider this history:
|
Consider this history:
|
||||||
|
@ -346,7 +358,7 @@ To move the whole tree into a subdirectory, or remove it from there:
|
||||||
|
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
git filter-branch --index-filter \
|
git filter-branch --index-filter \
|
||||||
'git ls-files -s | sed "s-\t-&newsubdir/-" |
|
'git ls-files -s | sed "s-\t\"*-&newsubdir/-" |
|
||||||
GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
|
GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
|
||||||
git update-index --index-info &&
|
git update-index --index-info &&
|
||||||
mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD
|
mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD
|
||||||
|
|
|
@ -16,10 +16,10 @@ DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Takes the list of merged objects on stdin and produces a suitable
|
Takes the list of merged objects on stdin and produces a suitable
|
||||||
commit message to be used for the merge commit, usually to be
|
commit message to be used for the merge commit, usually to be
|
||||||
passed as the '<merge-message>' argument of 'git-merge'.
|
passed as the '<merge-message>' argument of 'git merge'.
|
||||||
|
|
||||||
This script is intended mostly for internal use by scripts
|
This command is intended mostly for internal use by scripts
|
||||||
automatically invoking 'git-merge'.
|
automatically invoking 'git merge'.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
|
|
|
@ -82,10 +82,11 @@ objecttype::
|
||||||
The type of the object (`blob`, `tree`, `commit`, `tag`).
|
The type of the object (`blob`, `tree`, `commit`, `tag`).
|
||||||
|
|
||||||
objectsize::
|
objectsize::
|
||||||
The size of the object (the same as 'git-cat-file -s' reports).
|
The size of the object (the same as 'git cat-file -s' reports).
|
||||||
|
|
||||||
objectname::
|
objectname::
|
||||||
The object name (aka SHA-1).
|
The object name (aka SHA-1).
|
||||||
|
For a non-ambiguous abbreviation of the object name append `:short`.
|
||||||
|
|
||||||
upstream::
|
upstream::
|
||||||
The name of a local ref which can be considered ``upstream''
|
The name of a local ref which can be considered ``upstream''
|
||||||
|
|
|
@ -13,12 +13,13 @@ SYNOPSIS
|
||||||
[--no-thread | --thread[=<style>]]
|
[--no-thread | --thread[=<style>]]
|
||||||
[(--attach|--inline)[=<boundary>] | --no-attach]
|
[(--attach|--inline)[=<boundary>] | --no-attach]
|
||||||
[-s | --signoff]
|
[-s | --signoff]
|
||||||
|
[--signature=<signature> | --no-signature]
|
||||||
[-n | --numbered | -N | --no-numbered]
|
[-n | --numbered | -N | --no-numbered]
|
||||||
[--start-number <n>] [--numbered-files]
|
[--start-number <n>] [--numbered-files]
|
||||||
[--in-reply-to=Message-Id] [--suffix=.<sfx>]
|
[--in-reply-to=Message-Id] [--suffix=.<sfx>]
|
||||||
[--ignore-if-in-upstream]
|
[--ignore-if-in-upstream]
|
||||||
[--subject-prefix=Subject-Prefix]
|
[--subject-prefix=Subject-Prefix]
|
||||||
[--cc=<email>]
|
[--to=<email>] [--cc=<email>]
|
||||||
[--cover-letter]
|
[--cover-letter]
|
||||||
[<common diff options>]
|
[<common diff options>]
|
||||||
[ <since> | <revision range> ]
|
[ <since> | <revision range> ]
|
||||||
|
@ -29,7 +30,7 @@ DESCRIPTION
|
||||||
Prepare each commit with its patch in
|
Prepare each commit with its patch in
|
||||||
one file per commit, formatted to resemble UNIX mailbox format.
|
one file per commit, formatted to resemble UNIX mailbox format.
|
||||||
The output of this command is convenient for e-mail submission or
|
The output of this command is convenient for e-mail submission or
|
||||||
for use with 'git-am'.
|
for use with 'git am'.
|
||||||
|
|
||||||
There are two ways to specify which commits to operate on.
|
There are two ways to specify which commits to operate on.
|
||||||
|
|
||||||
|
@ -43,28 +44,28 @@ There are two ways to specify which commits to operate on.
|
||||||
|
|
||||||
The first rule takes precedence in the case of a single <commit>. To
|
The first rule takes precedence in the case of a single <commit>. To
|
||||||
apply the second rule, i.e., format everything since the beginning of
|
apply the second rule, i.e., format everything since the beginning of
|
||||||
history up until <commit>, use the '\--root' option: "git format-patch
|
history up until <commit>, use the '\--root' option: `git format-patch
|
||||||
\--root <commit>". If you want to format only <commit> itself, you
|
\--root <commit>`. If you want to format only <commit> itself, you
|
||||||
can do this with "git format-patch -1 <commit>".
|
can do this with `git format-patch -1 <commit>`.
|
||||||
|
|
||||||
By default, each output file is numbered sequentially from 1, and uses the
|
By default, each output file is numbered sequentially from 1, and uses the
|
||||||
first line of the commit message (massaged for pathname safety) as
|
first line of the commit message (massaged for pathname safety) as
|
||||||
the filename. With the --numbered-files option, the output file names
|
the filename. With the `--numbered-files` option, the output file names
|
||||||
will only be numbers, without the first line of the commit appended.
|
will only be numbers, without the first line of the commit appended.
|
||||||
The names of the output files are printed to standard
|
The names of the output files are printed to standard
|
||||||
output, unless the --stdout option is specified.
|
output, unless the `--stdout` option is specified.
|
||||||
|
|
||||||
If -o is specified, output files are created in <dir>. Otherwise
|
If `-o` is specified, output files are created in <dir>. Otherwise
|
||||||
they are created in the current working directory.
|
they are created in the current working directory.
|
||||||
|
|
||||||
By default, the subject of a single patch is "[PATCH] First Line" and
|
By default, the subject of a single patch is "[PATCH] First Line" and
|
||||||
the subject when multiple patches are output is "[PATCH n/m] First
|
the subject when multiple patches are output is "[PATCH n/m] First
|
||||||
Line". To force 1/1 to be added for a single patch, use -n. To omit
|
Line". To force 1/1 to be added for a single patch, use `-n`. To omit
|
||||||
patch numbers from the subject, use -N
|
patch numbers from the subject, use `-N`.
|
||||||
|
|
||||||
If given --thread, 'git-format-patch' will generate In-Reply-To and
|
If given `--thread`, `git-format-patch` will generate `In-Reply-To` and
|
||||||
References headers to make the second and subsequent patch mails appear
|
`References` headers to make the second and subsequent patch mails appear
|
||||||
as replies to the first mail; this also generates a Message-Id header to
|
as replies to the first mail; this also generates a `Message-Id` header to
|
||||||
reference.
|
reference.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
|
@ -112,7 +113,7 @@ include::diff-options.txt[]
|
||||||
--attach[=<boundary>]::
|
--attach[=<boundary>]::
|
||||||
Create multipart/mixed attachment, the first part of
|
Create multipart/mixed attachment, the first part of
|
||||||
which is the commit message and the patch itself in the
|
which is the commit message and the patch itself in the
|
||||||
second part, with "Content-Disposition: attachment".
|
second part, with `Content-Disposition: attachment`.
|
||||||
|
|
||||||
--no-attach::
|
--no-attach::
|
||||||
Disable the creation of an attachment, overriding the
|
Disable the creation of an attachment, overriding the
|
||||||
|
@ -121,13 +122,13 @@ include::diff-options.txt[]
|
||||||
--inline[=<boundary>]::
|
--inline[=<boundary>]::
|
||||||
Create multipart/mixed attachment, the first part of
|
Create multipart/mixed attachment, the first part of
|
||||||
which is the commit message and the patch itself in the
|
which is the commit message and the patch itself in the
|
||||||
second part, with "Content-Disposition: inline".
|
second part, with `Content-Disposition: inline`.
|
||||||
|
|
||||||
--thread[=<style>]::
|
--thread[=<style>]::
|
||||||
--no-thread::
|
--no-thread::
|
||||||
Controls addition of In-Reply-To and References headers to
|
Controls addition of `In-Reply-To` and `References` headers to
|
||||||
make the second and subsequent mails appear as replies to the
|
make the second and subsequent mails appear as replies to the
|
||||||
first. Also controls generation of the Message-Id header to
|
first. Also controls generation of the `Message-Id` header to
|
||||||
reference.
|
reference.
|
||||||
+
|
+
|
||||||
The optional <style> argument can be either `shallow` or `deep`.
|
The optional <style> argument can be either `shallow` or `deep`.
|
||||||
|
@ -136,16 +137,16 @@ series, where the head is chosen from the cover letter, the
|
||||||
`\--in-reply-to`, and the first patch mail, in this order. 'deep'
|
`\--in-reply-to`, and the first patch mail, in this order. 'deep'
|
||||||
threading makes every mail a reply to the previous one.
|
threading makes every mail a reply to the previous one.
|
||||||
+
|
+
|
||||||
The default is --no-thread, unless the 'format.thread' configuration
|
The default is `--no-thread`, unless the 'format.thread' configuration
|
||||||
is set. If --thread is specified without a style, it defaults to the
|
is set. If `--thread` is specified without a style, it defaults to the
|
||||||
style specified by 'format.thread' if any, or else `shallow`.
|
style specified by 'format.thread' if any, or else `shallow`.
|
||||||
+
|
+
|
||||||
Beware that the default for 'git send-email' is to thread emails
|
Beware that the default for 'git send-email' is to thread emails
|
||||||
itself. If you want 'git format-patch' to take care of hreading, you
|
itself. If you want `git format-patch` to take care of threading, you
|
||||||
will want to ensure that threading is disabled for 'git send-email'.
|
will want to ensure that threading is disabled for `git send-email`.
|
||||||
|
|
||||||
--in-reply-to=Message-Id::
|
--in-reply-to=Message-Id::
|
||||||
Make the first mail (or all the mails with --no-thread) appear as a
|
Make the first mail (or all the mails with `--no-thread`) appear as a
|
||||||
reply to the given Message-Id, which avoids breaking threads to
|
reply to the given Message-Id, which avoids breaking threads to
|
||||||
provide a new patch series.
|
provide a new patch series.
|
||||||
|
|
||||||
|
@ -160,22 +161,32 @@ will want to ensure that threading is disabled for 'git send-email'.
|
||||||
Instead of the standard '[PATCH]' prefix in the subject
|
Instead of the standard '[PATCH]' prefix in the subject
|
||||||
line, instead use '[<Subject-Prefix>]'. This
|
line, instead use '[<Subject-Prefix>]'. This
|
||||||
allows for useful naming of a patch series, and can be
|
allows for useful naming of a patch series, and can be
|
||||||
combined with the --numbered option.
|
combined with the `--numbered` option.
|
||||||
|
|
||||||
|
--to=<email>::
|
||||||
|
Add a `To:` header to the email headers. This is in addition
|
||||||
|
to any configured headers, and may be used multiple times.
|
||||||
|
|
||||||
--cc=<email>::
|
--cc=<email>::
|
||||||
Add a "Cc:" header to the email headers. This is in addition
|
Add a `Cc:` header to the email headers. This is in addition
|
||||||
to any configured headers, and may be used multiple times.
|
to any configured headers, and may be used multiple times.
|
||||||
|
|
||||||
--add-header=<header>::
|
--add-header=<header>::
|
||||||
Add an arbitrary header to the email headers. This is in addition
|
Add an arbitrary header to the email headers. This is in addition
|
||||||
to any configured headers, and may be used multiple times.
|
to any configured headers, and may be used multiple times.
|
||||||
For example, --add-header="Organization: git-foo"
|
For example, `--add-header="Organization: git-foo"`
|
||||||
|
|
||||||
--cover-letter::
|
--cover-letter::
|
||||||
In addition to the patches, generate a cover letter file
|
In addition to the patches, generate a cover letter file
|
||||||
containing the shortlog and the overall diffstat. You can
|
containing the shortlog and the overall diffstat. You can
|
||||||
fill in a description in the file before sending it out.
|
fill in a description in the file before sending it out.
|
||||||
|
|
||||||
|
--[no]-signature=<signature>::
|
||||||
|
Add a signature to each message produced. Per RFC 3676 the signature
|
||||||
|
is separated from the body by a line with '-- ' on it. If the
|
||||||
|
signature option is omitted the signature defaults to the git version
|
||||||
|
number.
|
||||||
|
|
||||||
--suffix=.<sfx>::
|
--suffix=.<sfx>::
|
||||||
Instead of using `.patch` as the suffix for generated
|
Instead of using `.patch` as the suffix for generated
|
||||||
filenames, use specified suffix. A common alternative is
|
filenames, use specified suffix. A common alternative is
|
||||||
|
@ -202,8 +213,8 @@ CONFIGURATION
|
||||||
-------------
|
-------------
|
||||||
You can specify extra mail header lines to be added to each message,
|
You can specify extra mail header lines to be added to each message,
|
||||||
defaults for the subject prefix and file suffix, number patches when
|
defaults for the subject prefix and file suffix, number patches when
|
||||||
outputting more than one patch, add "Cc:" headers, configure attachments,
|
outputting more than one patch, add "To" or "Cc:" headers, configure
|
||||||
and sign off patches with configuration variables.
|
attachments, and sign off patches with configuration variables.
|
||||||
|
|
||||||
------------
|
------------
|
||||||
[format]
|
[format]
|
||||||
|
@ -211,6 +222,7 @@ and sign off patches with configuration variables.
|
||||||
subjectprefix = CHANGE
|
subjectprefix = CHANGE
|
||||||
suffix = .txt
|
suffix = .txt
|
||||||
numbered = auto
|
numbered = auto
|
||||||
|
to = <email>
|
||||||
cc = <email>
|
cc = <email>
|
||||||
attach [ = mime-boundary-string ]
|
attach [ = mime-boundary-string ]
|
||||||
signoff = true
|
signoff = true
|
||||||
|
@ -221,7 +233,7 @@ EXAMPLES
|
||||||
--------
|
--------
|
||||||
|
|
||||||
* Extract commits between revisions R1 and R2, and apply them on top of
|
* Extract commits between revisions R1 and R2, and apply them on top of
|
||||||
the current branch using 'git-am' to cherry-pick them:
|
the current branch using 'git am' to cherry-pick them:
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git format-patch -k --stdout R1..R2 | git am -3 -k
|
$ git format-patch -k --stdout R1..R2 | git am -3 -k
|
||||||
|
|
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git fsck' [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
|
'git fsck' [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
|
||||||
[--full] [--strict] [--verbose] [--lost-found] [<object>*]
|
[--[no-]full] [--strict] [--verbose] [--lost-found] [<object>*]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
@ -21,7 +21,7 @@ OPTIONS
|
||||||
<object>::
|
<object>::
|
||||||
An object to treat as the head of an unreachability trace.
|
An object to treat as the head of an unreachability trace.
|
||||||
+
|
+
|
||||||
If no objects are given, 'git-fsck' defaults to using the
|
If no objects are given, 'git fsck' defaults to using the
|
||||||
index file, all SHA1 references in .git/refs/*, and all reflogs (unless
|
index file, all SHA1 references in .git/refs/*, and all reflogs (unless
|
||||||
--no-reflogs is given) as heads.
|
--no-reflogs is given) as heads.
|
||||||
|
|
||||||
|
@ -52,7 +52,8 @@ index file, all SHA1 references in .git/refs/*, and all reflogs (unless
|
||||||
or $GIT_DIR/objects/info/alternates,
|
or $GIT_DIR/objects/info/alternates,
|
||||||
and in packed git archives found in $GIT_DIR/objects/pack
|
and in packed git archives found in $GIT_DIR/objects/pack
|
||||||
and corresponding pack subdirectories in alternate
|
and corresponding pack subdirectories in alternate
|
||||||
object pools.
|
object pools. This is now default; you can turn it off
|
||||||
|
with --no-full.
|
||||||
|
|
||||||
--strict::
|
--strict::
|
||||||
Enable more strict checking, namely to catch a file mode
|
Enable more strict checking, namely to catch a file mode
|
||||||
|
@ -84,7 +85,7 @@ So for example
|
||||||
|
|
||||||
will do quite a _lot_ of verification on the tree. There are a few
|
will do quite a _lot_ of verification on the tree. There are a few
|
||||||
extra validity tests to be added (make sure that tree objects are
|
extra validity tests to be added (make sure that tree objects are
|
||||||
sorted properly etc), but on the whole if 'git-fsck' is happy, you
|
sorted properly etc), but on the whole if 'git fsck' is happy, you
|
||||||
do have a valid tree.
|
do have a valid tree.
|
||||||
|
|
||||||
Any corrupt objects you will have to find in backups or other archives
|
Any corrupt objects you will have to find in backups or other archives
|
||||||
|
|
|
@ -15,13 +15,13 @@ DESCRIPTION
|
||||||
Runs a number of housekeeping tasks within the current repository,
|
Runs a number of housekeeping tasks within the current repository,
|
||||||
such as compressing file revisions (to reduce disk space and increase
|
such as compressing file revisions (to reduce disk space and increase
|
||||||
performance) and removing unreachable objects which may have been
|
performance) and removing unreachable objects which may have been
|
||||||
created from prior invocations of 'git-add'.
|
created from prior invocations of 'git add'.
|
||||||
|
|
||||||
Users are encouraged to run this task on a regular basis within
|
Users are encouraged to run this task on a regular basis within
|
||||||
each repository to maintain good disk space utilization and good
|
each repository to maintain good disk space utilization and good
|
||||||
operating performance.
|
operating performance.
|
||||||
|
|
||||||
Some git commands may automatically run 'git-gc'; see the `--auto` flag
|
Some git commands may automatically run 'git gc'; see the `--auto` flag
|
||||||
below for details. If you know what you're doing and all you want is to
|
below for details. If you know what you're doing and all you want is to
|
||||||
disable this behavior permanently without further considerations, just do:
|
disable this behavior permanently without further considerations, just do:
|
||||||
|
|
||||||
|
@ -33,15 +33,15 @@ OPTIONS
|
||||||
-------
|
-------
|
||||||
|
|
||||||
--aggressive::
|
--aggressive::
|
||||||
Usually 'git-gc' runs very quickly while providing good disk
|
Usually 'git gc' runs very quickly while providing good disk
|
||||||
space utilization and performance. This option will cause
|
space utilization and performance. This option will cause
|
||||||
'git-gc' to more aggressively optimize the repository at the expense
|
'git gc' to more aggressively optimize the repository at the expense
|
||||||
of taking much more time. The effects of this optimization are
|
of taking much more time. The effects of this optimization are
|
||||||
persistent, so this option only needs to be used occasionally; every
|
persistent, so this option only needs to be used occasionally; every
|
||||||
few hundred changesets or so.
|
few hundred changesets or so.
|
||||||
|
|
||||||
--auto::
|
--auto::
|
||||||
With this option, 'git-gc' checks whether any housekeeping is
|
With this option, 'git gc' checks whether any housekeeping is
|
||||||
required; if not, it exits without performing any work.
|
required; if not, it exits without performing any work.
|
||||||
Some git commands run `git gc --auto` after performing
|
Some git commands run `git gc --auto` after performing
|
||||||
operations that could create many loose objects.
|
operations that could create many loose objects.
|
||||||
|
@ -50,13 +50,13 @@ Housekeeping is required if there are too many loose objects or
|
||||||
too many packs in the repository. If the number of loose objects
|
too many packs in the repository. If the number of loose objects
|
||||||
exceeds the value of the `gc.auto` configuration variable, then
|
exceeds the value of the `gc.auto` configuration variable, then
|
||||||
all loose objects are combined into a single pack using
|
all loose objects are combined into a single pack using
|
||||||
'git-repack -d -l'. Setting the value of `gc.auto` to 0
|
`git repack -d -l`. Setting the value of `gc.auto` to 0
|
||||||
disables automatic packing of loose objects.
|
disables automatic packing of loose objects.
|
||||||
+
|
+
|
||||||
If the number of packs exceeds the value of `gc.autopacklimit`,
|
If the number of packs exceeds the value of `gc.autopacklimit`,
|
||||||
then existing packs (except those marked with a `.keep` file)
|
then existing packs (except those marked with a `.keep` file)
|
||||||
are consolidated into a single pack by using the `-A` option of
|
are consolidated into a single pack by using the `-A` option of
|
||||||
'git-repack'. Setting `gc.autopacklimit` to 0 disables
|
'git repack'. Setting `gc.autopacklimit` to 0 disables
|
||||||
automatic consolidation of packs.
|
automatic consolidation of packs.
|
||||||
|
|
||||||
--prune=<date>::
|
--prune=<date>::
|
||||||
|
@ -88,6 +88,16 @@ commits prior to the amend or rebase occurring. Since these changes
|
||||||
are not part of the current project most users will want to expire
|
are not part of the current project most users will want to expire
|
||||||
them sooner. This option defaults to '30 days'.
|
them sooner. This option defaults to '30 days'.
|
||||||
|
|
||||||
|
The above two configuration variables can be given to a pattern. For
|
||||||
|
example, this sets non-default expiry values only to remote tracking
|
||||||
|
branches:
|
||||||
|
|
||||||
|
------------
|
||||||
|
[gc "refs/remotes/*"]
|
||||||
|
reflogExpire = never
|
||||||
|
reflogexpireUnreachable = 3 days
|
||||||
|
------------
|
||||||
|
|
||||||
The optional configuration variable 'gc.rerereresolved' indicates
|
The optional configuration variable 'gc.rerereresolved' indicates
|
||||||
how long records of conflicted merge you resolved earlier are
|
how long records of conflicted merge you resolved earlier are
|
||||||
kept. This defaults to 60 days.
|
kept. This defaults to 60 days.
|
||||||
|
@ -97,7 +107,7 @@ how long records of conflicted merge you have not resolved are
|
||||||
kept. This defaults to 15 days.
|
kept. This defaults to 15 days.
|
||||||
|
|
||||||
The optional configuration variable 'gc.packrefs' determines if
|
The optional configuration variable 'gc.packrefs' determines if
|
||||||
'git-gc' runs 'git-pack-refs'. This can be set to "nobare" to enable
|
'git gc' runs 'git pack-refs'. This can be set to "nobare" to enable
|
||||||
it within all non-bare repos or it can be set to a boolean value.
|
it within all non-bare repos or it can be set to a boolean value.
|
||||||
This defaults to true.
|
This defaults to true.
|
||||||
|
|
||||||
|
@ -106,7 +116,7 @@ much time is spent optimizing the delta compression of the objects in
|
||||||
the repository when the --aggressive option is specified. The larger
|
the repository when the --aggressive option is specified. The larger
|
||||||
the value, the more time is spent optimizing the delta compression. See
|
the value, the more time is spent optimizing the delta compression. See
|
||||||
the documentation for the --window' option in linkgit:git-repack[1] for
|
the documentation for the --window' option in linkgit:git-repack[1] for
|
||||||
more details. This defaults to 10.
|
more details. This defaults to 250.
|
||||||
|
|
||||||
The optional configuration variable 'gc.pruneExpire' controls how old
|
The optional configuration variable 'gc.pruneExpire' controls how old
|
||||||
the unreferenced loose objects have to be before they are pruned. The
|
the unreferenced loose objects have to be before they are pruned. The
|
||||||
|
@ -116,17 +126,24 @@ default is "2 weeks ago".
|
||||||
Notes
|
Notes
|
||||||
-----
|
-----
|
||||||
|
|
||||||
'git-gc' tries very hard to be safe about the garbage it collects. In
|
'git gc' tries very hard to be safe about the garbage it collects. In
|
||||||
particular, it will keep not only objects referenced by your current set
|
particular, it will keep not only objects referenced by your current set
|
||||||
of branches and tags, but also objects referenced by the index, remote
|
of branches and tags, but also objects referenced by the index, remote
|
||||||
tracking branches, refs saved by 'git-filter-branch' in
|
tracking branches, refs saved by 'git filter-branch' in
|
||||||
refs/original/, or reflogs (which may references commits in branches
|
refs/original/, or reflogs (which may reference commits in branches
|
||||||
that were later amended or rewound).
|
that were later amended or rewound).
|
||||||
|
|
||||||
If you are expecting some objects to be collected and they aren't, check
|
If you are expecting some objects to be collected and they aren't, check
|
||||||
all of those locations and decide whether it makes sense in your case to
|
all of those locations and decide whether it makes sense in your case to
|
||||||
remove those references.
|
remove those references.
|
||||||
|
|
||||||
|
HOOKS
|
||||||
|
-----
|
||||||
|
|
||||||
|
The 'git gc --auto' command will run the 'pre-auto-gc' hook. See
|
||||||
|
linkgit:githooks[5] for more information.
|
||||||
|
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
--------
|
--------
|
||||||
linkgit:git-prune[1]
|
linkgit:git-prune[1]
|
||||||
|
|
|
@ -14,12 +14,12 @@ SYNOPSIS
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Acts as a filter, extracting the commit ID stored in archives created by
|
Acts as a filter, extracting the commit ID stored in archives created by
|
||||||
'git-archive'. It reads only the first 1024 bytes of input, thus its
|
'git archive'. It reads only the first 1024 bytes of input, thus its
|
||||||
runtime is not influenced by the size of <tarfile> very much.
|
runtime is not influenced by the size of <tarfile> very much.
|
||||||
|
|
||||||
If no commit ID is found, 'git-get-tar-commit-id' quietly exists with a
|
If no commit ID is found, 'git get-tar-commit-id' quietly exists with a
|
||||||
return code of 1. This can happen if <tarfile> had not been created
|
return code of 1. This can happen if <tarfile> had not been created
|
||||||
using 'git-archive' or if the first parameter of 'git-archive' had been
|
using 'git archive' or if the first parameter of 'git archive' had been
|
||||||
a tree ID instead of a commit ID or tag.
|
a tree ID instead of a commit ID or tag.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,31 +9,36 @@ git-grep - Print lines matching a pattern
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git grep' [--cached]
|
'git grep' [-a | --text] [-I] [-i | --ignore-case] [-w | --word-regexp]
|
||||||
[-a | --text] [-I] [-i | --ignore-case] [-w | --word-regexp]
|
|
||||||
[-v | --invert-match] [-h|-H] [--full-name]
|
[-v | --invert-match] [-h|-H] [--full-name]
|
||||||
[-E | --extended-regexp] [-G | --basic-regexp]
|
[-E | --extended-regexp] [-G | --basic-regexp]
|
||||||
[-F | --fixed-strings] [-n]
|
[-F | --fixed-strings] [-n]
|
||||||
[-l | --files-with-matches] [-L | --files-without-match]
|
[-l | --files-with-matches] [-L | --files-without-match]
|
||||||
|
[(-O | --open-files-in-pager) [<pager>]]
|
||||||
[-z | --null]
|
[-z | --null]
|
||||||
[-c | --count] [--all-match]
|
[-c | --count] [--all-match] [-q | --quiet]
|
||||||
[--color | --no-color]
|
[--max-depth <depth>]
|
||||||
|
[--color[=<when>] | --no-color]
|
||||||
[-A <post-context>] [-B <pre-context>] [-C <context>]
|
[-A <post-context>] [-B <pre-context>] [-C <context>]
|
||||||
[-f <file>] [-e] <pattern>
|
[-f <file>] [-e] <pattern>
|
||||||
[--and|--or|--not|(|)|-e <pattern>...] [<tree>...]
|
[--and|--or|--not|(|)|-e <pattern>...]
|
||||||
[--] [<path>...]
|
[--cached | --no-index | <tree>...]
|
||||||
|
[--] [<pathspec>...]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Look for specified patterns in the working tree files, blobs
|
Look for specified patterns in the tracked files in the work tree, blobs
|
||||||
registered in the index file, or given tree objects.
|
registered in the index file, or blobs in given tree objects.
|
||||||
|
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
--cached::
|
--cached::
|
||||||
Instead of searching in the working tree files, check
|
Instead of searching tracked files in the working tree, search
|
||||||
the blobs registered in the index file.
|
blobs registered in the index file.
|
||||||
|
|
||||||
|
--no-index::
|
||||||
|
Search files in the current directory, not just those tracked by git.
|
||||||
|
|
||||||
-a::
|
-a::
|
||||||
--text::
|
--text::
|
||||||
|
@ -47,6 +52,10 @@ OPTIONS
|
||||||
-I::
|
-I::
|
||||||
Don't match the pattern in binary files.
|
Don't match the pattern in binary files.
|
||||||
|
|
||||||
|
--max-depth <depth>::
|
||||||
|
For each <pathspec> given on command line, descend at most <depth>
|
||||||
|
levels of directories. A negative value means no limit.
|
||||||
|
|
||||||
-w::
|
-w::
|
||||||
--word-regexp::
|
--word-regexp::
|
||||||
Match the pattern only at word boundary (either begin at the
|
Match the pattern only at word boundary (either begin at the
|
||||||
|
@ -93,8 +102,15 @@ OPTIONS
|
||||||
--files-without-match::
|
--files-without-match::
|
||||||
Instead of showing every matched line, show only the
|
Instead of showing every matched line, show only the
|
||||||
names of files that contain (or do not contain) matches.
|
names of files that contain (or do not contain) matches.
|
||||||
For better compatibility with 'git-diff', --name-only is a
|
For better compatibility with 'git diff', `--name-only` is a
|
||||||
synonym for --files-with-matches.
|
synonym for `--files-with-matches`.
|
||||||
|
|
||||||
|
-O [<pager>]::
|
||||||
|
--open-files-in-pager [<pager>]::
|
||||||
|
Open the matching files in the pager (not the output of 'grep').
|
||||||
|
If the pager happens to be "less" or "vi", and the user
|
||||||
|
specified only one pattern, the first file is positioned at
|
||||||
|
the first match automatically.
|
||||||
|
|
||||||
-z::
|
-z::
|
||||||
--null::
|
--null::
|
||||||
|
@ -106,12 +122,14 @@ OPTIONS
|
||||||
Instead of showing every matched line, show the number of
|
Instead of showing every matched line, show the number of
|
||||||
lines that match.
|
lines that match.
|
||||||
|
|
||||||
--color::
|
--color[=<when>]::
|
||||||
Show colored matches.
|
Show colored matches.
|
||||||
|
The value must be always (the default), never, or auto.
|
||||||
|
|
||||||
--no-color::
|
--no-color::
|
||||||
Turn off match highlighting, even when the configuration file
|
Turn off match highlighting, even when the configuration file
|
||||||
gives the default to color output.
|
gives the default to color output.
|
||||||
|
Same as `--color=never`.
|
||||||
|
|
||||||
-[ABC] <context>::
|
-[ABC] <context>::
|
||||||
Show `context` trailing (`A` -- after), or leading (`B`
|
Show `context` trailing (`A` -- after), or leading (`B`
|
||||||
|
@ -120,7 +138,7 @@ OPTIONS
|
||||||
matches.
|
matches.
|
||||||
|
|
||||||
-<num>::
|
-<num>::
|
||||||
A shortcut for specifying -C<num>.
|
A shortcut for specifying `-C<num>`.
|
||||||
|
|
||||||
-p::
|
-p::
|
||||||
--show-function::
|
--show-function::
|
||||||
|
@ -135,7 +153,7 @@ OPTIONS
|
||||||
|
|
||||||
-e::
|
-e::
|
||||||
The next parameter is the pattern. This option has to be
|
The next parameter is the pattern. This option has to be
|
||||||
used for patterns starting with - and should be used in
|
used for patterns starting with `-` and should be used in
|
||||||
scripts passing user input to grep. Multiple patterns are
|
scripts passing user input to grep. Multiple patterns are
|
||||||
combined by 'or'.
|
combined by 'or'.
|
||||||
|
|
||||||
|
@ -153,16 +171,29 @@ OPTIONS
|
||||||
this flag is specified to limit the match to files that
|
this flag is specified to limit the match to files that
|
||||||
have lines to match all of them.
|
have lines to match all of them.
|
||||||
|
|
||||||
`<tree>...`::
|
-q::
|
||||||
Search blobs in the trees for specified patterns.
|
--quiet::
|
||||||
|
Do not output matched lines; instead, exit with status 0 when
|
||||||
|
there is a match and with non-zero status when there isn't.
|
||||||
|
|
||||||
|
<tree>...::
|
||||||
|
Instead of searching tracked files in the working tree, search
|
||||||
|
blobs in the given trees.
|
||||||
|
|
||||||
\--::
|
\--::
|
||||||
Signals the end of options; the rest of the parameters
|
Signals the end of options; the rest of the parameters
|
||||||
are <path> limiters.
|
are <pathspec> limiters.
|
||||||
|
|
||||||
|
<pathspec>...::
|
||||||
|
If given, limit the search to paths matching at least one pattern.
|
||||||
|
Both leading paths match and glob(7) patterns are supported.
|
||||||
|
|
||||||
Example
|
Examples
|
||||||
-------
|
--------
|
||||||
|
|
||||||
|
git grep 'time_t' \-- '*.[ch]'::
|
||||||
|
Looks for `time_t` in all tracked .c and .h files in the working
|
||||||
|
directory and its subdirectories.
|
||||||
|
|
||||||
git grep -e \'#define\' --and \( -e MAX_PATH -e PATH_MAX \)::
|
git grep -e \'#define\' --and \( -e MAX_PATH -e PATH_MAX \)::
|
||||||
Looks for a line that has `#define` and either `MAX_PATH` or
|
Looks for a line that has `#define` and either `MAX_PATH` or
|
||||||
|
|
|
@ -11,19 +11,19 @@ SYNOPSIS
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
A Tcl/Tk based graphical user interface to Git. 'git-gui' focuses
|
A Tcl/Tk based graphical user interface to Git. 'git gui' focuses
|
||||||
on allowing users to make changes to their repository by making
|
on allowing users to make changes to their repository by making
|
||||||
new commits, amending existing ones, creating branches, performing
|
new commits, amending existing ones, creating branches, performing
|
||||||
local merges, and fetching/pushing to remote repositories.
|
local merges, and fetching/pushing to remote repositories.
|
||||||
|
|
||||||
Unlike 'gitk', 'git-gui' focuses on commit generation
|
Unlike 'gitk', 'git gui' focuses on commit generation
|
||||||
and single file annotation and does not show project history.
|
and single file annotation and does not show project history.
|
||||||
It does however supply menu actions to start a 'gitk' session from
|
It does however supply menu actions to start a 'gitk' session from
|
||||||
within 'git-gui'.
|
within 'git gui'.
|
||||||
|
|
||||||
'git-gui' is known to work on all popular UNIX systems, Mac OS X,
|
'git gui' is known to work on all popular UNIX systems, Mac OS X,
|
||||||
and Windows (under both Cygwin and MSYS). To the extent possible
|
and Windows (under both Cygwin and MSYS). To the extent possible
|
||||||
OS specific user interface guidelines are followed, making 'git-gui'
|
OS specific user interface guidelines are followed, making 'git gui'
|
||||||
a fairly native interface for users.
|
a fairly native interface for users.
|
||||||
|
|
||||||
COMMANDS
|
COMMANDS
|
||||||
|
@ -38,13 +38,13 @@ browser::
|
||||||
browser are opened in the blame viewer.
|
browser are opened in the blame viewer.
|
||||||
|
|
||||||
citool::
|
citool::
|
||||||
Start 'git-gui' and arrange to make exactly one commit before
|
Start 'git gui' and arrange to make exactly one commit before
|
||||||
exiting and returning to the shell. The interface is limited
|
exiting and returning to the shell. The interface is limited
|
||||||
to only commit actions, slightly reducing the application's
|
to only commit actions, slightly reducing the application's
|
||||||
startup time and simplifying the menubar.
|
startup time and simplifying the menubar.
|
||||||
|
|
||||||
version::
|
version::
|
||||||
Display the currently running version of 'git-gui'.
|
Display the currently running version of 'git gui'.
|
||||||
|
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
|
@ -103,15 +103,15 @@ SEE ALSO
|
||||||
linkgit:gitk[1]::
|
linkgit:gitk[1]::
|
||||||
The git repository browser. Shows branches, commit history
|
The git repository browser. Shows branches, commit history
|
||||||
and file differences. gitk is the utility started by
|
and file differences. gitk is the utility started by
|
||||||
'git-gui''s Repository Visualize actions.
|
'git gui''s Repository Visualize actions.
|
||||||
|
|
||||||
Other
|
Other
|
||||||
-----
|
-----
|
||||||
'git-gui' is actually maintained as an independent project, but stable
|
'git gui' is actually maintained as an independent project, but stable
|
||||||
versions are distributed as part of the Git suite for the convenience
|
versions are distributed as part of the Git suite for the convenience
|
||||||
of end users.
|
of end users.
|
||||||
|
|
||||||
A 'git-gui' development repository can be obtained from:
|
A 'git gui' development repository can be obtained from:
|
||||||
|
|
||||||
git clone git://repo.or.cz/git-gui.git
|
git clone git://repo.or.cz/git-gui.git
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git hash-object' [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin] [--] <file>...
|
'git hash-object' [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin] [--] <file>...
|
||||||
'git hash-object' [-t <type>] [-w] --stdin-paths < <list-of-paths>
|
'git hash-object' [-t <type>] [-w] --stdin-paths [--no-filters] < <list-of-paths>
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
@ -18,7 +18,7 @@ Computes the object ID value for an object with specified type
|
||||||
with the contents of the named file (which can be outside of the
|
with the contents of the named file (which can be outside of the
|
||||||
work tree), and optionally writes the resulting object into the
|
work tree), and optionally writes the resulting object into the
|
||||||
object database. Reports its object ID to its standard output.
|
object database. Reports its object ID to its standard output.
|
||||||
This is used by 'git-cvsimport' to update the index
|
This is used by 'git cvsimport' to update the index
|
||||||
without modifying files in the work tree. When <type> is not
|
without modifying files in the work tree. When <type> is not
|
||||||
specified, it defaults to "blob".
|
specified, it defaults to "blob".
|
||||||
|
|
||||||
|
|
|
@ -55,8 +55,8 @@ other display programs (see below).
|
||||||
+
|
+
|
||||||
The web browser can be specified using the configuration variable
|
The web browser can be specified using the configuration variable
|
||||||
'help.browser', or 'web.browser' if the former is not set. If none of
|
'help.browser', or 'web.browser' if the former is not set. If none of
|
||||||
these config variables is set, the 'git-web--browse' helper script
|
these config variables is set, the 'git web--browse' helper script
|
||||||
(called by 'git-help') will pick a suitable default. See
|
(called by 'git help') will pick a suitable default. See
|
||||||
linkgit:git-web--browse[1] for more information about this.
|
linkgit:git-web--browse[1] for more information about this.
|
||||||
|
|
||||||
CONFIGURATION VARIABLES
|
CONFIGURATION VARIABLES
|
||||||
|
@ -67,7 +67,7 @@ help.format
|
||||||
|
|
||||||
If no command line option is passed, the 'help.format' configuration
|
If no command line option is passed, the 'help.format' configuration
|
||||||
variable will be checked. The following values are supported for this
|
variable will be checked. The following values are supported for this
|
||||||
variable; they make 'git-help' behave as their corresponding command
|
variable; they make 'git help' behave as their corresponding command
|
||||||
line option:
|
line option:
|
||||||
|
|
||||||
* "man" corresponds to '-m|--man',
|
* "man" corresponds to '-m|--man',
|
||||||
|
@ -122,7 +122,7 @@ man.<tool>.path
|
||||||
You can explicitly provide a full path to your preferred man viewer by
|
You can explicitly provide a full path to your preferred man viewer by
|
||||||
setting the configuration variable 'man.<tool>.path'. For example, you
|
setting the configuration variable 'man.<tool>.path'. For example, you
|
||||||
can configure the absolute path to konqueror by setting
|
can configure the absolute path to konqueror by setting
|
||||||
'man.konqueror.path'. Otherwise, 'git-help' assumes the tool is
|
'man.konqueror.path'. Otherwise, 'git help' assumes the tool is
|
||||||
available in PATH.
|
available in PATH.
|
||||||
|
|
||||||
man.<tool>.cmd
|
man.<tool>.cmd
|
||||||
|
|
188
Documentation/git-http-backend.txt
Normal file
188
Documentation/git-http-backend.txt
Normal file
|
@ -0,0 +1,188 @@
|
||||||
|
git-http-backend(1)
|
||||||
|
===================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
git-http-backend - Server side implementation of Git over HTTP
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
--------
|
||||||
|
[verse]
|
||||||
|
'git http-backend'
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
A simple CGI program to serve the contents of a Git repository to Git
|
||||||
|
clients accessing the repository over http:// and https:// protocols.
|
||||||
|
The program supports clients fetching using both the smart HTTP protocol
|
||||||
|
and the backwards-compatible dumb HTTP protocol, as well as clients
|
||||||
|
pushing using the smart HTTP protocol.
|
||||||
|
|
||||||
|
It verifies that the directory has the magic file
|
||||||
|
"git-daemon-export-ok", and it will refuse to export any git directory
|
||||||
|
that hasn't explicitly been marked for export this way (unless the
|
||||||
|
GIT_HTTP_EXPORT_ALL environmental variable is set).
|
||||||
|
|
||||||
|
By default, only the `upload-pack` service is enabled, which serves
|
||||||
|
'git fetch-pack' and 'git ls-remote' clients, which are invoked from
|
||||||
|
'git fetch', 'git pull', and 'git clone'. If the client is authenticated,
|
||||||
|
the `receive-pack` service is enabled, which serves 'git send-pack'
|
||||||
|
clients, which is invoked from 'git push'.
|
||||||
|
|
||||||
|
SERVICES
|
||||||
|
--------
|
||||||
|
These services can be enabled/disabled using the per-repository
|
||||||
|
configuration file:
|
||||||
|
|
||||||
|
http.getanyfile::
|
||||||
|
This serves Git clients older than version 1.6.6 that are unable to use the
|
||||||
|
upload pack service. When enabled, clients are able to read
|
||||||
|
any file within the repository, including objects that are
|
||||||
|
no longer reachable from a branch but are still present.
|
||||||
|
It is enabled by default, but a repository can disable it
|
||||||
|
by setting this configuration item to `false`.
|
||||||
|
|
||||||
|
http.uploadpack::
|
||||||
|
This serves 'git fetch-pack' and 'git ls-remote' clients.
|
||||||
|
It is enabled by default, but a repository can disable it
|
||||||
|
by setting this configuration item to `false`.
|
||||||
|
|
||||||
|
http.receivepack::
|
||||||
|
This serves 'git send-pack' clients, allowing push. It is
|
||||||
|
disabled by default for anonymous users, and enabled by
|
||||||
|
default for users authenticated by the web server. It can be
|
||||||
|
disabled by setting this item to `false`, or enabled for all
|
||||||
|
users, including anonymous users, by setting it to `true`.
|
||||||
|
|
||||||
|
URL TRANSLATION
|
||||||
|
---------------
|
||||||
|
To determine the location of the repository on disk, 'git http-backend'
|
||||||
|
concatenates the environment variables PATH_INFO, which is set
|
||||||
|
automatically by the web server, and GIT_PROJECT_ROOT, which must be set
|
||||||
|
manually in the web server configuration. If GIT_PROJECT_ROOT is not
|
||||||
|
set, 'git http-backend' reads PATH_TRANSLATED, which is also set
|
||||||
|
automatically by the web server.
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
--------
|
||||||
|
All of the following examples map 'http://$hostname/git/foo/bar.git'
|
||||||
|
to '/var/www/git/foo/bar.git'.
|
||||||
|
|
||||||
|
Apache 2.x::
|
||||||
|
Ensure mod_cgi, mod_alias, and mod_env are enabled, set
|
||||||
|
GIT_PROJECT_ROOT (or DocumentRoot) appropriately, and
|
||||||
|
create a ScriptAlias to the CGI:
|
||||||
|
+
|
||||||
|
----------------------------------------------------------------
|
||||||
|
SetEnv GIT_PROJECT_ROOT /var/www/git
|
||||||
|
SetEnv GIT_HTTP_EXPORT_ALL
|
||||||
|
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
|
||||||
|
----------------------------------------------------------------
|
||||||
|
+
|
||||||
|
To enable anonymous read access but authenticated write access,
|
||||||
|
require authorization with a LocationMatch directive:
|
||||||
|
+
|
||||||
|
----------------------------------------------------------------
|
||||||
|
<LocationMatch "^/git/.*/git-receive-pack$">
|
||||||
|
AuthType Basic
|
||||||
|
AuthName "Git Access"
|
||||||
|
Require group committers
|
||||||
|
...
|
||||||
|
</LocationMatch>
|
||||||
|
----------------------------------------------------------------
|
||||||
|
+
|
||||||
|
To require authentication for both reads and writes, use a Location
|
||||||
|
directive around the repository, or one of its parent directories:
|
||||||
|
+
|
||||||
|
----------------------------------------------------------------
|
||||||
|
<Location /git/private>
|
||||||
|
AuthType Basic
|
||||||
|
AuthName "Private Git Access"
|
||||||
|
Require group committers
|
||||||
|
...
|
||||||
|
</Location>
|
||||||
|
----------------------------------------------------------------
|
||||||
|
+
|
||||||
|
To serve gitweb at the same url, use a ScriptAliasMatch to only
|
||||||
|
those URLs that 'git http-backend' can handle, and forward the
|
||||||
|
rest to gitweb:
|
||||||
|
+
|
||||||
|
----------------------------------------------------------------
|
||||||
|
ScriptAliasMatch \
|
||||||
|
"(?x)^/git/(.*/(HEAD | \
|
||||||
|
info/refs | \
|
||||||
|
objects/(info/[^/]+ | \
|
||||||
|
[0-9a-f]{2}/[0-9a-f]{38} | \
|
||||||
|
pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
|
||||||
|
git-(upload|receive)-pack))$" \
|
||||||
|
/usr/libexec/git-core/git-http-backend/$1
|
||||||
|
|
||||||
|
ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
Accelerated static Apache 2.x::
|
||||||
|
Similar to the above, but Apache can be used to return static
|
||||||
|
files that are stored on disk. On many systems this may
|
||||||
|
be more efficient as Apache can ask the kernel to copy the
|
||||||
|
file contents from the file system directly to the network:
|
||||||
|
+
|
||||||
|
----------------------------------------------------------------
|
||||||
|
SetEnv GIT_PROJECT_ROOT /var/www/git
|
||||||
|
|
||||||
|
AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1
|
||||||
|
AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1
|
||||||
|
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
|
||||||
|
----------------------------------------------------------------
|
||||||
|
+
|
||||||
|
This can be combined with the gitweb configuration:
|
||||||
|
+
|
||||||
|
----------------------------------------------------------------
|
||||||
|
SetEnv GIT_PROJECT_ROOT /var/www/git
|
||||||
|
|
||||||
|
AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1
|
||||||
|
AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1
|
||||||
|
ScriptAliasMatch \
|
||||||
|
"(?x)^/git/(.*/(HEAD | \
|
||||||
|
info/refs | \
|
||||||
|
objects/info/[^/]+ | \
|
||||||
|
git-(upload|receive)-pack))$" \
|
||||||
|
/usr/libexec/git-core/git-http-backend/$1
|
||||||
|
ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
ENVIRONMENT
|
||||||
|
-----------
|
||||||
|
'git http-backend' relies upon the CGI environment variables set
|
||||||
|
by the invoking web server, including:
|
||||||
|
|
||||||
|
* PATH_INFO (if GIT_PROJECT_ROOT is set, otherwise PATH_TRANSLATED)
|
||||||
|
* REMOTE_USER
|
||||||
|
* REMOTE_ADDR
|
||||||
|
* CONTENT_TYPE
|
||||||
|
* QUERY_STRING
|
||||||
|
* REQUEST_METHOD
|
||||||
|
|
||||||
|
The GIT_HTTP_EXPORT_ALL environmental variable may be passed to
|
||||||
|
'git-http-backend' to bypass the check for the "git-daemon-export-ok"
|
||||||
|
file in each repository before allowing export of that repository.
|
||||||
|
|
||||||
|
The backend process sets GIT_COMMITTER_NAME to '$REMOTE_USER' and
|
||||||
|
GIT_COMMITTER_EMAIL to '$\{REMOTE_USER}@http.$\{REMOTE_ADDR\}',
|
||||||
|
ensuring that any reflogs created by 'git-receive-pack' contain some
|
||||||
|
identifying information of the remote user who performed the push.
|
||||||
|
|
||||||
|
All CGI environment variables are available to each of the hooks
|
||||||
|
invoked by the 'git-receive-pack'.
|
||||||
|
|
||||||
|
Author
|
||||||
|
------
|
||||||
|
Written by Shawn O. Pearce <spearce@spearce.org>.
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
--------------
|
||||||
|
Documentation by Shawn O. Pearce <spearce@spearce.org>.
|
||||||
|
|
||||||
|
GIT
|
||||||
|
---
|
||||||
|
Part of the linkgit:git[1] suite
|
|
@ -35,7 +35,7 @@ commit-id::
|
||||||
|
|
||||||
--stdin::
|
--stdin::
|
||||||
Instead of a commit id on the command line (which is not expected in this
|
Instead of a commit id on the command line (which is not expected in this
|
||||||
case), 'git-http-fetch' expects lines on stdin in the format
|
case), 'git http-fetch' expects lines on stdin in the format
|
||||||
|
|
||||||
<commit-id>['\t'<filename-as-in--w>]
|
<commit-id>['\t'<filename-as-in--w>]
|
||||||
|
|
||||||
|
|
|
@ -82,11 +82,11 @@ destination side.
|
||||||
|
|
||||||
Without '--force', the <src> ref is stored at the remote only if
|
Without '--force', the <src> ref is stored at the remote only if
|
||||||
<dst> does not exist, or <dst> is a proper subset (i.e. an
|
<dst> does not exist, or <dst> is a proper subset (i.e. an
|
||||||
ancestor) of <src>. This check, known as "fast forward check",
|
ancestor) of <src>. This check, known as "fast-forward check",
|
||||||
is performed in order to avoid accidentally overwriting the
|
is performed in order to avoid accidentally overwriting the
|
||||||
remote ref and lose other peoples' commits from there.
|
remote ref and lose other peoples' commits from there.
|
||||||
|
|
||||||
With '--force', the fast forward check is disabled for all refs.
|
With '--force', the fast-forward check is disabled for all refs.
|
||||||
|
|
||||||
Optionally, a <ref> parameter can be prefixed with a plus '+' sign
|
Optionally, a <ref> parameter can be prefixed with a plus '+' sign
|
||||||
to disable the fast-forward check only on that ref.
|
to disable the fast-forward check only on that ref.
|
||||||
|
|
|
@ -13,10 +13,12 @@ SYNOPSIS
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
This command uploads a mailbox generated with 'git-format-patch'
|
This command uploads a mailbox generated with 'git format-patch'
|
||||||
into an IMAP drafts folder. This allows patches to be sent as
|
into an IMAP drafts folder. This allows patches to be sent as
|
||||||
other email is when using mail clients that cannot read mailbox
|
other email is when using mail clients that cannot read mailbox
|
||||||
files directly.
|
files directly. The command also works with any general mailbox
|
||||||
|
in which emails have the fields "From", "Date", and "Subject" in
|
||||||
|
that order.
|
||||||
|
|
||||||
Typical usage is something like:
|
Typical usage is something like:
|
||||||
|
|
||||||
|
@ -71,6 +73,10 @@ imap.preformattedHTML::
|
||||||
option causes Thunderbird to send the patch as a plain/text,
|
option causes Thunderbird to send the patch as a plain/text,
|
||||||
format=fixed email. Default is `false`.
|
format=fixed email. Default is `false`.
|
||||||
|
|
||||||
|
imap.authMethod::
|
||||||
|
Specify authenticate method for authentication with IMAP server.
|
||||||
|
Current supported method is 'CRAM-MD5' only.
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
~~~~~~~~
|
~~~~~~~~
|
||||||
|
|
||||||
|
@ -118,12 +124,6 @@ Thunderbird in particular is known to be problematic. Thunderbird
|
||||||
users may wish to visit this web page for more information:
|
users may wish to visit this web page for more information:
|
||||||
http://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email
|
http://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email
|
||||||
|
|
||||||
|
|
||||||
BUGS
|
|
||||||
----
|
|
||||||
Doesn't handle lines starting with "From " in the message body.
|
|
||||||
|
|
||||||
|
|
||||||
Author
|
Author
|
||||||
------
|
------
|
||||||
Derived from isync 1.0.1 by Mike McCormack.
|
Derived from isync 1.0.1 by Mike McCormack.
|
||||||
|
|
|
@ -43,23 +43,19 @@ OPTIONS
|
||||||
a default name determined from the pack content. If
|
a default name determined from the pack content. If
|
||||||
<pack-file> is not specified consider using --keep to
|
<pack-file> is not specified consider using --keep to
|
||||||
prevent a race condition between this process and
|
prevent a race condition between this process and
|
||||||
'git-repack'.
|
'git repack'.
|
||||||
|
|
||||||
--fix-thin::
|
--fix-thin::
|
||||||
It is possible for 'git-pack-objects' to build
|
Fix a "thin" pack produced by `git pack-objects --thin` (see
|
||||||
"thin" pack, which records objects in deltified form based on
|
linkgit:git-pack-objects[1] for details) by adding the
|
||||||
objects not included in the pack to reduce network traffic.
|
excluded objects the deltified objects are based on to the
|
||||||
Those objects are expected to be present on the receiving end
|
pack. This option only makes sense in conjunction with --stdin.
|
||||||
and they must be included in the pack for that pack to be self
|
|
||||||
contained and indexable. Without this option any attempt to
|
|
||||||
index a thin pack will fail. This option only makes sense in
|
|
||||||
conjunction with --stdin.
|
|
||||||
|
|
||||||
--keep::
|
--keep::
|
||||||
Before moving the index into its final destination
|
Before moving the index into its final destination
|
||||||
create an empty .keep file for the associated pack file.
|
create an empty .keep file for the associated pack file.
|
||||||
This option is usually necessary with --stdin to prevent a
|
This option is usually necessary with --stdin to prevent a
|
||||||
simultaneous 'git-repack' process from deleting
|
simultaneous 'git repack' process from deleting
|
||||||
the newly constructed pack and index before refs can be
|
the newly constructed pack and index before refs can be
|
||||||
updated to use objects contained in the pack.
|
updated to use objects contained in the pack.
|
||||||
|
|
||||||
|
@ -86,7 +82,7 @@ Once the index has been created, the list of object names is sorted
|
||||||
and the SHA1 hash of that list is printed to stdout. If --stdin was
|
and the SHA1 hash of that list is printed to stdout. If --stdin was
|
||||||
also used then this is prefixed by either "pack\t", or "keep\t" if a
|
also used then this is prefixed by either "pack\t", or "keep\t" if a
|
||||||
new .keep file was successfully created. This is useful to remove a
|
new .keep file was successfully created. This is useful to remove a
|
||||||
.keep file used as a lock to prevent the race with 'git-repack'
|
.keep file used as a lock to prevent the race with 'git repack'
|
||||||
mentioned above.
|
mentioned above.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ git-init-db - Creates an empty git repository
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git init-db' [-q | --quiet] [--template=<template_directory>] [--shared[=<permissions>]]
|
'git init-db' [-q | --quiet] [--bare] [--template=<template_directory>] [--shared[=<permissions>]]
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
|
|
|
@ -8,7 +8,7 @@ git-init - Create an empty git repository or reinitialize an existing one
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git init' [-q | --quiet] [--bare] [--template=<template_directory>] [--shared[=<permissions>]]
|
'git init' [-q | --quiet] [--bare] [--template=<template_directory>] [--shared[=<permissions>]] [directory]
|
||||||
|
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
|
@ -28,14 +28,8 @@ current working directory.
|
||||||
|
|
||||||
--template=<template_directory>::
|
--template=<template_directory>::
|
||||||
|
|
||||||
Provide the directory from which templates will be used. The default template
|
Specify the directory from which templates will be used. (See the "TEMPLATE
|
||||||
directory is `/usr/share/git-core/templates`.
|
DIRECTORY" section below.)
|
||||||
|
|
||||||
When specified, `<template_directory>` is used as the source of the template
|
|
||||||
files rather than the default. The template files include some directory
|
|
||||||
structure, some suggested "exclude patterns", and copies of non-executing
|
|
||||||
"hook" files. The suggested patterns and hook files are all modifiable and
|
|
||||||
extensible.
|
|
||||||
|
|
||||||
--shared[={false|true|umask|group|all|world|everybody|0xxx}]::
|
--shared[={false|true|umask|group|all|world|everybody|0xxx}]::
|
||||||
|
|
||||||
|
@ -74,6 +68,9 @@ By default, the configuration flag receive.denyNonFastForwards is enabled
|
||||||
in shared repositories, so that you cannot force a non fast-forwarding push
|
in shared repositories, so that you cannot force a non fast-forwarding push
|
||||||
into it.
|
into it.
|
||||||
|
|
||||||
|
If you name a (possibly non-existent) directory at the end of the command
|
||||||
|
line, the command is run inside the directory (possibly after creating it).
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|
||||||
|
|
||||||
|
@ -92,17 +89,36 @@ If the object storage directory is specified via the `$GIT_OBJECT_DIRECTORY`
|
||||||
environment variable then the sha1 directories are created underneath -
|
environment variable then the sha1 directories are created underneath -
|
||||||
otherwise the default `$GIT_DIR/objects` directory is used.
|
otherwise the default `$GIT_DIR/objects` directory is used.
|
||||||
|
|
||||||
Running 'git-init' in an existing repository is safe. It will not overwrite
|
Running 'git init' in an existing repository is safe. It will not overwrite
|
||||||
things that are already there. The primary reason for rerunning 'git-init'
|
things that are already there. The primary reason for rerunning 'git init'
|
||||||
is to pick up newly added templates.
|
is to pick up newly added templates.
|
||||||
|
|
||||||
Note that 'git-init' is the same as 'git-init-db'. The command
|
Note that 'git init' is the same as 'git init-db'. The command
|
||||||
was primarily meant to initialize the object database, but over
|
was primarily meant to initialize the object database, but over
|
||||||
time it has become responsible for setting up the other aspects
|
time it has become responsible for setting up the other aspects
|
||||||
of the repository, such as installing the default hooks and
|
of the repository, such as installing the default hooks and
|
||||||
setting the configuration variables. The old name is retained
|
setting the configuration variables. The old name is retained
|
||||||
for backward compatibility reasons.
|
for backward compatibility reasons.
|
||||||
|
|
||||||
|
TEMPLATE DIRECTORY
|
||||||
|
------------------
|
||||||
|
|
||||||
|
The template directory contains files and directories that will be copied to
|
||||||
|
the `$GIT_DIR` after it is created.
|
||||||
|
|
||||||
|
The template directory used will (in order):
|
||||||
|
|
||||||
|
- The argument given with the `--template` option.
|
||||||
|
|
||||||
|
- The contents of the `$GIT_TEMPLATE_DIR` environment variable.
|
||||||
|
|
||||||
|
- The `init.templatedir` configuration variable.
|
||||||
|
|
||||||
|
- The default template directory: `/usr/share/git-core/templates`.
|
||||||
|
|
||||||
|
The default template directory includes some directory structure, some
|
||||||
|
suggested "exclude patterns", and copies of sample "hook" files.
|
||||||
|
The suggested patterns and hook files are all modifiable and extensible.
|
||||||
|
|
||||||
EXAMPLES
|
EXAMPLES
|
||||||
--------
|
--------
|
||||||
|
|
|
@ -29,7 +29,7 @@ OPTIONS
|
||||||
The HTTP daemon command-line that will be executed.
|
The HTTP daemon command-line that will be executed.
|
||||||
Command-line options may be specified here, and the
|
Command-line options may be specified here, and the
|
||||||
configuration file will be added at the end of the command-line.
|
configuration file will be added at the end of the command-line.
|
||||||
Currently lighttpd, apache2 and webrick are supported.
|
Currently apache2, lighttpd, mongoose, plackup and webrick are supported.
|
||||||
(Default: lighttpd)
|
(Default: lighttpd)
|
||||||
|
|
||||||
-m::
|
-m::
|
||||||
|
@ -44,7 +44,7 @@ OPTIONS
|
||||||
-b::
|
-b::
|
||||||
--browser::
|
--browser::
|
||||||
The web browser that should be used to view the gitweb
|
The web browser that should be used to view the gitweb
|
||||||
page. This will be passed to the 'git-web--browse' helper
|
page. This will be passed to the 'git web--browse' helper
|
||||||
script along with the URL of the gitweb instance. See
|
script along with the URL of the gitweb instance. See
|
||||||
linkgit:git-web--browse[1] for more information about this. If
|
linkgit:git-web--browse[1] for more information about this. If
|
||||||
the script fails, the URL will be printed to stdout.
|
the script fails, the URL will be printed to stdout.
|
||||||
|
|
|
@ -14,9 +14,9 @@ DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Shows the commit logs.
|
Shows the commit logs.
|
||||||
|
|
||||||
The command takes options applicable to the 'git-rev-list'
|
The command takes options applicable to the 'git rev-list'
|
||||||
command to control what is shown and how, and options applicable to
|
command to control what is shown and how, and options applicable to
|
||||||
the 'git-diff-*' commands to control how the changes
|
the 'git diff-*' commands to control how the changes
|
||||||
each commit introduces are shown.
|
each commit introduces are shown.
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,7 +37,8 @@ include::diff-options.txt[]
|
||||||
and <until>, see "SPECIFYING REVISIONS" section in
|
and <until>, see "SPECIFYING REVISIONS" section in
|
||||||
linkgit:git-rev-parse[1].
|
linkgit:git-rev-parse[1].
|
||||||
|
|
||||||
--decorate[=short|full]::
|
--no-decorate::
|
||||||
|
--decorate[=short|full|no]::
|
||||||
Print out the ref names of any commits that are shown. If 'short' is
|
Print out the ref names of any commits that are shown. If 'short' is
|
||||||
specified, the ref name prefixes 'refs/heads/', 'refs/tags/' and
|
specified, the ref name prefixes 'refs/heads/', 'refs/tags/' and
|
||||||
'refs/remotes/' will not be printed. If 'full' is specified, the
|
'refs/remotes/' will not be printed. If 'full' is specified, the
|
||||||
|
@ -56,7 +57,7 @@ include::diff-options.txt[]
|
||||||
commits, and doesn't limit diff for those commits.
|
commits, and doesn't limit diff for those commits.
|
||||||
|
|
||||||
--follow::
|
--follow::
|
||||||
Continue listing the history of a file beyond renames.
|
Continue listing the history of a file beyond renames/copies.
|
||||||
|
|
||||||
--log-size::
|
--log-size::
|
||||||
Before the log message print out its size in bytes. Intended
|
Before the log message print out its size in bytes. Intended
|
||||||
|
@ -107,11 +108,73 @@ git log --follow builtin-rev-list.c::
|
||||||
those commits that occurred before the file was given its
|
those commits that occurred before the file was given its
|
||||||
present name.
|
present name.
|
||||||
|
|
||||||
|
git log --branches --not --remotes=origin::
|
||||||
|
|
||||||
|
Shows all commits that are in any of local branches but not in
|
||||||
|
any of remote tracking branches for 'origin' (what you have that
|
||||||
|
origin doesn't).
|
||||||
|
|
||||||
|
git log master --not --remotes=*/master::
|
||||||
|
|
||||||
|
Shows all commits that are in local master but not in any remote
|
||||||
|
repository master branches.
|
||||||
|
|
||||||
|
git log -p -m --first-parent::
|
||||||
|
|
||||||
|
Shows the history including change diffs, but only from the
|
||||||
|
"main branch" perspective, skipping commits that come from merged
|
||||||
|
branches, and showing full diffs of changes introduced by the merges.
|
||||||
|
This makes sense only when following a strict policy of merging all
|
||||||
|
topic branches when staying on a single integration branch.
|
||||||
|
|
||||||
|
|
||||||
Discussion
|
Discussion
|
||||||
----------
|
----------
|
||||||
|
|
||||||
include::i18n.txt[]
|
include::i18n.txt[]
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
|
||||||
|
See linkgit:git-config[1] for core variables and linkgit:git-diff[1]
|
||||||
|
for settings related to diff generation.
|
||||||
|
|
||||||
|
format.pretty::
|
||||||
|
Default for the `--format` option. (See "PRETTY FORMATS" above.)
|
||||||
|
Defaults to "medium".
|
||||||
|
|
||||||
|
i18n.logOutputEncoding::
|
||||||
|
Encoding to use when displaying logs. (See "Discussion", above.)
|
||||||
|
Defaults to the value of `i18n.commitEncoding` if set, UTF-8
|
||||||
|
otherwise.
|
||||||
|
|
||||||
|
log.date::
|
||||||
|
Default format for human-readable dates. (Compare the
|
||||||
|
`--date` option.) Defaults to "default", which means to write
|
||||||
|
dates like `Sat May 8 19:35:34 2010 -0500`.
|
||||||
|
|
||||||
|
log.showroot::
|
||||||
|
If `false`, 'git log' and related commands will not treat the
|
||||||
|
initial commit as a big creation event. Any root commits in
|
||||||
|
`git log -p` output would be shown without a diff attached.
|
||||||
|
The default is `true`.
|
||||||
|
|
||||||
|
mailmap.file::
|
||||||
|
See linkgit:git-shortlog[1].
|
||||||
|
|
||||||
|
notes.displayRef::
|
||||||
|
Which refs, in addition to the default set by `core.notesRef`
|
||||||
|
or 'GIT_NOTES_REF', to read notes from when showing commit
|
||||||
|
messages with the 'log' family of commands. See
|
||||||
|
linkgit:git-notes[1].
|
||||||
|
+
|
||||||
|
May be an unabbreviated ref name or a glob and may be specified
|
||||||
|
multiple times. A warning will be issued for refs that do not exist,
|
||||||
|
but a glob that does not match any refs is silently ignored.
|
||||||
|
+
|
||||||
|
This setting can be disabled by the `--no-standard-notes` option,
|
||||||
|
overridden by the 'GIT_NOTES_DISPLAY_REF' environment variable,
|
||||||
|
and supplemented by the `--show-notes` option.
|
||||||
|
|
||||||
Author
|
Author
|
||||||
------
|
------
|
||||||
|
|
|
@ -44,12 +44,14 @@ OPTIONS
|
||||||
|
|
||||||
-o::
|
-o::
|
||||||
--others::
|
--others::
|
||||||
Show other files in the output
|
Show other (i.e. untracked) files in the output
|
||||||
|
|
||||||
-i::
|
-i::
|
||||||
--ignored::
|
--ignored::
|
||||||
Show ignored files in the output.
|
Show only ignored files in the output. When showing files in the
|
||||||
Note that this also reverses any exclude list present.
|
index, print only those matched by an exclude pattern. When
|
||||||
|
showing "other" files, show only those matched by an exclude
|
||||||
|
pattern.
|
||||||
|
|
||||||
-s::
|
-s::
|
||||||
--stage::
|
--stage::
|
||||||
|
@ -107,6 +109,7 @@ OPTIONS
|
||||||
Identify the file status with the following tags (followed by
|
Identify the file status with the following tags (followed by
|
||||||
a space) at the start of each line:
|
a space) at the start of each line:
|
||||||
H:: cached
|
H:: cached
|
||||||
|
S:: skip-worktree
|
||||||
M:: unmerged
|
M:: unmerged
|
||||||
R:: removed/deleted
|
R:: removed/deleted
|
||||||
C:: modified/changed
|
C:: modified/changed
|
||||||
|
@ -138,12 +141,12 @@ OPTIONS
|
||||||
|
|
||||||
Output
|
Output
|
||||||
------
|
------
|
||||||
show files just outputs the filename unless '--stage' is specified in
|
'git ls-files' just outputs the filenames unless '--stage' is specified in
|
||||||
which case it outputs:
|
which case it outputs:
|
||||||
|
|
||||||
[<tag> ]<mode> <object> <stage> <file>
|
[<tag> ]<mode> <object> <stage> <file>
|
||||||
|
|
||||||
'git-ls-files --unmerged' and 'git-ls-files --stage' can be used to examine
|
'git ls-files --unmerged' and 'git ls-files --stage' can be used to examine
|
||||||
detailed information on unmerged paths.
|
detailed information on unmerged paths.
|
||||||
|
|
||||||
For an unmerged path, instead of recording a single mode/SHA1 pair,
|
For an unmerged path, instead of recording a single mode/SHA1 pair,
|
||||||
|
@ -160,7 +163,7 @@ respectively.
|
||||||
Exclude Patterns
|
Exclude Patterns
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
'git-ls-files' can use a list of "exclude patterns" when
|
'git ls-files' can use a list of "exclude patterns" when
|
||||||
traversing the directory tree and finding files to show when the
|
traversing the directory tree and finding files to show when the
|
||||||
flags --others or --ignored are specified. linkgit:gitignore[5]
|
flags --others or --ignored are specified. linkgit:gitignore[5]
|
||||||
specifies the format of exclude patterns.
|
specifies the format of exclude patterns.
|
||||||
|
@ -176,7 +179,7 @@ These exclude patterns come from these places, in order:
|
||||||
in the same order they appear in the file.
|
in the same order they appear in the file.
|
||||||
|
|
||||||
3. command line flag --exclude-per-directory=<name> specifies
|
3. command line flag --exclude-per-directory=<name> specifies
|
||||||
a name of the file in each directory 'git-ls-files'
|
a name of the file in each directory 'git ls-files'
|
||||||
examines, normally `.gitignore`. Files in deeper
|
examines, normally `.gitignore`. Files in deeper
|
||||||
directories take precedence. Patterns are ordered in the
|
directories take precedence. Patterns are ordered in the
|
||||||
same order they appear in the files.
|
same order they appear in the files.
|
||||||
|
|
|
@ -28,7 +28,7 @@ in the current working directory. Note that:
|
||||||
in a directory 'sub' that has a directory 'dir', you can run 'git
|
in a directory 'sub' that has a directory 'dir', you can run 'git
|
||||||
ls-tree -r HEAD dir' to list the contents of the tree (that is
|
ls-tree -r HEAD dir' to list the contents of the tree (that is
|
||||||
'sub/dir' in 'HEAD'). You don't want to give a tree that is not at the
|
'sub/dir' in 'HEAD'). You don't want to give a tree that is not at the
|
||||||
root level (e.g. 'git ls-tree -r HEAD:sub dir') in this case, as that
|
root level (e.g. `git ls-tree -r HEAD:sub dir`) in this case, as that
|
||||||
would result in asking for 'sub/sub/dir' in the 'HEAD' commit.
|
would result in asking for 'sub/sub/dir' in the 'HEAD' commit.
|
||||||
However, the current working directory can be ignored by passing
|
However, the current working directory can be ignored by passing
|
||||||
--full-tree option.
|
--full-tree option.
|
||||||
|
@ -84,7 +84,7 @@ Output Format
|
||||||
|
|
||||||
Unless the `-z` option is used, TAB, LF, and backslash characters
|
Unless the `-z` option is used, TAB, LF, and backslash characters
|
||||||
in pathnames are represented as `\t`, `\n`, and `\\`, respectively.
|
in pathnames are represented as `\t`, `\n`, and `\\`, respectively.
|
||||||
This output format is compatible with what '--index-info --stdin' of
|
This output format is compatible with what `--index-info --stdin` of
|
||||||
'git update-index' expects.
|
'git update-index' expects.
|
||||||
|
|
||||||
When the `-l` option is used, format changes to
|
When the `-l` option is used, format changes to
|
||||||
|
|
|
@ -8,7 +8,7 @@ git-mailinfo - Extracts patch and authorship from a single e-mail message
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git mailinfo' [-k] [-u | --encoding=<encoding> | -n] <msg> <patch>
|
'git mailinfo' [-k|-b] [-u | --encoding=<encoding> | -n] [--scissors] <msg> <patch>
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
|
@ -16,7 +16,7 @@ DESCRIPTION
|
||||||
Reads a single e-mail message from the standard input, and
|
Reads a single e-mail message from the standard input, and
|
||||||
writes the commit log message in <msg> file, and the patches in
|
writes the commit log message in <msg> file, and the patches in
|
||||||
<patch> file. The author name, e-mail and e-mail subject are
|
<patch> file. The author name, e-mail and e-mail subject are
|
||||||
written out to the standard output to be used by 'git-am'
|
written out to the standard output to be used by 'git am'
|
||||||
to create a commit. It is usually not necessary to use this
|
to create a commit. It is usually not necessary to use this
|
||||||
command directly. See linkgit:git-am[1] instead.
|
command directly. See linkgit:git-am[1] instead.
|
||||||
|
|
||||||
|
@ -30,25 +30,49 @@ OPTIONS
|
||||||
whitespaces, (3) '[' up to ']', typically '[PATCH]', and
|
whitespaces, (3) '[' up to ']', typically '[PATCH]', and
|
||||||
then prepends "[PATCH] ". This flag forbids this
|
then prepends "[PATCH] ". This flag forbids this
|
||||||
munging, and is most useful when used to read back
|
munging, and is most useful when used to read back
|
||||||
'git-format-patch -k' output.
|
'git format-patch -k' output.
|
||||||
|
|
||||||
|
-b::
|
||||||
|
When -k is not in effect, all leading strings bracketed with '['
|
||||||
|
and ']' pairs are stripped. This option limits the stripping to
|
||||||
|
only the pairs whose bracketed string contains the word "PATCH".
|
||||||
|
|
||||||
-u::
|
-u::
|
||||||
The commit log message, author name and author email are
|
The commit log message, author name and author email are
|
||||||
taken from the e-mail, and after minimally decoding MIME
|
taken from the e-mail, and after minimally decoding MIME
|
||||||
transfer encoding, re-coded in UTF-8 by transliterating
|
transfer encoding, re-coded in the charset specified by
|
||||||
|
i18n.commitencoding (defaulting to UTF-8) by transliterating
|
||||||
them. This used to be optional but now it is the default.
|
them. This used to be optional but now it is the default.
|
||||||
+
|
+
|
||||||
Note that the patch is always used as-is without charset
|
Note that the patch is always used as-is without charset
|
||||||
conversion, even with this flag.
|
conversion, even with this flag.
|
||||||
|
|
||||||
--encoding=<encoding>::
|
--encoding=<encoding>::
|
||||||
Similar to -u but if the local convention is different
|
Similar to -u. But when re-coding, the charset specified here is
|
||||||
from what is specified by i18n.commitencoding, this flag
|
used instead of the one specified by i18n.commitencoding or UTF-8.
|
||||||
can be used to override it.
|
|
||||||
|
|
||||||
-n::
|
-n::
|
||||||
Disable all charset re-coding of the metadata.
|
Disable all charset re-coding of the metadata.
|
||||||
|
|
||||||
|
--scissors::
|
||||||
|
Remove everything in body before a scissors line. A line that
|
||||||
|
mainly consists of scissors (either ">8" or "8<") and perforation
|
||||||
|
(dash "-") marks is called a scissors line, and is used to request
|
||||||
|
the reader to cut the message at that line. If such a line
|
||||||
|
appears in the body of the message before the patch, everything
|
||||||
|
before it (including the scissors line itself) is ignored when
|
||||||
|
this option is used.
|
||||||
|
+
|
||||||
|
This is useful if you want to begin your message in a discussion thread
|
||||||
|
with comments and suggestions on the message you are responding to, and to
|
||||||
|
conclude it with a patch submission, separating the discussion and the
|
||||||
|
beginning of the proposed commit log message with a scissors line.
|
||||||
|
+
|
||||||
|
This can enabled by default with the configuration option mailinfo.scissors.
|
||||||
|
|
||||||
|
--no-scissors::
|
||||||
|
Ignore scissors lines. Useful for overriding mailinfo.scissors settings.
|
||||||
|
|
||||||
<msg>::
|
<msg>::
|
||||||
The commit log message extracted from e-mail, usually
|
The commit log message extracted from e-mail, usually
|
||||||
except the title line which comes from e-mail Subject.
|
except the title line which comes from e-mail Subject.
|
||||||
|
|
|
@ -7,7 +7,7 @@ git-mailsplit - Simple UNIX mbox splitter program
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git mailsplit' [-b] [-f<nn>] [-d<prec>] -o<directory> [--] [<mbox>|<Maildir>...]
|
'git mailsplit' [-b] [-f<nn>] [-d<prec>] [--keep-cr] -o<directory> [--] [<mbox>|<Maildir>...]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
@ -43,6 +43,9 @@ OPTIONS
|
||||||
Skip the first <nn> numbers, for example if -f3 is specified,
|
Skip the first <nn> numbers, for example if -f3 is specified,
|
||||||
start the numbering with 0004.
|
start the numbering with 0004.
|
||||||
|
|
||||||
|
--keep-cr::
|
||||||
|
Do not remove `\r` from lines ending with `\r\n`.
|
||||||
|
|
||||||
Author
|
Author
|
||||||
------
|
------
|
||||||
Written by Linus Torvalds <torvalds@osdl.org>
|
Written by Linus Torvalds <torvalds@osdl.org>
|
||||||
|
|
|
@ -8,12 +8,12 @@ git-merge-base - Find as good common ancestors as possible for a merge
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git merge-base' [--all] <commit> <commit>...
|
'git merge-base' [-a|--all] <commit> <commit>...
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
'git-merge-base' finds best common ancestor(s) between two commits to use
|
'git merge-base' finds best common ancestor(s) between two commits to use
|
||||||
in a three-way merge. One common ancestor is 'better' than another common
|
in a three-way merge. One common ancestor is 'better' than another common
|
||||||
ancestor if the latter is an ancestor of the former. A common ancestor
|
ancestor if the latter is an ancestor of the former. A common ancestor
|
||||||
that does not have any better common ancestor is a 'best common
|
that does not have any better common ancestor is a 'best common
|
||||||
|
@ -27,8 +27,13 @@ commits on the command line. As the most common special case, specifying only
|
||||||
two commits on the command line means computing the merge base between
|
two commits on the command line means computing the merge base between
|
||||||
the given two commits.
|
the given two commits.
|
||||||
|
|
||||||
|
As a consequence, the 'merge base' is not necessarily contained in each of the
|
||||||
|
commit arguments if more than two commits are specified. This is different
|
||||||
|
from linkgit:git-show-branch[1] when used with the `--merge-base` option.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
|
-a::
|
||||||
--all::
|
--all::
|
||||||
Output all merge bases for the commits, instead of just one.
|
Output all merge bases for the commits, instead of just one.
|
||||||
|
|
||||||
|
|
|
@ -10,20 +10,21 @@ SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git merge-file' [-L <current-name> [-L <base-name> [-L <other-name>]]]
|
'git merge-file' [-L <current-name> [-L <base-name> [-L <other-name>]]]
|
||||||
[-p|--stdout] [-q|--quiet] <current-file> <base-file> <other-file>
|
[--ours|--theirs|--union] [-p|--stdout] [-q|--quiet] [--marker-size=<n>]
|
||||||
|
<current-file> <base-file> <other-file>
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
'git-merge-file' incorporates all changes that lead from the `<base-file>`
|
'git merge-file' incorporates all changes that lead from the `<base-file>`
|
||||||
to `<other-file>` into `<current-file>`. The result ordinarily goes into
|
to `<other-file>` into `<current-file>`. The result ordinarily goes into
|
||||||
`<current-file>`. 'git-merge-file' is useful for combining separate changes
|
`<current-file>`. 'git merge-file' is useful for combining separate changes
|
||||||
to an original. Suppose `<base-file>` is the original, and both
|
to an original. Suppose `<base-file>` is the original, and both
|
||||||
`<current-file>` and `<other-file>` are modifications of `<base-file>`,
|
`<current-file>` and `<other-file>` are modifications of `<base-file>`,
|
||||||
then 'git-merge-file' combines both changes.
|
then 'git merge-file' combines both changes.
|
||||||
|
|
||||||
A conflict occurs if both `<current-file>` and `<other-file>` have changes
|
A conflict occurs if both `<current-file>` and `<other-file>` have changes
|
||||||
in a common segment of lines. If a conflict is found, 'git-merge-file'
|
in a common segment of lines. If a conflict is found, 'git merge-file'
|
||||||
normally outputs a warning and brackets the conflict with lines containing
|
normally outputs a warning and brackets the conflict with lines containing
|
||||||
<<<<<<< and >>>>>>> markers. A typical conflict will look like this:
|
<<<<<<< and >>>>>>> markers. A typical conflict will look like this:
|
||||||
|
|
||||||
|
@ -34,12 +35,15 @@ normally outputs a warning and brackets the conflict with lines containing
|
||||||
>>>>>>> B
|
>>>>>>> B
|
||||||
|
|
||||||
If there are conflicts, the user should edit the result and delete one of
|
If there are conflicts, the user should edit the result and delete one of
|
||||||
the alternatives.
|
the alternatives. When `--ours`, `--theirs`, or `--union` option is in effect,
|
||||||
|
however, these conflicts are resolved favouring lines from `<current-file>`,
|
||||||
|
lines from `<other-file>`, or lines from both respectively. The length of the
|
||||||
|
conflict markers can be given with the `--marker-size` option.
|
||||||
|
|
||||||
The exit value of this program is negative on error, and the number of
|
The exit value of this program is negative on error, and the number of
|
||||||
conflicts otherwise. If the merge was clean, the exit value is 0.
|
conflicts otherwise. If the merge was clean, the exit value is 0.
|
||||||
|
|
||||||
'git-merge-file' is designed to be a minimal clone of RCS 'merge'; that is, it
|
'git merge-file' is designed to be a minimal clone of RCS 'merge'; that is, it
|
||||||
implements all of RCS 'merge''s functionality which is needed by
|
implements all of RCS 'merge''s functionality which is needed by
|
||||||
linkgit:git[1].
|
linkgit:git[1].
|
||||||
|
|
||||||
|
@ -62,6 +66,12 @@ OPTIONS
|
||||||
-q::
|
-q::
|
||||||
Quiet; do not warn about conflicts.
|
Quiet; do not warn about conflicts.
|
||||||
|
|
||||||
|
--ours::
|
||||||
|
--theirs::
|
||||||
|
--union::
|
||||||
|
Instead of leaving conflicts in the file, resolve conflicts
|
||||||
|
favouring our (or their or both) side of the lines.
|
||||||
|
|
||||||
|
|
||||||
EXAMPLES
|
EXAMPLES
|
||||||
--------
|
--------
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue