Hi, I was actually trying to automae the building and installation of Git source code to reduce my burden. I tried to automate it with the help of a script that runs daily via cron and a separate worktree used only by the build script.y run The script typically fetches new changes for the next branch by running the following in the build worktree (which is not the main worktree): $ git fetch origin next I thought that would result in FETCH_HEAD pointing to the latest changes for origin/next if the command succeeded. Unfortunately, it seems to be behaving weirdely when run in a worktree. It sems to be behaving as if I ran 'git fetch origin'. To add to that confusion when I run $ cat $MAIN_WORKTREE/.git/worktrees/$BUILD_WORKTREE/FETCH_HEAD it seems to be printing the info about the remote refs once and then if I run it again immediately nothing is printed. If I repeat it again, info about remote refs is printed but this time the info about the remote refs is printed thrice. This happens randomly. Sample output: 01:23 $ cat ../git/.git/worktrees/$BUILD_WORKTREE/FETCH_HEAD 53f9a3e157dbbc901a02ac2c73346d375e24978c not-for-merge branch 'maint' of https://github.com/git/git 150f307afc13961b0322ad0e7205a7b193368586 not-for-merge branch 'master' of https://github.com/git/git 01d371f741e6f0b0076d9ed942d99bdb23757eac not-for-merge branch 'next' of https://github.com/git/git 7a81cbc028be113058e0b55062706ec6de62ed94 not-for-merge branch 'pu' of https://github.com/git/git 722746685bce03f223ed75febe312495e6c139da not-for-merge branch 'todo' of https://github.com/git/git 01:23 $ cat ../git/.git/worktrees/$BUILD_WORKTREE/FETCH_HEAD 01:23 $ cat ../git/.git/worktrees/$BUILD_WORKTREE/FETCH_HEAD 01:23 $ cat ../git/.git/worktrees/$BUILD_WORKTREE/FETCH_HEAD 53f9a3e157dbbc901a02ac2c73346d375e24978c not-for-merge branch 'maint' of https://github.com/git/git 150f307afc13961b0322ad0e7205a7b193368586 not-for-merge branch 'master' of https://github.com/git/git 01d371f741e6f0b0076d9ed942d99bdb23757eac not-for-merge branch 'next' of https://github.com/git/git 7a81cbc028be113058e0b55062706ec6de62ed94 not-for-merge branch 'pu' of https://github.com/git/git 722746685bce03f223ed75febe312495e6c139da not-for-merge branch 'todo' of https://github.com/git/git 53f9a3e157dbbc901a02ac2c73346d375e24978c not-for-merge branch 'maint' of https://github.com/git/git 150f307afc13961b0322ad0e7205a7b193368586 not-for-merge branch 'master' of https://github.com/git/git 01d371f741e6f0b0076d9ed942d99bdb23757eac not-for-merge branch 'next' of https://github.com/git/git 7a81cbc028be113058e0b55062706ec6de62ed94 not-for-merge branch 'pu' of https://github.com/git/git 722746685bce03f223ed75febe312495e6c139da not-for-merge branch 'todo' of https://github.com/git/git 53f9a3e157dbbc901a02ac2c73346d375e24978c not-for-merge branch 'maint' of https://github.com/git/git 150f307afc13961b0322ad0e7205a7b193368586 not-for-merge branch 'master' of https://github.com/git/git 01d371f741e6f0b0076d9ed942d99bdb23757eac not-for-merge branch 'next' of https://github.com/git/git 7a81cbc028be113058e0b55062706ec6de62ed94 not-for-merge branch 'pu' of https://github.com/git/git 722746685bce03f223ed75febe312495e6c139da not-for-merge branch 'todo' of https://github.com/git/git 01:23 $ cat ../git/.git/worktrees/$BUILD_WORKTREE/FETCH_HEAD 53f9a3e157dbbc901a02ac2c73346d375e24978c not-for-merge branch 'maint' of https://github.com/git/git 150f307afc13961b0322ad0e7205a7b193368586 not-for-merge branch 'master' of https://github.com/git/git 01d371f741e6f0b0076d9ed942d99bdb23757eac not-for-merge branch 'next' of https://github.com/git/git 7a81cbc028be113058e0b55062706ec6de62ed94 not-for-merge branch 'pu' of https://github.com/git/git 722746685bce03f223ed75febe312495e6c139da not-for-merge branch 'todo' of https://github.com/git/git 'git fetch <remote> <branch>' behaves correctly in the main worktree. Why is this weirdness happening when run in other worktrees? Why isn't 'git fetch <remote> <branch> not fetching the changes for just the specified branch? Am I missing something? -- Sivaraam