如何使使用 git bash(触摸文件)创建的文件在 Windows 8.1 中可见?

How can I make files which were created with git bash (touch file) visible in Windows 8.1?

我遇到了一个有趣的挑战。

在 Windows 8.1 上使用 Git 版本控制迈出第一步 我设置了一个文件夹,添加了文件,然后按照教程进行操作。简单的。一段时间后,我注意到 Windows Explorer 不再向我显示某些文件(我认为那是在使用结帐之后但无法确认)。使用 git bash 和 ls 命令,我仍然看到它们。

经过一些研究后,我可以使用以下代码:

touch gittest.txt

在gitbash时我用

ls

它显示了文件。

在 Windows 资源管理器中,但我没有看到它。

我认为这是某种权限问题。我无法在 Windows 资源管理器中创建文件,因为我在 Apache htdocs 文件夹中工作并且需要管理员权限。所以我所做的是在其他地方创建 "wintest.txt" 并将其移动到该文件夹​​。

在资源管理器中我只看到那个文件,在 git bash 中我看到两个:

ls -al

drwxr-xr-x 10 hogan Aminist 4096 Apr 3 15:00 .
drwxr-xr-x  7 hogan Aminist 4096 Apr 3 15:00 ..
-rw-r--r--  1 hogan Aminist    0 Apr 3 15:00 gittest.txt
-rw-r--r--  1 hogan Aminist    0 Apr 3 15:00 wintest.txt

这里的权限似乎没问题,但我想还是缺少了一些东西。 文件 gittest.txt 也没有被隐藏。我在资源管理器中尝试了开关。

另一件显而易见的事情是:我用管理员权限打开Windows-命令提示符,切换到有问题的目录并输入相应的命令dir,dir/A:H.. .

没有文件"gittest.txt"。

git 版本是 Windows 平台的 1.9.5。

也很有趣。我这样做了:

echo 'something' > overwrite.txt

(在资源管理器中我没有看到它)。

创建了一个具有相同名称和内容的文件 "done"。移到Folder里就没问题了"do you want to overwrite the file?".

从资源管理器打开文件 - 它显示 "done"。 在gitbash中打开,显示"something".

打开并编辑 Windows 中的另一个文件后,我可以看到 bash 和 'vim xyzFile.txt' 中的变化。这意味着我肯定在同一文件夹中查找。

当我在 bash 中先用 vim "xyzFile.txt" 打开一个文件然后保存它时,它在资源管理器中消失了。

任何人都可以提示我下一步搜索的位置并从这一点继续吗? 请随时询问更多信息。

好像是权限问题。这种情况并没有完全解决,但目前有一个解决方法对我来说很好。

解法: 将文件夹权限更改为运行 git bash 语句的用户的完全访问权限。

原因是在 Windows 系统上安装 Apache 时,包括 htdocs 在内的整个文件夹的权限设置有限。每次有人想要创建文件时,他们都需要管理员权限。

启动 git bash 时,它会以自己的方式进行更改,但这对 'normal' windows 用户没有影响。要清楚:在 git bash 中,文件创建(如果有内容)有效,您可以按预期查看、打开和编辑文件。在 Windows 中无效。 (现在我猜 Git 在后台创建自己的数据库并使用那个数据库,不考虑真实环境)。

为特定用户授予完全权限后,就没有问题了。