web-dev-qa-db-ja.com

致命的:この操作は作業ツリーで実行する必要があります

ブランチを変更しようとすると、このエラーが発生します。

おそらく私はコマンドのいくつかの情報を提供します

/path/to/git/repo/.

コマンドに応じて:

git branch

次の出力が得られます

* V1.5
  V2.0
  master

そして、私がコマンドを試すとき

git checkout V2.0

私は次の出力を取得します:

fatal: This operation must be run in a work tree

構成ファイルの内容:

cat config 
[core]
        repositoryformatversion = 0
        filemode = true
        bare = true
[remote "Origin"]
        url = /path/to/git/repo/.git
67

リポジトリはむき出しです。つまり、作業ツリーがアタッチされていません。ローカルでクローンを作成して作業ツリーを作成するか、他のいくつかのオプションのいずれかを使用してGitに作業ツリーの場所を伝えることができます。単一コマンドの--work-treeオプション、またはGIT_WORK_TREE環境変数。 core.worktree構成オプションもありますが、裸のリポジトリでは機能しません(その機能については、manページを確認してください)。

# git --work-tree=/path/to/work/tree checkout master
# GIT_WORK_TREE=/path/to/work/tree git status
50
Bombe