如何让 Git 从 PUSH 到远程排除本地目录,但仍然是本地仓库的一部分

Chr*_*gge 8 git

使用 git,我希望能够将某个文件夹作为我本地项目的一部分(在分支中使用它等),但我不希望这个目录被推送到公共 git 服务器。

有问题的文件夹有一些项目不需要的 CLI Java 内容,但我想与将上线的分支工作保持同步。

这可能吗?

Sgo*_*kes 2

一个非常简短的答案是否定的。原因如下:当您的本地 git 分支被推送到服务器时,它会按原样推送,没有任何异常。由于提交包含文件,如果某些文件没有被推送,那么 git 内部就会混乱。这种选择性行为不受支持,我猜它永远不会被支持,因为大多数时候,当你需要这样的东西时,你会错误地使用 git。

不过,方法有很多种:

  1. 第一个只是将内容添加到存储库中。您显然需要它并且希望对其进行版本控制,因此从我的角度来看,这就是将文件添加到 git 所需的全部内容。
  2. 您可以尝试 git-submodules,但这也会将文件添加到您的存储库中。您的 java cli 将是另一个存储库,您的原始存储库将跟踪版本。
  3. 您可以告诉 git 忽略该子文件夹,而不是在那里创建 java-cli 存储库,并且仅创建两个子文件夹而无需任何交互。

我肯定会选择 1,因为当我需要项目的某些东西时,它就属于存储库,即使它是 java cli。