Re: git clone operation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mike Gant <mwgant@xxxxxxxxx> writes:

> I'm trying to understand git-clone and what to expect when I clone a
> repository. Disclaimer, I am a newbie :).
[...]

> According to the man page, git-clone "creates and checks out an initial
> branch equal to the cloned repository's currently active branch."
[...]

> Now, let's say that I am working in the cpu-intfc branch of the original
> repository and I clone the repository.
> 
> Running git-branch -a returns the following
> 
>   origin/HEAD
>   origin/cpu-intfc
>   origin/gige_mux
>   origin/improve-build
>   origin/main-devel
>   origin/master
> * cpu-intfc
> 
> And this,
> 
> $ cat .git/refs/remotes/origin/HEAD
> ref: refs/remotes/origin/cpu-intfc
> 
> I was expecting to have a local branch named master (that is equal to
> the remote branch origin/cpu-intfc) instead of cpu-intfc. Am I wrong to
> expect this? Also, as a newbie user, it seems odd that I cannot specify
> which branch of repo that I am cloning should be the default (master)
> branch of the cloned repo? To put it another way, when cloning a repo I
> have no way of controlling which branch I get as the default. It just
> happens to depend on which branch the developer is working in at the
> time I clone.  I've read through the man-page and there doesn't seem to
> be any way around this.

Currently the situation is a bit strange, because while git-remote
supports selecting which branch is meant to be remote-tracking master
branch via '-m <master>' option to "add" subcommand (setting
origin/HEAD symref), git-clone which is init + remote + fetch + some
bookkeeping and shortcuts doesn't.

Both commands are now built-in.

> I realize that I can create a new local branch that is based off the
> desired branch:
> 
> $ git-checkout -b master origin/master
> 
> Is this the accepted method for obtaining the desired branch?

You can use (with new anough Git)

  $ git checkout --track -b master origin/master

to setup repository in such way that "git pull" on 'master'
would know that it is meant to fetch from 'origin' and merge
'origin/master'.

In upcoming 1.6.1 it would be enough to use

  $ git checkout --track origin/master

-- 
Jakub Narebski
Poland
ShadeHawk on #git
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux