Strange checkout with GIT_WORK_TREE
- From
- Lauri 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