git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Philip Oakley <philipoakley@iee.org>
To: Ulrich Windl <Ulrich.Windl@rz.uni-regensburg.de>, git@vger.kernel.org
Subject: Re: Antw: Re: Missing branches after clone
Date: Wed, 15 May 2019 08:34:17 +0100	[thread overview]
Message-ID: <b75bd892-b216-3c7d-f9e7-4470300e02fc@iee.org> (raw)
In-Reply-To: <5CDAAB56020000A100031334@gwsmtp.uni-regensburg.de>

On 14/05/2019 12:49, Ulrich Windl wrote:
> Hi!
>
> The confusing part actually is for me:
> "git clone" does NOT "Clone a repository into a new directory", but "clone the current branch into a new directory" (IMHO).
> So I was surprised that I couldn't merge branches under the same name in the cloned "repository".
> Only "git clone --bare" actually seems to clone "the repository".
> I think this is very confusing to new users. At least I didn't quite get the reasoning for that.
It's that you are missing the idea behind the "Branches that track the 
remote", which are local copies, but not YOUR branches. see below.
I clone the GitHub test repo. I get (a copy of) it all (the rtb's). Git 
_creates_ a local branch 'master' for me. Git checks out the lead remote 
branch into it. Command prompt returns. I cd into the new repo. I ask 
what branches _I_ have - just 'master'. I ask about all the branches the 
repo has - voila, I see all those rtb's in _my_ repo. They are all 
perfectly valid branch refs.

It will take a little while to appreciate this extra layer and how to 
use it, and how Git can 'dwim' (do what I mean) the usage of shortened 
refs and branch names, so it you try checking out 'change-the-title', 
git will know to fall back to using the rtb if you haven't created a 
local version.
Hope That Helps.
Philip

phili@Philip-Win10 MINGW64 / (master)
$ cd usr/src

phili@Philip-Win10 MINGW64 /usr/src (master)
$ git clone https://github.com/octocat/Spoon-Knife.git
Cloning into 'Spoon-Knife'...
remote: Enumerating objects: 16, done.
remote: Total 16 (delta 0), reused 0 (delta 0), pack-reused 16
Unpacking objects: 100% (16/16), done.

phili@Philip-Win10 MINGW64 /usr/src (master)
$ cd Spoon-Knife/

phili@Philip-Win10 MINGW64 /usr/src/Spoon-Knife (master)
$ git branch
* master

phili@Philip-Win10 MINGW64 /usr/src/Spoon-Knife (master)
$ git branch -a
* master
   remotes/origin/HEAD -> origin/master
   remotes/origin/change-the-title
   remotes/origin/master
   remotes/origin/test-branch

phili@Philip-Win10 MINGW64 /usr/src/Spoon-Knife (master)
$

--
PS What change to the [clone?] man page would have helped you here?

>> Philip Oakley <philipoakley@iee.org> schrieb am 14.05.2019 um 12:33 in
> Nachricht <0c9ec78a-9245-e1df-7ec6-a5d77d1a5261@iee.org>:
>> Hi Ulrich,
>> On 14/05/2019 11:12, Duy Nguyen wrote:
>>>> Then I
>> foundhttps://stackoverflow.com/questions/10312521/how-to-fetch-all-git-branch
>> es  which handles the subject...
>>>> But still the most common solution there still looks like an ugly hack.
>>>> Thus I suggest to improve the man-pages (unless done already)
>>> Yeah I expected to see at least some definition of remote-tracking
>>> branches (vs local ones) but I didn't see one. Room for improvement.
>> Yes, the 'remote tracking branch' name [RTB] is very 'French' in its
>> backwardness (see NATO/OTAN).
>>
>> It is a 'branch which tracks a remote', and it is has the 'last time I
>> looked' state of the branch that is on the remote server, which may
>> have, by now, advanced or changed.
>>
>> So you need to have the three distinct views in your head of 'My branch,
>> held locally', 'my copy of Their branch, from when I last looked', and
>> 'Their branch, on a remote server, in a state I haven't seen recently'.
>>
>> Finding a better name for the "RTB", one with an easier cognitive load
>> for those trying to understand Git, would be an improvement.
>>
>> Though there has been a similar issue with 'staging the index'.
>> Ultimately it is a new way of thinking about artefacts (perfect
>> duplicates, no originals, no master, no copies, just verification
>> hashes) so needs new terms and a difficult learning experience.
>> -- 
>> Philip
>
>
>


  reply	other threads:[~2019-05-15  7:34 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-14  9:41 Missing branches after clone Ulrich Windl
2019-05-14 10:12 ` Duy Nguyen
2019-05-14 10:33   ` Philip Oakley
2019-05-14 10:53     ` Duy Nguyen
2019-05-14 11:10       ` Philip Oakley
2019-05-18 12:17         ` Duy Nguyen
2019-05-19  0:09           ` Philip Oakley
2019-05-14 11:49     ` Antw: " Ulrich Windl
2019-05-15  7:34       ` Philip Oakley [this message]
2019-05-15  8:45         ` Ulrich Windl
2019-05-15 13:07           ` Philip Oakley
2019-05-15  1:50     ` Junio C Hamano
2019-05-15  7:13       ` Philip Oakley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b75bd892-b216-3c7d-f9e7-4470300e02fc@iee.org \
    --to=philipoakley@iee.org \
    --cc=Ulrich.Windl@rz.uni-regensburg.de \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).