Merge branch 'master' into next
* master: Fix trivial typo in git-log man page. Properly render asciidoc "callouts" in git man pages. Fix up remaining man pages that use asciidoc "callouts". Update the git-branch man page to include the "-r" option, annotate: display usage information if no filename was given annotate: fix warning about uninitialized scalar git-am --resolved: more usable error message.
This commit is contained in:
commit
1d19b324fb
@ -79,7 +79,7 @@ clean:
|
|||||||
asciidoc -b xhtml11 -d manpage -f asciidoc.conf $<
|
asciidoc -b xhtml11 -d manpage -f asciidoc.conf $<
|
||||||
|
|
||||||
%.1 %.7 : %.xml
|
%.1 %.7 : %.xml
|
||||||
xmlto man $<
|
xmlto -m callouts.xsl man $<
|
||||||
|
|
||||||
%.xml : %.txt
|
%.xml : %.txt
|
||||||
asciidoc -b docbook -d manpage -f asciidoc.conf $<
|
asciidoc -b docbook -d manpage -f asciidoc.conf $<
|
||||||
|
16
Documentation/callouts.xsl
Normal file
16
Documentation/callouts.xsl
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<!-- callout.xsl: converts asciidoc callouts to man page format -->
|
||||||
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||||
|
<xsl:template match="co">
|
||||||
|
<xsl:value-of select="concat('\fB(',substring-after(@id,'-'),')\fR')"/>
|
||||||
|
</xsl:template>
|
||||||
|
<xsl:template match="calloutlist">
|
||||||
|
<xsl:text>.sp </xsl:text>
|
||||||
|
<xsl:apply-templates/>
|
||||||
|
<xsl:text> </xsl:text>
|
||||||
|
</xsl:template>
|
||||||
|
<xsl:template match="callout">
|
||||||
|
<xsl:value-of select="concat('\fB',substring-after(@arearefs,'-'),'. \fR')"/>
|
||||||
|
<xsl:apply-templates/>
|
||||||
|
<xsl:text>.br </xsl:text>
|
||||||
|
</xsl:template>
|
||||||
|
</xsl:stylesheet>
|
@ -61,7 +61,8 @@ $ git prune
|
|||||||
$ git count-objects <2>
|
$ git count-objects <2>
|
||||||
$ git repack <3>
|
$ git repack <3>
|
||||||
$ git prune <4>
|
$ git prune <4>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> running without "--full" is usually cheap and assures the
|
<1> running without "--full" is usually cheap and assures the
|
||||||
repository health reasonably well.
|
repository health reasonably well.
|
||||||
<2> check how many loose objects there are and how much
|
<2> check how many loose objects there are and how much
|
||||||
@ -69,17 +70,16 @@ diskspace is wasted by not repacking.
|
|||||||
<3> without "-a" repacks incrementally. repacking every 4-5MB
|
<3> without "-a" repacks incrementally. repacking every 4-5MB
|
||||||
of loose objects accumulation may be a good rule of thumb.
|
of loose objects accumulation may be a good rule of thumb.
|
||||||
<4> after repack, prune removes the duplicate loose objects.
|
<4> after repack, prune removes the duplicate loose objects.
|
||||||
------------
|
|
||||||
|
|
||||||
Repack a small project into single pack.::
|
Repack a small project into single pack.::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git repack -a -d <1>
|
$ git repack -a -d <1>
|
||||||
$ git prune
|
$ git prune
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> pack all the objects reachable from the refs into one pack
|
<1> pack all the objects reachable from the refs into one pack
|
||||||
and remove unneeded other packs
|
and remove unneeded other packs
|
||||||
------------
|
|
||||||
|
|
||||||
|
|
||||||
Individual Developer (Standalone)[[Individual Developer (Standalone)]]
|
Individual Developer (Standalone)[[Individual Developer (Standalone)]]
|
||||||
@ -129,10 +129,10 @@ $ git-init-db
|
|||||||
$ git add . <1>
|
$ git add . <1>
|
||||||
$ git commit -m 'import of frotz source tree.'
|
$ git commit -m 'import of frotz source tree.'
|
||||||
$ git tag v2.43 <2>
|
$ git tag v2.43 <2>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> add everything under the current directory.
|
<1> add everything under the current directory.
|
||||||
<2> make a lightweight, unannotated tag.
|
<2> make a lightweight, unannotated tag.
|
||||||
------------
|
|
||||||
|
|
||||||
Create a topic branch and develop.::
|
Create a topic branch and develop.::
|
||||||
+
|
+
|
||||||
@ -153,7 +153,8 @@ $ git checkout master <9>
|
|||||||
$ git pull . alsa-audio <10>
|
$ git pull . alsa-audio <10>
|
||||||
$ git log --since='3 days ago' <11>
|
$ git log --since='3 days ago' <11>
|
||||||
$ git log v2.43.. curses/ <12>
|
$ git log v2.43.. curses/ <12>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> create a new topic branch.
|
<1> create a new topic branch.
|
||||||
<2> revert your botched changes in "curses/ux_audio_oss.c".
|
<2> revert your botched changes in "curses/ux_audio_oss.c".
|
||||||
<3> you need to tell git if you added a new file; removal and
|
<3> you need to tell git if you added a new file; removal and
|
||||||
@ -170,7 +171,6 @@ you originally wrote.
|
|||||||
combined and include --max-count=10 (show 10 commits), --until='2005-12-10'.
|
combined and include --max-count=10 (show 10 commits), --until='2005-12-10'.
|
||||||
<12> view only the changes that touch what's in curses/
|
<12> view only the changes that touch what's in curses/
|
||||||
directory, since v2.43 tag.
|
directory, since v2.43 tag.
|
||||||
------------
|
|
||||||
|
|
||||||
|
|
||||||
Individual Developer (Participant)[[Individual Developer (Participant)]]
|
Individual Developer (Participant)[[Individual Developer (Participant)]]
|
||||||
@ -208,7 +208,8 @@ $ git pull git://git.kernel.org/pub/.../jgarzik/libata-dev.git ALL <5>
|
|||||||
$ git reset --hard ORIG_HEAD <6>
|
$ git reset --hard ORIG_HEAD <6>
|
||||||
$ git prune <7>
|
$ git prune <7>
|
||||||
$ git fetch --tags <8>
|
$ git fetch --tags <8>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> repeat as needed.
|
<1> repeat as needed.
|
||||||
<2> extract patches from your branch for e-mail submission.
|
<2> extract patches from your branch for e-mail submission.
|
||||||
<3> "pull" fetches from "origin" by default and merges into the
|
<3> "pull" fetches from "origin" by default and merges into the
|
||||||
@ -221,7 +222,6 @@ area we are interested in.
|
|||||||
<7> garbage collect leftover objects from reverted pull.
|
<7> garbage collect leftover objects from reverted pull.
|
||||||
<8> from time to time, obtain official tags from the "origin"
|
<8> from time to time, obtain official tags from the "origin"
|
||||||
and store them under .git/refs/tags/.
|
and store them under .git/refs/tags/.
|
||||||
------------
|
|
||||||
|
|
||||||
|
|
||||||
Push into another repository.::
|
Push into another repository.::
|
||||||
@ -239,7 +239,8 @@ satellite$ git push origin <4>
|
|||||||
mothership$ cd frotz
|
mothership$ cd frotz
|
||||||
mothership$ git checkout master
|
mothership$ git checkout master
|
||||||
mothership$ git pull . satellite <5>
|
mothership$ git pull . satellite <5>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> mothership machine has a frotz repository under your home
|
<1> mothership machine has a frotz repository under your home
|
||||||
directory; clone from it to start a repository on the satellite
|
directory; clone from it to start a repository on the satellite
|
||||||
machine.
|
machine.
|
||||||
@ -252,7 +253,6 @@ to local "origin" branch.
|
|||||||
mothership machine. You could use this as a back-up method.
|
mothership machine. You could use this as a back-up method.
|
||||||
<5> on mothership machine, merge the work done on the satellite
|
<5> on mothership machine, merge the work done on the satellite
|
||||||
machine into the master branch.
|
machine into the master branch.
|
||||||
------------
|
|
||||||
|
|
||||||
Branch off of a specific tag.::
|
Branch off of a specific tag.::
|
||||||
+
|
+
|
||||||
@ -262,12 +262,12 @@ $ edit/compile/test; git commit -a
|
|||||||
$ git checkout master
|
$ git checkout master
|
||||||
$ git format-patch -k -m --stdout v2.6.14..private2.6.14 |
|
$ git format-patch -k -m --stdout v2.6.14..private2.6.14 |
|
||||||
git am -3 -k <2>
|
git am -3 -k <2>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> create a private branch based on a well known (but somewhat behind)
|
<1> create a private branch based on a well known (but somewhat behind)
|
||||||
tag.
|
tag.
|
||||||
<2> forward port all changes in private2.6.14 branch to master branch
|
<2> forward port all changes in private2.6.14 branch to master branch
|
||||||
without a formal "merging".
|
without a formal "merging".
|
||||||
------------
|
|
||||||
|
|
||||||
|
|
||||||
Integrator[[Integrator]]
|
Integrator[[Integrator]]
|
||||||
@ -317,7 +317,8 @@ $ git tag -s -m 'GIT 0.99.9x' v0.99.9x <10>
|
|||||||
$ git fetch ko && git show-branch master maint 'tags/ko-*' <11>
|
$ git fetch ko && git show-branch master maint 'tags/ko-*' <11>
|
||||||
$ git push ko <12>
|
$ git push ko <12>
|
||||||
$ git push ko v0.99.9x <13>
|
$ git push ko v0.99.9x <13>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> see what I was in the middle of doing, if any.
|
<1> see what I was in the middle of doing, if any.
|
||||||
<2> see what topic branches I have and think about how ready
|
<2> see what topic branches I have and think about how ready
|
||||||
they are.
|
they are.
|
||||||
@ -346,7 +347,6 @@ In the output from "git show-branch", "master" should have
|
|||||||
everything "ko-master" has.
|
everything "ko-master" has.
|
||||||
<12> push out the bleeding edge.
|
<12> push out the bleeding edge.
|
||||||
<13> push the tag out, too.
|
<13> push the tag out, too.
|
||||||
------------
|
|
||||||
|
|
||||||
|
|
||||||
Repository Administration[[Repository Administration]]
|
Repository Administration[[Repository Administration]]
|
||||||
@ -367,7 +367,6 @@ example of managing a shared central repository.
|
|||||||
|
|
||||||
Examples
|
Examples
|
||||||
~~~~~~~~
|
~~~~~~~~
|
||||||
|
|
||||||
Run git-daemon to serve /pub/scm from inetd.::
|
Run git-daemon to serve /pub/scm from inetd.::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
@ -388,13 +387,13 @@ cindy:x:1002:1002::/home/cindy:/usr/bin/git-shell
|
|||||||
david:x:1003:1003::/home/david:/usr/bin/git-shell
|
david:x:1003:1003::/home/david:/usr/bin/git-shell
|
||||||
$ grep git /etc/shells <2>
|
$ grep git /etc/shells <2>
|
||||||
/usr/bin/git-shell
|
/usr/bin/git-shell
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> log-in shell is set to /usr/bin/git-shell, which does not
|
<1> log-in shell is set to /usr/bin/git-shell, which does not
|
||||||
allow anything but "git push" and "git pull". The users should
|
allow anything but "git push" and "git pull". The users should
|
||||||
get an ssh access to the machine.
|
get an ssh access to the machine.
|
||||||
<2> in many distributions /etc/shells needs to list what is used
|
<2> in many distributions /etc/shells needs to list what is used
|
||||||
as the login shell.
|
as the login shell.
|
||||||
------------
|
|
||||||
|
|
||||||
CVS-style shared repository.::
|
CVS-style shared repository.::
|
||||||
+
|
+
|
||||||
@ -419,7 +418,8 @@ $ cat info/allowed-users <4>
|
|||||||
refs/heads/master alice\|cindy
|
refs/heads/master alice\|cindy
|
||||||
refs/heads/doc-update bob
|
refs/heads/doc-update bob
|
||||||
refs/tags/v[0-9]* david
|
refs/tags/v[0-9]* david
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> place the developers into the same git group.
|
<1> place the developers into the same git group.
|
||||||
<2> and make the shared repository writable by the group.
|
<2> and make the shared repository writable by the group.
|
||||||
<3> use update-hook example by Carl from Documentation/howto/
|
<3> use update-hook example by Carl from Documentation/howto/
|
||||||
@ -427,7 +427,6 @@ for branch policy control.
|
|||||||
<4> alice and cindy can push into master, only bob can push into doc-update.
|
<4> alice and cindy can push into master, only bob can push into doc-update.
|
||||||
david is the release manager and is the only person who can
|
david is the release manager and is the only person who can
|
||||||
create and push version tags.
|
create and push version tags.
|
||||||
------------
|
|
||||||
|
|
||||||
HTTP server to support dumb protocol transfer.::
|
HTTP server to support dumb protocol transfer.::
|
||||||
+
|
+
|
||||||
@ -435,7 +434,7 @@ HTTP server to support dumb protocol transfer.::
|
|||||||
dev$ git update-server-info <1>
|
dev$ git update-server-info <1>
|
||||||
dev$ ftp user@isp.example.com <2>
|
dev$ ftp user@isp.example.com <2>
|
||||||
ftp> cp -r .git /home/user/myproject.git
|
ftp> cp -r .git /home/user/myproject.git
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> make sure your info/refs and objects/info/packs are up-to-date
|
<1> make sure your info/refs and objects/info/packs are up-to-date
|
||||||
<2> upload to public HTTP server hosted by your ISP.
|
<2> upload to public HTTP server hosted by your ISP.
|
||||||
------------
|
|
||||||
|
@ -3,22 +3,27 @@ git-branch(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-branch - Create a new branch, or remove an old one
|
git-branch - List, create, or delete branches.
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git-branch' [[-f] <branchname> [<start-point>]]
|
'git-branch' [-r]
|
||||||
'git-branch' (-d | -D) <branchname>
|
'git-branch' [-f] <branchname> [<start-point>]
|
||||||
|
'git-branch' (-d | -D) <branchname>...
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
If no argument is provided, show available branches and mark current
|
With no arguments given (or just `-r`) a list of available branches
|
||||||
branch with star. Otherwise, create a new branch of name <branchname>.
|
will be shown, the current branch will be highlighted with an asterisk.
|
||||||
If a starting point is also specified, that will be where the branch is
|
|
||||||
created, otherwise it will be created at the current HEAD.
|
|
||||||
|
|
||||||
With a `-d` or `-D` option, `<branchname>` will be deleted.
|
In its second form, a new branch named <branchname> will be created.
|
||||||
|
It will start out with a head equal to the one given as <start-point>.
|
||||||
|
If no <start-point> is given, the branch will be created with a head
|
||||||
|
equal to that of the currently checked out branch.
|
||||||
|
|
||||||
|
With a `-d` or `-D` option, `<branchname>` will be deleted. You may
|
||||||
|
specify more than one branch for deletion.
|
||||||
|
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
@ -30,40 +35,56 @@ OPTIONS
|
|||||||
Delete a branch irrespective of its index status.
|
Delete a branch irrespective of its index status.
|
||||||
|
|
||||||
-f::
|
-f::
|
||||||
Force a reset of <branchname> to <start-point> (or current head).
|
Force the creation of a new branch even if it means deleting
|
||||||
|
a branch that already exists with the same name.
|
||||||
|
|
||||||
|
-r::
|
||||||
|
List only the "remote" branches.
|
||||||
|
|
||||||
<branchname>::
|
<branchname>::
|
||||||
The name of the branch to create or delete.
|
The name of the branch to create or delete.
|
||||||
|
|
||||||
<start-point>::
|
<start-point>::
|
||||||
Where to create the branch; defaults to HEAD. This
|
The new branch will be created with a HEAD equal to this. It may
|
||||||
option has no meaning with -d and -D.
|
be given as a branch name, a commit-id, or a tag. If this option
|
||||||
|
is omitted, the current branch is assumed.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
~~~~~~~~
|
--------
|
||||||
|
|
||||||
Start development off of a known tag::
|
Start development off of a known tag::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ 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
|
||||||
$ cd my2.6
|
$ cd my2.6
|
||||||
$ git branch my2.6.14 v2.6.14 <1>
|
$ git branch my2.6.14 v2.6.14 <1>
|
||||||
$ git checkout my2.6.14
|
$ git checkout my2.6.14
|
||||||
|
|
||||||
<1> These two steps are the same as "checkout -b my2.6.14 v2.6.14".
|
|
||||||
------------
|
------------
|
||||||
|
+
|
||||||
|
<1> This step and the next one could be combined into a single step with
|
||||||
|
"checkout -b my2.6.14 v2.6.14".
|
||||||
|
|
||||||
Delete unneeded branch::
|
Delete unneeded branch::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git clone git://git.kernel.org/.../git.git my.git
|
$ git clone git://git.kernel.org/.../git.git my.git
|
||||||
$ cd my.git
|
$ cd my.git
|
||||||
$ git branch -D todo <1>
|
$ git branch -D todo <1>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> delete todo branch even if the "master" branch does not have all
|
<1> delete todo branch even if the "master" branch does not have all
|
||||||
commits from todo branch.
|
commits from todo branch.
|
||||||
------------
|
|
||||||
|
|
||||||
|
Notes
|
||||||
|
-----
|
||||||
|
|
||||||
|
If you are creating a branch that you want to immediately checkout, it's
|
||||||
|
easier to use the git checkout command with its `-b` option to create
|
||||||
|
a branch and check it out with a single command.
|
||||||
|
|
||||||
|
|
||||||
Author
|
Author
|
||||||
------
|
------
|
||||||
|
@ -66,19 +66,19 @@ the `Makefile` to two revisions back, deletes hello.c by
|
|||||||
mistake, and gets it back from the index.
|
mistake, and gets it back from the index.
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git checkout master <1>
|
$ git checkout master <1>
|
||||||
$ git checkout master~2 Makefile <2>
|
$ git checkout master~2 Makefile <2>
|
||||||
$ rm -f hello.c
|
$ rm -f hello.c
|
||||||
$ git checkout hello.c <3>
|
$ git checkout hello.c <3>
|
||||||
|
|
||||||
<1> switch branch
|
|
||||||
<2> take out a file out of other commit
|
|
||||||
<3> or "git checkout -- hello.c", as in the next example.
|
|
||||||
------------
|
------------
|
||||||
+
|
+
|
||||||
If you have an unfortunate branch that is named `hello.c`, the
|
<1> switch branch
|
||||||
last step above would be confused as an instruction to switch to
|
<2> take out a file out of other commit
|
||||||
that branch. You should instead write:
|
<3> restore hello.c from HEAD of current branch
|
||||||
|
+
|
||||||
|
If you have an unfortunate branch that is named `hello.c`, this
|
||||||
|
step would be confused as an instruction to switch to that branch.
|
||||||
|
You should instead write:
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git checkout -- hello.c
|
$ git checkout -- hello.c
|
||||||
|
@ -46,40 +46,41 @@ EXAMPLES
|
|||||||
Various ways to check your working tree::
|
Various ways to check your working tree::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git diff <1>
|
$ git diff <1>
|
||||||
$ git diff --cached <2>
|
$ git diff --cached <2>
|
||||||
$ git diff HEAD <3>
|
$ git diff HEAD <3>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> changes in the working tree since your last git-update-index.
|
<1> changes in the working tree since your last git-update-index.
|
||||||
<2> changes between the index and your last commit; what you
|
<2> changes between the index and your last commit; what you
|
||||||
would be committing if you run "git commit" without "-a" option.
|
would be committing if you run "git commit" without "-a" option.
|
||||||
<3> changes in the working tree since your last commit; what you
|
<3> changes in the working tree since your last commit; what you
|
||||||
would be committing if you run "git commit -a"
|
would be committing if you run "git commit -a"
|
||||||
------------
|
|
||||||
|
|
||||||
Comparing with arbitrary commits::
|
Comparing with arbitrary commits::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git diff test <1>
|
$ git diff test <1>
|
||||||
$ git diff HEAD -- ./test <2>
|
$ git diff HEAD -- ./test <2>
|
||||||
$ git diff HEAD^ HEAD <3>
|
$ git diff HEAD^ HEAD <3>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> instead of using the tip of the current branch, compare with the
|
<1> instead of using the tip of the current branch, compare with the
|
||||||
tip of "test" branch.
|
tip of "test" branch.
|
||||||
<2> instead of comparing with the tip of "test" branch, compare with
|
<2> instead of comparing with the tip of "test" branch, compare with
|
||||||
the tip of the current branch, but limit the comparison to the
|
the tip of the current branch, but limit the comparison to the
|
||||||
file "test".
|
file "test".
|
||||||
<3> compare the version before the last commit and the last commit.
|
<3> compare the version before the last commit and the last commit.
|
||||||
------------
|
|
||||||
|
|
||||||
|
|
||||||
Limiting the diff output::
|
Limiting the diff output::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git diff --diff-filter=MRC <1>
|
$ git diff --diff-filter=MRC <1>
|
||||||
$ git diff --name-status -r <2>
|
$ git diff --name-status -r <2>
|
||||||
$ git diff arch/i386 include/asm-i386 <3>
|
$ git diff arch/i386 include/asm-i386 <3>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> show only modification, rename and copy, but not addition
|
<1> show only modification, rename and copy, but not addition
|
||||||
nor deletion.
|
nor deletion.
|
||||||
<2> show only names and the nature of change, but not actual
|
<2> show only names and the nature of change, but not actual
|
||||||
@ -88,18 +89,17 @@ which in turn also disables recursive behaviour, so without -r
|
|||||||
you would only see the directory name if there is a change in a
|
you would only see the directory name if there is a change in a
|
||||||
file in a subdirectory.
|
file in a subdirectory.
|
||||||
<3> limit diff output to named subtrees.
|
<3> limit diff output to named subtrees.
|
||||||
------------
|
|
||||||
|
|
||||||
Munging the diff output::
|
Munging the diff output::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git diff --find-copies-harder -B -C <1>
|
$ git diff --find-copies-harder -B -C <1>
|
||||||
$ git diff -R <2>
|
$ git diff -R <2>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> spend extra cycles to find renames, copies and complete
|
<1> spend extra cycles to find renames, copies and complete
|
||||||
rewrites (very expensive).
|
rewrites (very expensive).
|
||||||
<2> output diff in reverse.
|
<2> output diff in reverse.
|
||||||
------------
|
|
||||||
|
|
||||||
|
|
||||||
Author
|
Author
|
||||||
|
@ -60,12 +60,12 @@ Start a new git repository for an existing code base::
|
|||||||
+
|
+
|
||||||
----------------
|
----------------
|
||||||
$ cd /path/to/my/codebase
|
$ cd /path/to/my/codebase
|
||||||
$ git-init-db <1>
|
$ git-init-db <1>
|
||||||
$ git-add . <2>
|
$ git-add . <2>
|
||||||
|
----------------
|
||||||
|
+
|
||||||
<1> prepare /path/to/my/codebase/.git directory
|
<1> prepare /path/to/my/codebase/.git directory
|
||||||
<2> add all existing file to the index
|
<2> add all existing file to the index
|
||||||
----------------
|
|
||||||
|
|
||||||
|
|
||||||
Author
|
Author
|
||||||
|
@ -14,13 +14,12 @@ DESCRIPTION
|
|||||||
-----------
|
-----------
|
||||||
Shows the commit logs.
|
Shows the commit logs.
|
||||||
|
|
||||||
The command takes options applicable to the gitlink::git-rev-list[1]
|
The command takes options applicable to the gitlink:git-rev-list[1]
|
||||||
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 gitlink::git-diff-tree[1] commands to control how the change
|
the gitlink:git-diff-tree[1] commands to control how the change
|
||||||
each commit introduces are shown.
|
each commit introduces are shown.
|
||||||
|
|
||||||
This manual page describes only the most frequently used
|
This manual page describes only the most frequently used options.
|
||||||
options.
|
|
||||||
|
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
|
@ -49,10 +49,11 @@ Undo a commit and redo::
|
|||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git commit ...
|
$ git commit ...
|
||||||
$ git reset --soft HEAD^ <1>
|
$ git reset --soft HEAD^ <1>
|
||||||
$ edit <2>
|
$ edit <2>
|
||||||
$ git commit -a -c ORIG_HEAD <3>
|
$ git commit -a -c ORIG_HEAD <3>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> This is most often done when you remembered what you
|
<1> This is most often done when you remembered what you
|
||||||
just committed is incomplete, or you misspelled your commit
|
just committed is incomplete, or you misspelled your commit
|
||||||
message, or both. Leaves working tree as it was before "reset".
|
message, or both. Leaves working tree as it was before "reset".
|
||||||
@ -60,43 +61,43 @@ message, or both. Leaves working tree as it was before "reset".
|
|||||||
<3> "reset" copies the old head to .git/ORIG_HEAD; redo the
|
<3> "reset" copies the old head to .git/ORIG_HEAD; redo the
|
||||||
commit by starting with its log message. If you do not need to
|
commit by starting with its log message. If you do not need to
|
||||||
edit the message further, you can give -C option instead.
|
edit the message further, you can give -C option instead.
|
||||||
------------
|
|
||||||
|
|
||||||
Undo commits permanently::
|
Undo commits permanently::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git commit ...
|
$ git commit ...
|
||||||
$ git reset --hard HEAD~3 <1>
|
$ git reset --hard HEAD~3 <1>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> The last three commits (HEAD, HEAD^, and HEAD~2) were bad
|
<1> The last three commits (HEAD, HEAD^, and HEAD~2) were bad
|
||||||
and you do not want to ever see them again. Do *not* do this if
|
and you do not want to ever see them again. Do *not* do this if
|
||||||
you have already given these commits to somebody else.
|
you have already given these commits to somebody else.
|
||||||
------------
|
|
||||||
|
|
||||||
Undo a commit, making it a topic branch::
|
Undo a commit, making it a topic branch::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git branch topic/wip <1>
|
$ git branch topic/wip <1>
|
||||||
$ git reset --hard HEAD~3 <2>
|
$ git reset --hard HEAD~3 <2>
|
||||||
$ git checkout topic/wip <3>
|
$ git checkout topic/wip <3>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> You have made some commits, but realize they were premature
|
<1> You have made some commits, but realize they were premature
|
||||||
to be in the "master" branch. You want to continue polishing
|
to be in the "master" branch. You want to continue polishing
|
||||||
them in a topic branch, so create "topic/wip" branch off of the
|
them in a topic branch, so create "topic/wip" branch off of the
|
||||||
current HEAD.
|
current HEAD.
|
||||||
<2> Rewind the master branch to get rid of those three commits.
|
<2> Rewind the master branch to get rid of those three commits.
|
||||||
<3> Switch to "topic/wip" branch and keep working.
|
<3> Switch to "topic/wip" branch and keep working.
|
||||||
------------
|
|
||||||
|
|
||||||
Undo update-index::
|
Undo update-index::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ edit <1>
|
$ edit <1>
|
||||||
$ git-update-index frotz.c filfre.c
|
$ git-update-index frotz.c filfre.c
|
||||||
$ mailx <2>
|
$ mailx <2>
|
||||||
$ git reset <3>
|
$ git reset <3>
|
||||||
$ git pull git://info.example.com/ nitfol <4>
|
$ git pull git://info.example.com/ nitfol <4>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> you are happily working on something, and find the changes
|
<1> you are happily working on something, and find the changes
|
||||||
in these files are in good order. You do not want to see them
|
in these files are in good order. You do not want to see them
|
||||||
when you run "git diff", because you plan to work on other files
|
when you run "git diff", because you plan to work on other files
|
||||||
@ -109,12 +110,11 @@ index changes for these two files. Your changes in working tree
|
|||||||
remain there.
|
remain there.
|
||||||
<4> then you can pull and merge, leaving frotz.c and filfre.c
|
<4> then you can pull and merge, leaving frotz.c and filfre.c
|
||||||
changes still in the working tree.
|
changes still in the working tree.
|
||||||
------------
|
|
||||||
|
|
||||||
Undo a merge or pull::
|
Undo a merge or pull::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git pull <1>
|
$ git pull <1>
|
||||||
Trying really trivial in-index merge...
|
Trying really trivial in-index merge...
|
||||||
fatal: Merge requires file-level merging
|
fatal: Merge requires file-level merging
|
||||||
Nope.
|
Nope.
|
||||||
@ -122,20 +122,19 @@ Nope.
|
|||||||
Auto-merging nitfol
|
Auto-merging nitfol
|
||||||
CONFLICT (content): Merge conflict in nitfol
|
CONFLICT (content): Merge conflict in nitfol
|
||||||
Automatic merge failed/prevented; fix up by hand
|
Automatic merge failed/prevented; fix up by hand
|
||||||
$ git reset --hard <2>
|
$ git reset --hard <2>
|
||||||
|
$ git pull . topic/branch <3>
|
||||||
|
Updating from 41223... to 13134...
|
||||||
|
Fast forward
|
||||||
|
$ git reset --hard ORIG_HEAD <4>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> try to update from the upstream resulted in a lot of
|
<1> try to update from the upstream resulted in a lot of
|
||||||
conflicts; you were not ready to spend a lot of time merging
|
conflicts; you were not ready to spend a lot of time merging
|
||||||
right now, so you decide to do that later.
|
right now, so you decide to do that later.
|
||||||
<2> "pull" has not made merge commit, so "git reset --hard"
|
<2> "pull" has not made merge commit, so "git reset --hard"
|
||||||
which is a synonym for "git reset --hard HEAD" clears the mess
|
which is a synonym for "git reset --hard HEAD" clears the mess
|
||||||
from the index file and the working tree.
|
from the index file and the working tree.
|
||||||
|
|
||||||
$ git pull . topic/branch <3>
|
|
||||||
Updating from 41223... to 13134...
|
|
||||||
Fast forward
|
|
||||||
$ git reset --hard ORIG_HEAD <4>
|
|
||||||
|
|
||||||
<3> merge a topic branch into the current branch, which resulted
|
<3> merge a topic branch into the current branch, which resulted
|
||||||
in a fast forward.
|
in a fast forward.
|
||||||
<4> but you decided that the topic branch is not ready for public
|
<4> but you decided that the topic branch is not ready for public
|
||||||
@ -143,7 +142,6 @@ consumption yet. "pull" or "merge" always leaves the original
|
|||||||
tip of the current branch in ORIG_HEAD, so resetting hard to it
|
tip of the current branch in ORIG_HEAD, so resetting hard to it
|
||||||
brings your index file and the working tree back to that state,
|
brings your index file and the working tree back to that state,
|
||||||
and resets the tip of the branch to that commit.
|
and resets the tip of the branch to that commit.
|
||||||
------------
|
|
||||||
|
|
||||||
Interrupted workflow::
|
Interrupted workflow::
|
||||||
+
|
+
|
||||||
@ -155,21 +153,21 @@ need to get to the other branch for a quick bugfix.
|
|||||||
------------
|
------------
|
||||||
$ git checkout feature ;# you were working in "feature" branch and
|
$ git checkout feature ;# you were working in "feature" branch and
|
||||||
$ work work work ;# got interrupted
|
$ work work work ;# got interrupted
|
||||||
$ git commit -a -m 'snapshot WIP' <1>
|
$ git commit -a -m 'snapshot WIP' <1>
|
||||||
$ git checkout master
|
$ git checkout master
|
||||||
$ fix fix fix
|
$ fix fix fix
|
||||||
$ git commit ;# commit with real log
|
$ git commit ;# commit with real log
|
||||||
$ git checkout feature
|
$ git checkout feature
|
||||||
$ git reset --soft HEAD^ ;# go back to WIP state <2>
|
$ git reset --soft HEAD^ ;# go back to WIP state <2>
|
||||||
$ git reset <3>
|
$ git reset <3>
|
||||||
|
------------
|
||||||
|
+
|
||||||
<1> This commit will get blown away so a throw-away log message is OK.
|
<1> This commit will get blown away so a throw-away log message is OK.
|
||||||
<2> This removes the 'WIP' commit from the commit history, and sets
|
<2> This removes the 'WIP' commit from the commit history, and sets
|
||||||
your working tree to the state just before you made that snapshot.
|
your working tree to the state just before you made that snapshot.
|
||||||
<3> After <2>, the index file still has all the WIP changes you
|
<3> At this point the index file still has all the WIP changes you
|
||||||
committed in <1>. This sets it to the last commit you were
|
committed as 'snapshot WIP'. This updates the index to show your
|
||||||
basing the WIP changes on.
|
WIP files as uncommitted.
|
||||||
------------
|
|
||||||
|
|
||||||
Author
|
Author
|
||||||
------
|
------
|
||||||
|
@ -247,34 +247,33 @@ 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
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
On an inefficient filesystem with `core.ignorestat` set:
|
On an inefficient filesystem with `core.ignorestat` set::
|
||||||
|
+
|
||||||
------------
|
------------
|
||||||
$ git update-index --really-refresh <1>
|
$ git update-index --really-refresh <1>
|
||||||
$ git update-index --no-assume-unchanged foo.c <2>
|
$ git update-index --no-assume-unchanged foo.c <2>
|
||||||
$ git diff --name-only <3>
|
$ git diff --name-only <3>
|
||||||
$ edit foo.c
|
$ edit foo.c
|
||||||
$ git diff --name-only <4>
|
$ git diff --name-only <4>
|
||||||
M foo.c
|
M foo.c
|
||||||
$ git update-index foo.c <5>
|
$ git update-index foo.c <5>
|
||||||
$ git diff --name-only <6>
|
$ git diff --name-only <6>
|
||||||
$ edit foo.c
|
$ edit foo.c
|
||||||
$ git diff --name-only <7>
|
$ git diff --name-only <7>
|
||||||
$ git update-index --no-assume-unchanged foo.c <8>
|
$ git update-index --no-assume-unchanged foo.c <8>
|
||||||
$ git diff --name-only <9>
|
$ git diff --name-only <9>
|
||||||
M foo.c
|
M foo.c
|
||||||
|
------------
|
||||||
<1> forces lstat(2) to set "assume unchanged" bits for paths
|
+
|
||||||
that match index.
|
<1> forces lstat(2) to set "assume unchanged" bits for paths that match index.
|
||||||
<2> mark the path to be edited.
|
<2> mark the path to be edited.
|
||||||
<3> this does lstat(2) and finds index matches the path.
|
<3> this does lstat(2) and finds index matches the path.
|
||||||
<4> this does lstat(2) and finds index does not match the path.
|
<4> this does lstat(2) and finds index does *not* match the path.
|
||||||
<5> registering the new version to index sets "assume unchanged" bit.
|
<5> registering the new version to index sets "assume unchanged" bit.
|
||||||
<6> and it is assumed unchanged.
|
<6> and it is assumed unchanged.
|
||||||
<7> even after you edit it.
|
<7> even after you edit it.
|
||||||
<8> you can tell about the change after the fact.
|
<8> you can tell about the change after the fact.
|
||||||
<9> now it checks with lstat(2) and finds it has been changed.
|
<9> now it checks with lstat(2) and finds it has been changed.
|
||||||
------------
|
|
||||||
|
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
|
@ -376,6 +376,13 @@ do
|
|||||||
echo "No changes - did you forget update-index?"
|
echo "No changes - did you forget update-index?"
|
||||||
stop_here $this
|
stop_here $this
|
||||||
fi
|
fi
|
||||||
|
unmerged=$(git-ls-files -u)
|
||||||
|
if test -n "$unmerged"
|
||||||
|
then
|
||||||
|
echo "You still have unmerged paths in your index"
|
||||||
|
echo "did you forget update-index?"
|
||||||
|
stop_here $this
|
||||||
|
fi
|
||||||
apply_status=0
|
apply_status=0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -10,9 +10,10 @@ use warnings;
|
|||||||
use strict;
|
use strict;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
use POSIX qw(strftime gmtime);
|
use POSIX qw(strftime gmtime);
|
||||||
|
use File::Basename qw(basename dirname);
|
||||||
|
|
||||||
sub usage() {
|
sub usage() {
|
||||||
print STDERR 'Usage: ${\basename $0} [-s] [-S revs-file] file [ revision ]
|
print STDERR "Usage: ${\basename $0} [-s] [-S revs-file] file [ revision ]
|
||||||
-l, --long
|
-l, --long
|
||||||
Show long rev (Defaults off)
|
Show long rev (Defaults off)
|
||||||
-t, --time
|
-t, --time
|
||||||
@ -23,7 +24,7 @@ sub usage() {
|
|||||||
Use revs from revs-file instead of calling git-rev-list
|
Use revs from revs-file instead of calling git-rev-list
|
||||||
-h, --help
|
-h, --help
|
||||||
This message.
|
This message.
|
||||||
';
|
";
|
||||||
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -35,7 +36,7 @@ my $rc = GetOptions( "long|l" => \$longrev,
|
|||||||
"help|h" => \$help,
|
"help|h" => \$help,
|
||||||
"rename|r" => \$rename,
|
"rename|r" => \$rename,
|
||||||
"rev-file|S=s" => \$rev_file);
|
"rev-file|S=s" => \$rev_file);
|
||||||
if (!$rc or $help) {
|
if (!$rc or $help or !@ARGV) {
|
||||||
usage();
|
usage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,6 +209,9 @@ sub find_parent_renames {
|
|||||||
while (my $change = <$patch>) {
|
while (my $change = <$patch>) {
|
||||||
chomp $change;
|
chomp $change;
|
||||||
my $filename = <$patch>;
|
my $filename = <$patch>;
|
||||||
|
if (!defined $filename) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
chomp $filename;
|
chomp $filename;
|
||||||
|
|
||||||
if ($change =~ m/^[AMD]$/ ) {
|
if ($change =~ m/^[AMD]$/ ) {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
USAGE='[(-d | -D) <branchname>] | [[-f] <branchname> [<start-point>]]'
|
USAGE='[(-d | -D) <branchname>] | [[-f] <branchname> [<start-point>]] | -r'
|
||||||
LONG_USAGE='If no arguments, show available branches and mark current branch with a star.
|
LONG_USAGE='If no arguments, show available branches and mark current branch with a star.
|
||||||
If one argument, create a new branch <branchname> based off of current HEAD.
|
If one argument, create a new branch <branchname> based off of current HEAD.
|
||||||
If two arguments, create a new branch <branchname> based off of <start-point>.'
|
If two arguments, create a new branch <branchname> based off of <start-point>.'
|
||||||
|
Loading…
Reference in New Issue
Block a user