Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

fatal: This operation must be run in a work tree [duplicate]

I get this error when I try to change branch.

Probably I will give some information of the commands at

/path/to/git/repo/. 

upon command:

git branch 

I get following output

* V1.5   V2.0   master 

And when I try the command

git checkout V2.0 

I get following output:

fatal: This operation must be run in a work tree 

config file contents:

cat config  [core]         repositoryformatversion = 0         filemode = true         bare = true [remote "origin"]         url = /path/to/git/repo/.git 
like image 547
Kiran K Telukunta Avatar asked Feb 13 '12 15:02

Kiran K Telukunta


People also ask

What is work tree in Git?

A Git worktree is a linked copy of your Git repository, allowing you to have multiple branches checked out at a time. A worktree has a separate path from your main working copy, but it can be in a different state and on a different branch.

How do you copy all branches?

Use the git clone Command to Clone All Branches in Git Clone your repository with the git clone command. Then navigate to the directory where your project is located. Use the git branch command to view local branches. This command will only show you local branches.

What is git bare repository?

What is a bare repository? A bare repository is the same as default, but no commits can be made in a bare repository. The changes made in projects cannot be tracked by a bare repository as it doesn't have a working tree. A working tree is a directory in which all the project files/sub-directories reside.


1 Answers

You repository is bare, i.e. it does not have a working tree attached to it. You can clone it locally to create a working tree for it, or you could use one of several other options to tell Git where the working tree is, e.g. the --work-tree option for single commands, or the GIT_WORK_TREE environment variable. There is also the core.worktree configuration option but it will not work in a bare repository (check the man page for what it does).

# git --work-tree=/path/to/work/tree checkout master # GIT_WORK_TREE=/path/to/work/tree git status 
like image 63
Bombe Avatar answered Sep 22 '22 16:09

Bombe