Git 如何上传包含子文件夹的整个目录?

Git how to upload whole directory with subfolders?

所以我目前正在学习如何使用Git。

我可以正常上传到Git集线器。但是我现在的本地回购结构是这样的。

我的问题是如何在忽略所有名为 target 的目录的同时上传此结构? 我有一个回购协议和两个独立的项目。我希望能够通过一个命令上传整个 Repo。

A) 跳过目标子文件夹:

添加一个 .git忽略包含此行的文件:

target/

到包含“目标/”文件夹的相应子文件夹。

或者您可以将“target/”添加到您的全局 ~/.git忽略。 (因为您很可能永远不会将构建文件检入 git(如果您显然使用 gradle,同样适用于“build/”)

请参阅 https://git-scm.com/docs/gitignore 以获得更深入的解释

那里有多个 gitignore 生成器和模板。 (例如,我在 https://gitignore.io 上创建了我的全局 gitignore 文件,添加了 eclipse 和 idea 文件夹、密钥库 file-endings 等等)

B) “上传”嵌套 git repos

最可能的答案是:不要。

您想要实现的目标有多种可能性:

  1. 要么你有单独的“项目”存储库,可以独立进行版本控制而不依赖于另一个,然后使用独立的 git 项目

  2. 如果它们相互依赖,创建一个单一的 monorepo 可能更容易(你的顶级“Repo”,那么你只需要一个 .git 文件夹(“git init") 在那里,但不在任何一个项目中

  3. 如果您想将这两个存储库保留在另一个存储库中(逻辑上),您可能希望在顶级存储库(在您的文件系统上)之外将它们创建为独立项目,然后在它们旁边创建顶级 repo,并通过子模块或子树集成它们。 https://git-scm.com/book/en/v2/Git-Tools-Submodules (然而,这使 git 变得更加复杂,并且可能对您的设置来说太过分了)

我个人的建议是:使用版本 1,因为您的设置看起来像两个独立的 Maven 项目,无论如何它们应该相互独立。 如果它们需要嵌套,您可能需要先修复您的 Maven 设置。