X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=Documentation%2Fgit-clone.txt;h=ac938d39df7a4b5b5ea3e4ca8cb2cf505fc49752;hb=c78a24986d4d3faff810e87dbcd0ac99f0eabbce;hp=985043facab96a29e7cf19df213539312e7b5642;hpb=f88bd392e6aa57a985604b13f6ade47f241b3c77;p=git.git diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt index 985043fac..14e58f386 100644 --- a/Documentation/git-clone.txt +++ b/Documentation/git-clone.txt @@ -3,35 +3,36 @@ git-clone(1) NAME ---- -git-clone - Clones a repository +git-clone - Clone a repository into a new directory SYNOPSIS -------- [verse] -'git-clone' [--template=] [-l [-s]] [-q] [-n] [--bare] +'git-clone' [--template=] + [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [-o ] [-u ] [--reference ] - [--use-separate-remote | --no-separate-remote] - [] + [--depth ] [--] [] DESCRIPTION ----------- Clones a repository into a newly created directory, creates remote-tracking branches for each branch in the cloned repository -(visible using `git branch -r`), and creates and checks out a master -branch equal to the cloned repository's master branch. +(visible using `git branch -r`), and creates and checks out an initial +branch equal to the cloned repository's currently active branch. After the clone, a plain `git fetch` without arguments will update all the remote-tracking branches, and a `git pull` without arguments will in addition merge the remote master branch into the -current branch. +current master branch, if any. This default configuration is achieved by creating references to the remote branch heads under `$GIT_DIR/refs/remotes/origin` and by initializing `remote.origin.url` and `remote.origin.fetch` configuration variables. + OPTIONS ------- --local:: @@ -40,8 +41,19 @@ OPTIONS this flag bypasses normal "git aware" transport mechanism and clones the repository by making a copy of HEAD and everything under objects and refs directories. - The files under .git/objects/ directory are hardlinked - to save space when possible. + The files under `.git/objects/` directory are hardlinked + to save space when possible. This is now the default when + the source repository is specified with `/path/to/repo` + syntax, so it essentially is a no-op option. To force + copying instead of hardlinking (which may be desirable + if you are trying to make a back-up of your repository), + but still avoid the usual "git aware" transport + mechanism, `--no-hardlinks` can be used. + +--no-hardlinks:: + Optimize the cloning process from a repository on a + local filesystem by copying files under `.git/objects` + directory. --shared:: -s:: @@ -56,7 +68,7 @@ OPTIONS automatically setup .git/objects/info/alternates to obtain objects from the reference repository. Using an already existing repository as an alternate will - require less objects to be copied from the repository + require fewer objects to be copied from the repository being cloned, reducing network and local storage costs. --quiet:: @@ -64,6 +76,7 @@ OPTIONS Operate quietly. This flag is passed to "rsync" and "git-fetch-pack" commands when given. +--no-checkout:: -n:: No checkout of HEAD is performed after the clone is complete. @@ -76,16 +89,13 @@ OPTIONS Also the branch heads at the remote are copied directly to corresponding local branch heads, without mapping them to `refs/remotes/origin/`. When this option is - used, neither the `origin` branch nor the default - `remotes/origin` file is created. + used, neither remote-tracking branches nor the related + configuration variables are created. --origin :: -o :: - Instead of using the branch name 'origin' to keep track - of the upstream repository, use instead. Note - that the shorthand name stored in `remotes/origin` is - not affected, but the local branch name to pull the - remote `master` branch into is. + Instead of using the remote name 'origin' to keep track + of the upstream repository, use instead. --upload-pack :: -u :: @@ -99,21 +109,19 @@ OPTIONS if unset the templates are taken from the installation defined default, typically `/usr/share/git-core/templates`. ---use-separate-remote:: - Save remotes heads under `$GIT_DIR/remotes/origin/` instead - of `$GIT_DIR/refs/heads/`. Only the local master branch is - saved in the latter. This is the default. - ---no-separate-remote:: - Save remotes heads in the same namespace as the local - heads, `$GIT_DIR/refs/heads/'. In regular repositories, - this is a legacy setup git-clone created by default in - older Git versions, and will be removed before the next - major release. +--depth :: + Create a 'shallow' clone with a history truncated to the + specified number of revisions. A shallow repository has a + number of limitations (you cannot clone or fetch from + it, nor push from nor into it), but is adequate if you + are only interested in the recent history of a large project + with a long history, and would want to send in fixes + as patches. :: - The (possibly remote) repository to clone from. It can - be any URL git-fetch supports. + The (possibly remote) repository to clone from. See the + <> section below for more information on specifying + repositories. :: The name of a new directory to clone into. The "humanish" @@ -122,6 +130,8 @@ OPTIONS for "host.xz:foo/.git"). Cloning into an existing directory is not allowed. +include::urls.txt[] + Examples -------- @@ -138,7 +148,7 @@ Make a local clone that borrows from the current directory, without checking thi + ------------ $ git clone -l -s -n . ../copy -$ cd copy +$ cd ../copy $ git show-branch ------------ @@ -181,4 +191,3 @@ Documentation by Junio C Hamano and the git-list . GIT --- Part of the gitlink:git[7] suite -