git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Self-inflicted "abort" in a newbie attempt at read-only exploration of a cloned repository?

From
Bryan Turner <bturner@atlassian.com>
Date
Apr 5, 2018, 23:18 UTC
Message-ID
<CAGyf7-E9=Mm1oJdhwHTmg2byrOxMRFVEjmYHCFGqqP8pvK=vJg@mail.gmail.com>
In-Reply-To
<5AC67C43.9080500@connotech.com>

On Thu, Apr 5, 2018 at 12:42 PM, Thierry Moreau <thierry.moreau@connotech.com> wrote:

Show 24 quoted lines
> Dear GIT enthusiasts!
>
> This ends up with a "git checkout" command aborting. A bit frustrating at
> the early stage of GIT learning curve.
>
> My first goal is to clone repositories locally in order to explore the
> various linux kernel versions, with the rich GIT metadata.
>
> Thus, I clone:
>
> $  git clone --branch linux-4.16.y
> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
> linux-stable
> $  git -C linux-stable/ branch
> * linux-4.16.y
>
> So far so good. Then, I want to extract an earlier kernel version into a tmp
> dir:
>
> $  mkdir tmp
> $  git -C linux-stable/ --work-tree $PWD/tmp/ checkout linux-4.15.y
> $  git -C linux-stable/ branch
> * linux-4.15.y
>   linux-4.16.y
The documentation for --work-tree says:
--work-tree=<path>

Set the path to the working tree. It can be an absolute path or a path relative to the current working directory. This can also be controlled by setting the GIT_WORK_TREE environment variable and the core.worktree configuration variable (see core.worktree in git-config(1) for a more detailed discussion).

So passing --work-tree tells Git where to store your _files_, but it's still using the same .git directory.

If your goal is to have worktrees for various versions, that implies the git worktree [1] command might be more along the lines of what you're looking for. An invocation based on above might look like this: $ git -C linux-stable/ worktree add $PWD/tmp/ checkout linux-4.15.y

That should leave linux-4.16.y checked out in linux-stable, while creating a full work tree in $PWD/tmp that has 4.15.y checked out.

Note that worktree is a newer git command. 2.17 has it, but old versions like 2.1 won't.

[1] https://git-scm.com/docs/git-worktree

Hope this helps! Bryan

Previous: Thierry MoreauNext: Bryan Turner
Message 2 of 6 in “Self-inflicted "abort" in a newbie attempt at read-only exploration of a cloned repository?”
  1. Thierry MoreauApr 5, 2018
  2. Bryan TurnerApr 5, 2018
  3. Bryan TurnerApr 5, 2018
  4. Thierry MoreauApr 6, 2018
  5. Jeff KingApr 6, 2018
  6. Thierry MoreauApr 6, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.