</dd>\r
</dl>\r
</div>\r
+<h2>SEE ALSO</h2>\r
+<div class="sectionbody">\r
+<p><a href="gitattributes.html">gitattributes(5)</a>.</p>\r
+</div>\r
<h2>Author</h2>\r
<div class="sectionbody">\r
<p>Written by Junio C Hamano <junkio@cox.net></p>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 14-Nov-2007 12:11:23 UTC\r
+Last updated 23-Dec-2007 08:15:26 UTC\r
</div>\r
</div>\r
</body>\r
be treated as an attribute.
+SEE ALSO
+--------
+gitlink:gitattributes[5].
+
+
Author
------
Written by Junio C Hamano <junkio@cox.net>
<dd>\r
<p>\r
Similar to <tt>-t</tt>, but use lowercase letters for files\r
- that are marked as <em>always matching index</em>.\r
+ that are marked as <em>assume unchanged</em> (see\r
+ <a href="git-update-index.html">git-update-index(1)</a>).\r
</p>\r
</dd>\r
<dt>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 16-Nov-2007 10:10:40 UTC\r
+Last updated 23-Dec-2007 08:15:26 UTC\r
</div>\r
</div>\r
</body>\r
-v::
Similar to `-t`, but use lowercase letters for files
- that are marked as 'always matching index'.
+ that are marked as 'assume unchanged' (see
+ gitlink:git-update-index[1]).
--full-name::
When run from a subdirectory, the command usually
</div>\r
<h2>SEE ALSO</h2>\r
<div class="sectionbody">\r
-<p><a href="git-fmt-merge-msg.html">git-fmt-merge-msg(1)</a>, <a href="git-pull.html">git-pull(1)</a></p>\r
+<p><a href="git-fmt-merge-msg.html">git-fmt-merge-msg(1)</a>, <a href="git-pull.html">git-pull(1)</a>,\r
+<a href="gitattributes.html">gitattributes(5)</a></p>\r
</div>\r
<h2>Author</h2>\r
<div class="sectionbody">\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 14-Nov-2007 12:11:38 UTC\r
+Last updated 23-Dec-2007 08:15:27 UTC\r
</div>\r
</div>\r
</body>\r
SEE ALSO
--------
-gitlink:git-fmt-merge-msg[1], gitlink:git-pull[1]
+gitlink:git-fmt-merge-msg[1], gitlink:git-pull[1],
+gitlink:gitattributes[5]
Author
</p>\r
</dd>\r
</dl>\r
+<h4>Built-in merge drivers</h4>\r
+<p>There are a few built-in low-level merge drivers defined that\r
+can be asked for via the <tt>merge</tt> attribute.</p>\r
+<dl>\r
+<dt>\r
+text\r
+</dt>\r
+<dd>\r
+<p>\r
+ Usual 3-way file level merge for text files. Conflicted\r
+ regions are marked with conflict markers <tt><<<<<<<</tt>,\r
+ <tt>=======</tt> and <tt>>>>>>>></tt>. The version from your branch\r
+ appears before the <tt>=======</tt> marker, and the version\r
+ from the merged branch appears after the <tt>=======</tt>\r
+ marker.\r
+</p>\r
+</dd>\r
+<dt>\r
+binary\r
+</dt>\r
+<dd>\r
+<p>\r
+ Keep the version from your branch in the work tree, but\r
+ leave the path in the conflicted state for the user to\r
+ sort out.\r
+</p>\r
+</dd>\r
+<dt>\r
+union\r
+</dt>\r
+<dd>\r
+<p>\r
+ Run 3-way file level merge for text files, but take\r
+ lines from both versions, instead of leaving conflict\r
+ markers. This tends to leave the added lines in the\r
+ resulting file in random order and the user should\r
+ verify the result. Do not use this if you do not\r
+ understand the implications.\r
+</p>\r
+</dd>\r
+</dl>\r
<h4>Defining a custom merge driver</h4>\r
-<p>The definition of a merge driver is done in <tt>gitconfig</tt> not\r
-<tt>gitattributes</tt> file, so strictly speaking this manual page is a\r
-wrong place to talk about it. However…</p>\r
+<p>The definition of a merge driver is done in the <tt>.git/config</tt>\r
+file, not in the <tt>gitattributes</tt> file, so strictly speaking this\r
+manual page is a wrong place to talk about it. However…</p>\r
<p>To define a custom merge driver <tt>filfre</tt>, add a section to your\r
<tt>$GIT_DIR/config</tt> file (or <tt>$HOME/.gitconfig</tt> file) like this:</p>\r
<div class="listingblock">\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 09-Dec-2007 10:19:08 UTC\r
+Last updated 23-Dec-2007 08:15:27 UTC\r
</div>\r
</div>\r
</body>\r
requested with "binary".
+Built-in merge drivers
+^^^^^^^^^^^^^^^^^^^^^^
+
+There are a few built-in low-level merge drivers defined that
+can be asked for via the `merge` attribute.
+
+text::
+
+ Usual 3-way file level merge for text files. Conflicted
+ regions are marked with conflict markers `<<<<<<<`,
+ `=======` and `>>>>>>>`. The version from your branch
+ appears before the `=======` marker, and the version
+ from the merged branch appears after the `=======`
+ marker.
+
+binary::
+
+ Keep the version from your branch in the work tree, but
+ leave the path in the conflicted state for the user to
+ sort out.
+
+union::
+
+ Run 3-way file level merge for text files, but take
+ lines from both versions, instead of leaving conflict
+ markers. This tends to leave the added lines in the
+ resulting file in random order and the user should
+ verify the result. Do not use this if you do not
+ understand the implications.
+
+
Defining a custom merge driver
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-The definition of a merge driver is done in `gitconfig` not
-`gitattributes` file, so strictly speaking this manual page is a
-wrong place to talk about it. However...
+The definition of a merge driver is done in the `.git/config`
+file, not in the `gitattributes` file, so strictly speaking this
+manual page is a wrong place to talk about it. However...
To define a custom merge driver `filfre`, add a section to your
`$GIT_DIR/config` file (or `$HOME/.gitconfig` file) like this:
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 7.0.2" />\r
+<style type="text/css">\r
+/* Debug borders */\r
+p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
+/*\r
+ border: 1px solid red;\r
+*/\r
+}\r
+\r
+body {\r
+ margin: 1em 5% 1em 5%;\r
+}\r
+\r
+a { color: blue; }\r
+a:visited { color: fuchsia; }\r
+\r
+em {\r
+ font-style: italic;\r
+}\r
+\r
+strong {\r
+ font-weight: bold;\r
+}\r
+\r
+tt {\r
+ color: navy;\r
+}\r
+\r
+h1, h2, h3, h4, h5, h6 {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ margin-top: 1.2em;\r
+ margin-bottom: 0.5em;\r
+ line-height: 1.3;\r
+}\r
+\r
+h1 {\r
+ border-bottom: 2px solid silver;\r
+}\r
+h2 {\r
+ border-bottom: 2px solid silver;\r
+ padding-top: 0.5em;\r
+}\r
+\r
+div.sectionbody {\r
+ font-family: serif;\r
+ margin-left: 0;\r
+}\r
+\r
+hr {\r
+ border: 1px solid silver;\r
+}\r
+\r
+p {\r
+ margin-top: 0.5em;\r
+ margin-bottom: 0.5em;\r
+}\r
+\r
+pre {\r
+ padding: 0;\r
+ margin: 0;\r
+}\r
+\r
+span#author {\r
+ color: #527bbd;\r
+ font-family: sans-serif;\r
+ font-weight: bold;\r
+ font-size: 1.2em;\r
+}\r
+span#email {\r
+}\r
+span#revision {\r
+ font-family: sans-serif;\r
+}\r
+\r
+div#footer {\r
+ font-family: sans-serif;\r
+ font-size: small;\r
+ border-top: 2px solid silver;\r
+ padding-top: 0.5em;\r
+ margin-top: 4.0em;\r
+}\r
+div#footer-text {\r
+ float: left;\r
+ padding-bottom: 0.5em;\r
+}\r
+div#footer-badges {\r
+ float: right;\r
+ padding-bottom: 0.5em;\r
+}\r
+\r
+div#preamble,\r
+div.tableblock, div.imageblock, div.exampleblock, div.verseblock,\r
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,\r
+div.admonitionblock {\r
+ margin-right: 10%;\r
+ margin-top: 1.5em;\r
+ margin-bottom: 1.5em;\r
+}\r
+div.admonitionblock {\r
+ margin-top: 2.5em;\r
+ margin-bottom: 2.5em;\r
+}\r
+\r
+div.content { /* Block element content. */\r
+ padding: 0;\r
+}\r
+\r
+/* Block element titles. */\r
+div.title, caption.title {\r
+ font-family: sans-serif;\r
+ font-weight: bold;\r
+ text-align: left;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.5em;\r
+}\r
+div.title + * {\r
+ margin-top: 0;\r
+}\r
+\r
+td div.title:first-child {\r
+ margin-top: 0.0em;\r
+}\r
+div.content div.title:first-child {\r
+ margin-top: 0.0em;\r
+}\r
+div.content + div.title {\r
+ margin-top: 0.0em;\r
+}\r
+\r
+div.sidebarblock > div.content {\r
+ background: #ffffee;\r
+ border: 1px solid silver;\r
+ padding: 0.5em;\r
+}\r
+\r
+div.listingblock > div.content {\r
+ border: 1px solid silver;\r
+ background: #f4f4f4;\r
+ padding: 0.5em;\r
+}\r
+\r
+div.quoteblock > div.content {\r
+ padding-left: 2.0em;\r
+}\r
+div.quoteblock .attribution {\r
+ text-align: right;\r
+}\r
+\r
+div.admonitionblock .icon {\r
+ vertical-align: top;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ text-decoration: underline;\r
+ color: #527bbd;\r
+ padding-right: 0.5em;\r
+}\r
+div.admonitionblock td.content {\r
+ padding-left: 0.5em;\r
+ border-left: 2px solid silver;\r
+}\r
+\r
+div.exampleblock > div.content {\r
+ border-left: 2px solid silver;\r
+ padding: 0.5em;\r
+}\r
+\r
+div.verseblock div.content {\r
+ white-space: pre;\r
+}\r
+\r
+div.imageblock div.content { padding-left: 0; }\r
+div.imageblock img { border: 1px solid silver; }\r
+span.image img { border-style: none; }\r
+\r
+dl {\r
+ margin-top: 0.8em;\r
+ margin-bottom: 0.8em;\r
+}\r
+dt {\r
+ margin-top: 0.5em;\r
+ margin-bottom: 0;\r
+ font-style: italic;\r
+}\r
+dd > *:first-child {\r
+ margin-top: 0;\r
+}\r
+\r
+ul, ol {\r
+ list-style-position: outside;\r
+}\r
+ol.olist2 {\r
+ list-style-type: lower-alpha;\r
+}\r
+\r
+div.tableblock > table {\r
+ border-color: #527bbd;\r
+ border-width: 3px;\r
+}\r
+thead {\r
+ font-family: sans-serif;\r
+ font-weight: bold;\r
+}\r
+tfoot {\r
+ font-weight: bold;\r
+}\r
+\r
+div.hlist {\r
+ margin-top: 0.8em;\r
+ margin-bottom: 0.8em;\r
+}\r
+td.hlist1 {\r
+ vertical-align: top;\r
+ font-style: italic;\r
+ padding-right: 0.8em;\r
+}\r
+td.hlist2 {\r
+ vertical-align: top;\r
+}\r
+\r
+@media print {\r
+ div#footer-badges { display: none; }\r
+}\r
+include::./stylesheets/xhtml11-manpage.css[]\r
+/* Workarounds for IE6's broken and incomplete CSS2. */\r
+\r
+div.sidebar-content {\r
+ background: #ffffee;\r
+ border: 1px solid silver;\r
+ padding: 0.5em;\r
+}\r
+div.sidebar-title, div.image-title {\r
+ font-family: sans-serif;\r
+ font-weight: bold;\r
+ margin-top: 0.0em;\r
+ margin-bottom: 0.5em;\r
+}\r
+\r
+div.listingblock div.content {\r
+ border: 1px solid silver;\r
+ background: #f4f4f4;\r
+ padding: 0.5em;\r
+}\r
+\r
+div.quoteblock-content {\r
+ padding-left: 2.0em;\r
+}\r
+\r
+div.exampleblock-content {\r
+ border-left: 2px solid silver;\r
+ padding-left: 0.5em;\r
+}\r
+</style>\r
+<title>gitcli(5)</title>\r
+</head>\r
+<body>\r
+<div id="header">\r
+<h1>\r
+gitcli(5) Manual Page\r
+</h1>\r
+<h2>NAME</h2>\r
+<div class="sectionbody">\r
+<p>gitcli -\r
+ git command line interface and conventions\r
+</p>\r
+</div>\r
+</div>\r
+<h2>SYNOPSIS</h2>\r
+<div class="sectionbody">\r
+<p>gitcli</p>\r
+</div>\r
+<h2>DESCRIPTION</h2>\r
+<div class="sectionbody">\r
+<p>This manual describes best practice in how to use git CLI. Here are\r
+the rules that you should follow when you are scripting git:</p>\r
+<ul>\r
+<li>\r
+<p>\r
+it's preferred to use the non dashed form of git commands, which means that\r
+ you should prefer <tt>"git foo"</tt> to <tt>"git-foo"</tt>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+splitting short options to separate words (prefer <tt>"git foo -a -b"</tt>\r
+ to <tt>"git foo -ab"</tt>, the latter may not even work).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+when a command line option takes an argument, use the <em>sticked</em> form. In\r
+ other words, write <tt>"git foo -oArg"</tt> instead of <tt>"git foo -o Arg"</tt> for short\r
+ options, and <tt>"git foo --long-opt=Arg"</tt> instead of <tt>"git foo --long-opt Arg"</tt>\r
+ for long options. An option that takes optional option-argument must be\r
+ written in the <em>sticked</em> form.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+when you give a revision parameter to a command, make sure the parameter is\r
+ not ambiguous with a name of a file in the work tree. E.g. do not write\r
+ <tt>"git log -1 HEAD"</tt> but write <tt>"git log -1 HEAD --"</tt>; the former will not work\r
+ if you happen to have a file called <tt>HEAD</tt> in the work tree.\r
+</p>\r
+</li>\r
+</ul>\r
+</div>\r
+<h2>ENHANCED CLI</h2>\r
+<div class="sectionbody">\r
+<p>From the git 1.5.4 series and further, many git commands (not all of them at the\r
+time of the writing though) come with an enhanced option parser.</p>\r
+<p>Here is an exhaustive list of the facilities provided by this option parser.</p>\r
+<h3>Magic Options</h3>\r
+<p>Commands which have the enhanced option parser activated all understand a\r
+couple of magic command line options:</p>\r
+<dl>\r
+<dt>\r
+-h\r
+</dt>\r
+<dd>\r
+<p>\r
+ gives a pretty printed usage of the command.\r
+</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ git describe -h\r
+usage: git-describe [options] <committish>*\r
+\r
+ --contains find the tag that comes after the commit\r
+ --debug debug search strategy on stderr\r
+ --all use any ref in .git/refs\r
+ --tags use any tag in .git/refs/tags\r
+ --abbrev [<n>] use <n> digits to display SHA-1s\r
+ --candidates <n> consider <n> most recent tags (default: 10)</tt></pre>\r
+</div></div>\r
+</dd>\r
+<dt>\r
+--help-all\r
+</dt>\r
+<dd>\r
+<p>\r
+ Some git commands take options that are only used for plumbing or that\r
+ are deprecated, and such options are hidden from the default usage. This\r
+ option gives the full list of options.\r
+</p>\r
+</dd>\r
+</dl>\r
+<h3>Negating options</h3>\r
+<p>Options with long option names can be negated by prefixing <tt>"--no-"</tt>. For\r
+example, <tt>"git branch"</tt> has the option <tt>"--track"</tt> which is <em>on</em> by default. You\r
+can use <tt>"--no-track"</tt> to override that behaviour. The same goes for <tt>"--color"</tt>\r
+and <tt>"--no-color"</tt>.</p>\r
+<h3>Aggregating short options</h3>\r
+<p>Commands that support the enhanced option parser allow you to aggregate short\r
+options. This means that you can for example use <tt>"git rm -rf"</tt> or\r
+<tt>"git clean -fdx"</tt>.</p>\r
+<h3>Separating argument from the option</h3>\r
+<p>You can write the mandatory option parameter to an option as a separate\r
+word on the command line. That means that all the following uses work:</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ git foo --long-opt=Arg\r
+$ git foo --long-opt Arg\r
+$ git foo -oArg\r
+$ git foo -o Arg</tt></pre>\r
+</div></div>\r
+<p>However, this is <strong>NOT</strong> allowed for switches with an optionnal value, where the\r
+<em>sticked</em> form must be used:</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ git describe --abbrev HEAD # correct\r
+$ git describe --abbrev=10 HEAD # correct\r
+$ git describe --abbrev 10 HEAD # NOT WHAT YOU MEANT</tt></pre>\r
+</div></div>\r
+</div>\r
+<h2>Documentation</h2>\r
+<div class="sectionbody">\r
+<p>Documentation by Pierre Habouzit.</p>\r
+</div>\r
+<h2>GIT</h2>\r
+<div class="sectionbody">\r
+<p>Part of the <a href="git.html">git(7)</a> suite</p>\r
+</div>\r
+<div id="footer">\r
+<div id="footer-text">\r
+Last updated 23-Dec-2007 08:15:28 UTC\r
+</div>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+gitcli(5)
+=========
+
+NAME
+----
+gitcli - git command line interface and conventions
+
+SYNOPSIS
+--------
+gitcli
+
+
+DESCRIPTION
+-----------
+
+This manual describes best practice in how to use git CLI. Here are
+the rules that you should follow when you are scripting git:
+
+ * it's preferred to use the non dashed form of git commands, which means that
+ you should prefer `"git foo"` to `"git-foo"`.
+
+ * splitting short options to separate words (prefer `"git foo -a -b"`
+ to `"git foo -ab"`, the latter may not even work).
+
+ * when a command line option takes an argument, use the 'sticked' form. In
+ other words, write `"git foo -oArg"` instead of `"git foo -o Arg"` for short
+ options, and `"git foo --long-opt=Arg"` instead of `"git foo --long-opt Arg"`
+ for long options. An option that takes optional option-argument must be
+ written in the 'sticked' form.
+
+ * when you give a revision parameter to a command, make sure the parameter is
+ not ambiguous with a name of a file in the work tree. E.g. do not write
+ `"git log -1 HEAD"` but write `"git log -1 HEAD --"`; the former will not work
+ if you happen to have a file called `HEAD` in the work tree.
+
+
+ENHANCED CLI
+------------
+From the git 1.5.4 series and further, many git commands (not all of them at the
+time of the writing though) come with an enhanced option parser.
+
+Here is an exhaustive list of the facilities provided by this option parser.
+
+
+Magic Options
+~~~~~~~~~~~~~
+Commands which have the enhanced option parser activated all understand a
+couple of magic command line options:
+
+-h::
+ gives a pretty printed usage of the command.
++
+---------------------------------------------
+$ git describe -h
+usage: git-describe [options] <committish>*
+
+ --contains find the tag that comes after the commit
+ --debug debug search strategy on stderr
+ --all use any ref in .git/refs
+ --tags use any tag in .git/refs/tags
+ --abbrev [<n>] use <n> digits to display SHA-1s
+ --candidates <n> consider <n> most recent tags (default: 10)
+---------------------------------------------
+
+--help-all::
+ Some git commands take options that are only used for plumbing or that
+ are deprecated, and such options are hidden from the default usage. This
+ option gives the full list of options.
+
+
+Negating options
+~~~~~~~~~~~~~~~~
+Options with long option names can be negated by prefixing `"--no-"`. For
+example, `"git branch"` has the option `"--track"` which is 'on' by default. You
+can use `"--no-track"` to override that behaviour. The same goes for `"--color"`
+and `"--no-color"`.
+
+
+Aggregating short options
+~~~~~~~~~~~~~~~~~~~~~~~~~
+Commands that support the enhanced option parser allow you to aggregate short
+options. This means that you can for example use `"git rm -rf"` or
+`"git clean -fdx"`.
+
+
+Separating argument from the option
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+You can write the mandatory option parameter to an option as a separate
+word on the command line. That means that all the following uses work:
+
+----------------------------
+$ git foo --long-opt=Arg
+$ git foo --long-opt Arg
+$ git foo -oArg
+$ git foo -o Arg
+----------------------------
+
+However, this is *NOT* allowed for switches with an optionnal value, where the
+'sticked' form must be used:
+----------------------------
+$ git describe --abbrev HEAD # correct
+$ git describe --abbrev=10 HEAD # correct
+$ git describe --abbrev 10 HEAD # NOT WHAT YOU MEANT
+----------------------------
+
+
+Documentation
+-------------
+Documentation by Pierre Habouzit.
+
+GIT
+---
+Part of the gitlink:git[7] suite