Git - 推送失败/此操作必须在工作树中运行

bor*_*cle 2 git

我正在关注Git Pro的书(http://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server)来设置我的第一个git远程服务器Ubuntu Linux系统.我跟着这个:

$ git remote add origin git@gitserver:/opt/git/inventory.git
$ git push origin Windows
Run Code Online (Sandbox Code Playgroud)

我收到此消息:

Counting objects: 33, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (28,28) done.
Writing objects: 100% (33/33), 7.30 KiB | 0 bytes/s, done.
Total 33 (delta 13), reused 0 (delta 0)
To git@gitserver:/opt/git/inventory.git
 * [new branch]    Windows -> Windows
Run Code Online (Sandbox Code Playgroud)

但是当我git status在远程服务器上键入时(在/opt/git/inventory.git/中),我收到错误消息fatal: This operation must be run in a work tree

远程存储库似乎不包含本地存储库中的任何文件,当我将远程存储库克隆到不同的本地文件夹时,没有文件,只有.git文件夹.

我在这里看了其他相关问题:

致命:此操作必须在工作树中运行

为什么我收到消息,"致命:这个操作必须在工作树中运行?"

在裸存储库中获取"致命:此操作必须在工作树中运行吗?"

但我不清楚为什么会这样,以及我可以做些什么来弥补它.

mu *_*u 無 6

有问题的远程存储库是一个裸存储库.

它只包含git内部存储的打包对象和引用等,并且不会检出任何常规代码文件.因此,将没有工作树,因此没有工作git status.

也就是说,要检查您的更改是否被推送,只需将有问题的仓库克隆到另一个位置,您就会发现您的文件正确:

git clone /opt/git/inventory.git some/location/inventory_clone
Run Code Online (Sandbox Code Playgroud)

您可能需要git checkout master在新克隆的repo中执行以实际查看代码文件.