質問: masterとは別にAdd_voting_functionというブランチを作ってそこを2e58188をcheck outしているつもりで 新たに機能を追加した後にコミットしたら図のように別のブランチにいるとみなされてしまいました。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/0e2634456f946cc3a72e8affda919404.png) その後、マージしたらよいと思い一度2e58188をcheck outすると,再び ``` git chekout 973de15 ``` しても ``` fatal: This operation must be run in a work tree ``` と表示されてしまいます。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/a6a6c77fd1fd323b9c9d5005679dafcc.png) masterに移動してから同様のことをしても同じエラーがでてしまい973de15に戻ることができません。 どなたか解決策をご存知でしたらご教授くださると助かります。 よろしくお願いします。
回答: こんにちは。 > > fatal: This operation must be run in a work tree > > > はベア・リポジトリ(通常はリモート・リポジトリです)に対してcheckoutしたような時にでるメッセージのようです。 しかし、commitでも同じエラーがでる筈ですからcommitできているのであればベア・リポジトリではない筈ですね。 gitまとめには、間違ってリモート・リポジトリをノンベアで作って、そこにpushしようとしてエラーがでて、その対策で`git config --bool core.bare true`してpushしてました。 そのまま、`git status`(ノンベア用のコマンド)をすると`fatal: This operation must be run in a work tree`が出るそうです。 `git config --get-all core.bare`でベア・リポジトリになってないか確認してみると良いかもしれません。 本当にワークツリーがあるのにtrueでしたら、強制的にfalseにすることも考えられます。(ちょっと怖い操作ですので、バックアップをお忘れなく。)