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

Re: working directory status

From
Johannes Sixt <j6t@kdbg.org>
Date
Nov 17, 2019, 22:26 UTC
Message-ID
<6bb36048-6649-ebe3-062f-c5564f7d4ec4@kdbg.org>
In-Reply-To
<CACKP9cv=J=_sDUsLZi7-GerFD=qbHuJT0MBdfgsMsN4pD25L2A@mail.gmail.com>
Am 17.11.19 um 21:33 schrieb Sivanandan Srilakshmanan:
Show 5 quoted lines
> Reading git documentation, my understanding is that, if you needed to
> use "git worktree add" then it is recommended to keep your work tree
> (Working Dir) outside of your repository.
> My understanding, please correct me if I am wrong, is to have multiple
> worktree outside of the Git Repository.

That sounds reasonable. Note though that if you need N worktrees, then you have one worktree with the (non-bare) repository, and N-1 worktrees outside that repository.

> if you used "git clone" to setup your directory and your worktree is
> included in the same location as the Git Repository, then GIT_DIR is
> not required.
Yes.
Show 12 quoted lines
> Please assist me to understand what I am doing incorrectly. The
> "output 1" below is incorrect because Local_Newfeature (working
> directory / worktree) is associated with the incorrect branch
> (Local_Kumfeature_branch)
> Local_Newfeature directory should be pointing to "Local_Newfeature_branch".
> 
> Output 2 is correct.
> 
> ====== Output 1 - incorrect =========================================
> C:\test\Local_Newfeature>git --work-tree=C:\test\Local_Newfeature status
> On branch Local_Kumfeature_branch
> Your branch is up to date with 'Lakshman/feature_branch'.

You observe this incorrect output because you have GIT_DIR set. Obvously, Git looks at the branch that the HEAD of $GIT_DIR refers to.

Do not set GIT_DIR if you do not know what it is good for.
Show 7 quoted lines
> ===== Output 2  - correct =============================================
> C:\test\Local_Newfeature>git branch
> * Local_Kumfeature_branch
>   Local_MyTest_branch
> + Local_Newfeature_branch
> + Local_SGSfeature_branch
>   Local_feature_branch

If Output 1 is incorrect, this is not correct, either: Note that Local_Kumfeature_branch is marked as the branch for this directory, but you intend it to be Local_Newfeature_branch, yet it is marked as living in a different worktree.

Do not set GIT_DIR if you do not understand the consequences.
Show 5 quoted lines
> C:\test\Local_Newfeature>git worktree list
> C:\GitRepo                (bare)
> C:/test/Local_Kumfeature  b0a097e [Local_Kumfeature_branch]
> C:/test/Local_Newfeature  b0a097e [Local_Newfeature_branch]
> C:/test/Local_SGSfeature  b0a097e [Local_SGSfeature_branch]

I do not know whether it is a sane use-case to have a bare repository and separate worktrees.

Do not do that. Make a regular clone with a worktree and create secondary worktrees from there.

-- Hannes
Previous: Sivanandan SrilakshmananNext: Sivanandan Srilakshmanan
Message 6 of 11 in “working directory status”
  1. Sivanandan SrilakshmananNov 17, 2019
  2. Pratyush YadavNov 17, 2019
  3. Sivanandan SrilakshmananNov 17, 2019
  4. Johannes SixtNov 17, 2019
  5. Sivanandan SrilakshmananNov 17, 2019
  6. Johannes SixtNov 17, 2019
  7. Sivanandan SrilakshmananNov 18, 2019
  8. Johannes SixtNov 18, 2019
  9. Eric SunshineNov 18, 2019
  10. Junio C HamanoNov 18, 2019
  11. Sivanandan SrilakshmananNov 18, 2019

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.