Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Nov 2020 14:03:41 +0100
From:      Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@freebsd.org>
To:        Marc Branchaud <marcnarc@gmail.com>
Cc:        Dan Langille <dan@langille.org>, freebsd-git@freebsd.org
Subject:   Re: checking out a commits on port quarterly branch
Message-ID:  <X7ZtLdwtSlFpvK4I@acme.spoerlein.net>
In-Reply-To: <47863540-fbe8-bd1e-25bd-da17f4ca5d06@gmail.com>
References:  <5E8AEDD5-327A-46A0-A186-EDBC616A9F89@langille.org> <47863540-fbe8-bd1e-25bd-da17f4ca5d06@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Just to add, losing work in git is actually very hard. While it's true 
that committing to a detached head doesn't track the new commits in a 
permanent way, you can actually use `git reflog` to see everything that 
you checked out for the last 90d or so.

To me, resetting the index is a more scary proposition, because I've 
still not wrapped my head around how that works and what --hard does, 
etc.

Cheers
Uli

On Wed, 2020-11-18 at 18:42:09 -0500, Marc Branchaud wrote:
>Hi Dan,
>
>You're doing it right, assuming that you're not going to be adding any
>new work atop that checked-out commit.  Your working copy does indeed
>reflect the code as of commit 46433baae934d92698422495b72f811839caa1a9.
>
>I've found that the best way to think of git branches is simply as a
>label for a particular commit SHA ID.  Git has other ways of labeling a
>commit (notably tags, and you can actually create your own, separate
>sets of labels if you like).  Git internally calls these labels "refs".
>  The special thing about a branch "ref" is that, when you have the
>branch checked-out and create a new commit, git automatically updates
>the branch's label to refer to the new commit.
>
>But you can also checkout a commit using its SHA ID, as you did.  In
>this case you are not using a branch, so git is warning you that it is
>not tracking a name for any new commits you might create.  Git still
>lets you do anything you want in this "detached" state, with the caveat
>that if you make new commits then it's up to you to figure out how to
>keep track of them (SHA IDs being a bit hard to memorize).  BTW,
>checking out a tag also puts git into the "detached" state, because tags
>are considered static and so they do not get automatically updated when
>you add new commits.
>
>For regular development it's important to understand when you're in the
>"detached" state, because it's easy to lose your work.  Hence the big
>warning message (which you can disable).  But if you're just looking to
>build the code at a particular commit, you're fine being "detached" from
>any actual branch.
>
>		M.
>
>
>On 2020-11-18 5:30 p.m., Dan Langille wrote:
>> When FreshPorts processes a commit, it needs a working copy of the repo as it was at the time of that commit.
>>
>> I have this working on head. I am trying to figure out how to do that when the commit is on a branch.
>>
>> To get a copy of the branch, I do:
>>
>> $ git checkout branches/2020Q4
>> $ git branch
>>    branches/2020Q2
>>    branches/2020Q3
>> * branches/2020Q4
>>    master
>>
>> Next, I want the tree as it existed at commit 46433baae934d92698422495b72f811839caa1a9
>>
>> i.e. https://github.com/freebsd/freebsd-ports/commit/46433baae934d92698422495b72f811839caa1a9
>>
>> My first attempt is
>>
>> $ git checkout 46433baae934d92698422495b72f811839caa1a9
>> Note: switching to '46433baae934d92698422495b72f811839caa1a9'.
>>
>> You are in 'detached HEAD' state. You can look around, make experimental
>> changes and commit them, and you can discard any commits you make in this
>> state without impacting any branches by switching back to a branch.
>>
>> If you want to create a new branch to retain commits you create, you may
>> do so (now or later) by using -c with the switch command. Example:
>>
>>    git switch -c <new-branch-name>
>>
>> Or undo this operation with:
>>
>>    git switch -
>>
>> Turn off this advice by setting config variable advice.detachedHead to false
>>
>> HEAD is now at 46433baae934 MFH: r555565
>>
>> That "MFH: r555565' message indicates that I am at the right commit.
>>
>> Is this a concern?
>>
>> $ git branch
>> * (HEAD detached at 46433baae934)
>>    branches/2020Q2
>>    branches/2020Q3
>>    branches/2020Q4
>>    master
>>
>>
>> Am I doing this right?
>>
>> Thank you
>>
>>
>_______________________________________________
>freebsd-git@freebsd.org mailing list
>https://lists.freebsd.org/mailman/listinfo/freebsd-git
>To unsubscribe, send any mail to "freebsd-git-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?X7ZtLdwtSlFpvK4I>