为什么我在存储库中看不到我的文件?

Why cant I see my files in my repository?

这是我第一次在这里提问。作为序言,我想告诉你我是一个初级角色的完全菜鸟,边学边学。

我的任务是设置某种版本控制。我需要一次只检出一个文件的能力。我的领导认为必须克隆或签出整个目录(GIT 似乎就是这种情况)有点危险。

我设法设置了一个 SVN 存储库并使用 Tortoise SVN 签出单个文件。所以我认为这将是我今后使用的产品。但是,我对 SVN 和 GIT 共享的 属性 感到困惑。

看起来当我创建一个 SVN 存储库时,它类似于 git 中的一个裸存储库,因为我看不到存储在我的存储库中的任何文件。如果我使用 SVN 列表或结帐,我可以看到它们,但如果我导航到存储库本身,则不会列出这些文件。

这是为什么?我知道它不包含工作树,但是我无法访问我的文件的存储库有什么用?如果我有一个程序使用其中一个存储库中的配置文件,我的程序应该如何在该存储库中找到配置文件?

非常感谢您的帮助!

如果你仔细想想,你的问题不言而喻:

  1. 您签出了一个文件,而不是整个代码库
  2. 现在您签出了一个文件,而不是整个代码库

做出排除其他文件的决定的不是 Subversion 和 git,而是您。

“检查整个目录……有点危险”的想法表明您的经理缺乏理解——或者可能是沟通不畅。版本控制的要点是跟踪您需要使用的所有文件的版本;通常,这是特定应用程序、库、模块等的完整源代码。

我能想到的一种可能性是您误解了“签出”的含义,并假设这会以某种方式“锁定”文件。在大多数现代版本控制系统中,没有这样的锁定,“签出”仅表示“获取此文件的特定版本”。因此,通常您会查看特定版本的 整个源代码 以便对其进行处理,即使您最不打算 编辑 文件的数量(或者实际上,它们中的任何一个 - 您可能只是在特定版本中测试某些内容)。

另一种可能性是开发人员不应将某些文件作为其本地副本的一部分。如果是这样,它们根本不应该在版本控制中;开发人员不需要选择何时检出哪些文件。

我建议退后一步,看看您实际有什么要求,并查看一些关于版本控制的用途以及如何有效使用它的教程。