Skip to content

Commit

Permalink
Merge branches 'jc/checkout', 'jc/format-patch', 'jc/octopus', 'jc/sb…
Browse files Browse the repository at this point in the history
…' and 'jc/clone'
  • Loading branch information
Junio C Hamano committed Jan 15, 2006
6 parents 9e9b267 + 980d8ce + 36383a3 + 98efc8f + 1aa68d6 + 8a1a120 commit d425142
Show file tree
Hide file tree
Showing 10 changed files with 286 additions and 165 deletions.
24 changes: 23 additions & 1 deletion Documentation/git-clone.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ git-clone - Clones a repository.
SYNOPSIS
--------
[verse]
'git-clone' [-l [-s]] [-q] [-n] [-o <name>] [-u <upload-pack>]
'git-clone' [-l [-s]] [-q] [-n] [--naked] [-o <name>] [-u <upload-pack>]
<repository> [<directory>]

DESCRIPTION
Expand Down Expand Up @@ -58,6 +58,12 @@ OPTIONS
-n::
No checkout of HEAD is performed after the clone is complete.

--naked::
Make a 'naked' GIT repository. That is, instead of
creating `<directory>` and placing the administrative
files in `<directory>/.git`, make the `<directory>`
itself the `$GIT_DIR`. This implies `-n` option.

-o <name>::
Instead of using the branch name 'origin' to keep track
of the upstream repository, use <name> instead. Note
Expand Down Expand Up @@ -103,6 +109,22 @@ $ cd copy
$ git show-branch
------------


Create a naked repository to publish your changes to the public::
+
------------
$ git clone --naked -l /home/proj/.git /pub/scm/proj.git
------------


Create a repository on the kernel.org machine that borrows from Linus::
+
------------
$ git clone --naked -l -s /pub/scm/.../torvalds/linux-2.6.git \
/pub/scm/.../me/subsys-2.6.git
------------


Author
------
Written by Linus Torvalds <torvalds@osdl.org>
Expand Down
50 changes: 41 additions & 9 deletions Documentation/git-show-branch.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ git-show-branch - Show branches and their commits.

SYNOPSIS
--------
'git-show-branch [--all] [--heads] [--tags] [--topo-order] [--more=<n> | --list | --independent | --merge-base] [--no-name | --sha1-name] [<rev> | <glob>]...'
[verse]
git-show-branch [--all] [--heads] [--tags] [--topo-order] [--current]
[--more=<n> | --list | --independent | --merge-base]
[--no-name | --sha1-name] [<rev> | <glob>]...

DESCRIPTION
-----------
Expand All @@ -18,6 +21,9 @@ and/or $GIT_DIR/refs/tags) semi-visually.

It cannot show more than 29 branches and commits at a time.

It uses `showbranch.default` multi-valued configuration items if
no <rev> nor <glob> is given on the command line.


OPTIONS
-------
Expand All @@ -35,6 +41,11 @@ OPTIONS
Show all refs under $GIT_DIR/refs, $GIT_DIR/refs/heads,
and $GIT_DIR/refs/tags, respectively.

--current::
With this option, the command includes the current
branch to the list of revs to be shown when it is not
given on the command line.

--topo-order::
By default, the branches and their commits are shown in
reverse chronological order. This option makes them
Expand All @@ -50,7 +61,7 @@ OPTIONS
tree.

--list::
Synomym to `--more=-1`
Synonym to `--more=-1`

--merge-base::
Instead of showing the commit list, just act like the
Expand Down Expand Up @@ -78,21 +89,22 @@ OUTPUT
------
Given N <references>, the first N lines are the one-line
description from their commit message. The branch head that is
pointed at by $GIT_DIR/HEAD is prefixed with an asterisk '*'
character while other heads are prefixed with a '!' character.
pointed at by $GIT_DIR/HEAD is prefixed with an asterisk `*`
character while other heads are prefixed with a `!` character.

Following these N lines, one-line log for each commit is
displayed, indented N places. If a commit is on the I-th
branch, the I-th indentation character shows a '+' sign;
otherwise it shows a space. Each commit shows a short name that
branch, the I-th indentation character shows a `+` sign;
otherwise it shows a space. Merge commits are denoted by
a `-` sign. Each commit shows a short name that
can be used as an extended SHA1 to name that commit.

