1-800-GIT-HELP

Nathan Sidwell nathan@acm.org
Mon Jan 13 16:02:00 GMT 2020


On 1/13/20 6:33 AM, Jonathan Wakely wrote:
> I imagine a lot of people are going to feel lost in the first few
> weeks of using Git.

thanks.  I have a question, but first some info that may well be useful 
to others.

Today I learnt that one can use worktrees to work with different checked 
out branches, but sharing a local repo.

In your checked out original clone do
    git worktree add ../some-other-dir branch-to-checkout
then ../some-other-dir contains a checked out branch, tracking the 
upstream branch you named.

Jonathan tells me that if you 'git fetch' from any of those checkouts, 
the underlying local repo gets updated, and you can git merge them as 
you desire.

Notice this example doesn't show /all/ the exiting things worktree add 
can do -- like renaming branches.  That just confuses a newbie like me. 
Hackers, remember you learned about cardinals (and just called them 
numbers) before you discovered zero, and negative integers.

Onto my question.  I'm used to having a bunch of sibling directories, 
called trunk, pr12345, pr84241, feature-x, all with checked out trunks. 
I can't do that with worktrees, because:

 > git worktree add ../../using-enum/src master
fatal: 'master' is already checked out at '/data/users/nathans/trunk/src'

If I drop 'master' from the command I get:
 >git worktree add ../../error/src
Preparing ../../error/src (identifier src1)

* what does 'identifier src1' mean, and what did that do?

* should I be using user branches for this?

* is it possible do that all in one command?
 > git COMMAND ../../error/src SOMETHING
... now ../../error/src has a checked out /users/nathan/error branch 
created from master?

nathan

-- 
Nathan Sidwell



More information about the Gcc mailing list