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

Strange checkout with GIT_WORK_TREE

From
LRLauri Rooden <lauri@rooden.ee>
Date
Jan 21, 2022, 16:37 UTC
Message-ID
<CAHqym3xs_M7BvvFDq2pHM-+DgK_nJcBakVEBL-GiNwnCRzMwWA@mail.gmail.com>

Does the GIT_WORK_TREE get lost on the middle of process or I am misunderstand the git checkout?

What did you do before the bug happened? (Steps to reproduce your issue)
- I wrote a shell script to reproduce

```git-test.sh GIT_ROOT=$(mktemp -d) GIT_COPY=$(mktemp -d)

echo "Create git repo with two commits: $GIT_ROOT" cd $GIT_ROOT git init echo 1 > a.txt echo 1 > b.txt git add *.txt git commit -m "Initial commit" echo 2 > b.txt git add b.txt git commit -m "Second commit"

echo "Checkout to other work-tree: $GIT_COPY" GIT_WORK_TREE=$GIT_COPY git checkout HEAD~1 git status

echo "ORIGIN $GIT_ROOT" ls -la $GIT_ROOT echo "COPY $GIT_COPY" ls -la $GIT_COPY ```

What did you expect to happen? (Expected behavior)
- a.txt and b.txt checkouted to $GIT_COPY both with content `1`
- current folder unchanged
What happened instead? (Actual behavior)
- only b.txt checkouted to $GIT_COPY
- HEAD~1 checkouted in current folder but folder content remains HEAD
(modified:   b.txt)

[System Info] git version: git version 2.34.1 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh uname: Linux 5.16.0-arch1-1 #1 SMP PREEMPT Mon, 10 Jan 2022 20:11:47 +0000 x86_64 compiler info: gnuc: 11.1 libc info: glibc: 2.33 $SHELL (typically, interactive shell): /usr/bin/bash

[Enabled Hooks] prepare-commit-msg

Next: brian m. carlson
Message 1 of 4 in “Strange checkout with GIT_WORK_TREE”
  1. Lauri RoodenJan 21, 2022
  2. brian m. carlsonJan 21, 2022
  3. Junio C HamanoJan 21, 2022
  4. Lauri RoodenJan 22, 2022

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.