The following example shows three branches, "master", "fixes"
and "mhf":

------------------------------------------------
$ git show-branch master fixes mhf
! [master] Add 'git show-branch'.
* [master] Add 'git show-branch'.
! [fixes] Introduce "reset type" flag to "git reset"
! [mhf] Allow "+remote:local" refspec to cause --force when fetching.
---
Expand All @@ -106,13 +118,33 @@ $ git show-branch master fixes mhf
+ [mhf~6] Retire git-parse-remote.
+ [mhf~7] Multi-head fetch.
+ [mhf~8] Start adding the $GIT_DIR/remotes/ support.
+++ [master] Add 'git show-branch'.
*++ [master] Add 'git show-branch'.
------------------------------------------------

These three branches all forked from a common commit, [master],
whose commit message is "Add 'git show-branch'. "fixes" branch
adds one commit 'Introduce "reset type"'. "mhf" branch has many
other commits.
other commits. The current branch is "master".


EXAMPLE
-------

If you keep your primary branches immediately under
`$GIT_DIR/refs/heads`, and topic branches in subdirectories of
it, having the following in the configuration file may help:

------------
[showbranch]
default = --topo-order
default = heads/*

------------

With this,`git show-branch` without extra parameters would show
only the primary branches. In addition, if you happen to be on
your topic branch, it is shown as well.



Author
Expand Down
24 changes: 12 additions & 12 deletions Documentation/howto/revert-branch-rebase.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,16 @@ merge introduced 5 commits or so:

------------------------------------------------
$ git show-branch --more=4 master master^2 | head
! [master] Merge refs/heads/portable from http://www.cs.berkeley....
* [master] Merge refs/heads/portable from http://www.cs.berkeley....
! [master^2] Replace C99 array initializers with code.
--
+ [master] Merge refs/heads/portable from http://www.cs.berkeley....
++ [master^2] Replace C99 array initializers with code.
++ [master^2~1] Replace unsetenv() and setenv() with older putenv().
++ [master^2~2] Include sys/time.h in daemon.c.
++ [master^2~3] Fix ?: statements.
++ [master^2~4] Replace zero-length array decls with [].
+ [master~1] tutorial note about git branch
- [master] Merge refs/heads/portable from http://www.cs.berkeley....
*+ [master^2] Replace C99 array initializers with code.
*+ [master^2~1] Replace unsetenv() and setenv() with older putenv().
*+ [master^2~2] Include sys/time.h in daemon.c.
*+ [master^2~3] Fix ?: statements.
*+ [master^2~4] Replace zero-length array decls with [].
* [master~1] tutorial note about git branch
------------------------------------------------

The '--more=4' above means "after we reach the merge base of refs,
Expand Down Expand Up @@ -193,8 +193,8 @@ $ git show-branch --more=1 master pu rc
+ [pu~4] Document "git cherry-pick" and "git revert"
+ [pu~5] Remove git-apply-patch-script.
+ [pu~6] Redo "revert" using three-way merge machinery.
+ [rc] Merge refs/heads/master from .
+++ [master] Revert "Replace zero-length array decls with []."
+ [rc~1] Merge refs/heads/master from .
+++ [master~1] Merge refs/heads/portable from http://www.cs.berkeley....
- [rc] Merge refs/heads/master from .
++* [master] Revert "Replace zero-length array decls with []."
- [rc~1] Merge refs/heads/master from .
... [master~1] Merge refs/heads/portable from http://www.cs.berkeley....
------------------------------------------------
49 changes: 25 additions & 24 deletions Documentation/tutorial.txt
Original file line number Diff line number Diff line change
Expand Up @@ -968,8 +968,8 @@ $ git show-branch master mybranch
* [master] Merge work in mybranch
! [mybranch] Some work.
--
+ [master] Merge work in mybranch
++ [mybranch] Some work.
- [master] Merge work in mybranch
*+ [mybranch] Some work.
------------------------------------------------

The first two lines indicate that it is showing the two branches
Expand All @@ -979,7 +979,8 @@ top-of-the-tree commits, you are currently on `master` branch
the later output lines is used to show commits contained in the
`master` branch, and the second column for the `mybranch`
branch. Three commits are shown along with their log messages.
All of them have plus `+` characters in the first column, which
All of them have non blank characters in the first column (`*`
shows an ordinary commit on the current branch, `.` is a merge commit), which
means they are now part of the `master` branch. Only the "Some
work" commit has the plus `+` character in the second column,
because `mybranch` has not been merged to incorporate these
Expand Down Expand Up @@ -1024,7 +1025,7 @@ $ git show-branch master mybranch
! [master] Merge work in mybranch
* [mybranch] Merge work in mybranch
--
++ [master] Merge work in mybranch
-- [master] Merge work in mybranch
------------------------------------------------


Expand Down Expand Up @@ -1199,9 +1200,9 @@ $ git show-branch --more=3 master mybranch
! [master] Merge work in mybranch
* [mybranch] Merge work in mybranch
--
++ [master] Merge work in mybranch
++ [master^2] Some work.
++ [master^] Some fun.
-- [master] Merge work in mybranch
+* [master^2] Some work.
+* [master^] Some fun.
------------

Remember, before running `git merge`, our `master` head was at
Expand All @@ -1223,8 +1224,8 @@ $ git show-branch
! [mybranch] Some work.
--
+ [mybranch] Some work.
+ [master] Some fun.
++ [mybranch^] New day.
* [master] Some fun.
*+ [mybranch^] New day.
------------

Now we are ready to experiment with the merge by hand.
Expand Down Expand Up @@ -1743,8 +1744,8 @@ $ git show-branch
+ [diff-fix] Fix rename detection.
+ [diff-fix~1] Better common substring algorithm.
+ [commit-fix] Fix commit message normalization.
+ [master] Release candidate #1
+++ [diff-fix~2] Pretty-print messages.
* [master] Release candidate #1
++* [diff-fix~2] Pretty-print messages.
------------

Both fixes are tested well, and at this point, you want to merge
Expand All @@ -1764,13 +1765,13 @@ $ git show-branch
! [diff-fix] Fix rename detection.
* [master] Merge fix in commit-fix
---
+ [master] Merge fix in commit-fix
+ + [commit-fix] Fix commit message normalization.
+ [master~1] Merge fix in diff-fix
++ [diff-fix] Fix rename detection.
++ [diff-fix~1] Better common substring algorithm.
+ [master~2] Release candidate #1
+++ [master~3] Pretty-print messages.
- [master] Merge fix in commit-fix
+ * [commit-fix] Fix commit message normalization.
- [master~1] Merge fix in diff-fix
+* [diff-fix] Fix rename detection.
+* [diff-fix~1] Better common substring algorithm.
* [master~2] Release candidate #1
++* [master~3] Pretty-print messages.
------------

However, there is no particular reason to merge in one branch
Expand All @@ -1797,12 +1798,12 @@ $ git show-branch
! [diff-fix] Fix rename detection.
* [master] Octopus merge of branches 'diff-fix' and 'commit-fix'
---
+ [master] Octopus merge of branches 'diff-fix' and 'commit-fix'
+ + [commit-fix] Fix commit message normalization.
++ [diff-fix] Fix rename detection.
++ [diff-fix~1] Better common substring algorithm.
+ [master~1] Release candidate #1
+++ [master~2] Pretty-print messages.
- [master] Octopus merge of branches 'diff-fix' and 'commit-fix'
+ * [commit-fix] Fix commit message normalization.
+* [diff-fix] Fix rename detection.
+* [diff-fix~1] Better common substring algorithm.
* [master~1] Release candidate #1
++* [master~2] Pretty-print messages.
------------

Note that you should not do Octopus because you can. An octopus
Expand Down
3 changes: 3 additions & 0 deletions git-checkout.sh
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,9 @@ else
esac
exit 0
)
saved_err=$?
git diff-files --name-status
(exit $saved_err)
fi

#
Expand Down
Loading

0 comments on commit d425142

Please sign in to comment.