【问题标题】:How do I push an ignored subdirectory to another remote?如何将忽略的子目录推送到另一个遥控器?
【发布时间】:2019-11-05 07:44:03
【问题描述】:

我有两个存储库。首先,我有应用程序代码和包含模式的.gitignore:dist。我需要将 dist 文件夹推送到第二个存储库的主分支。

目前,我从.gitignore 中删除dist,删除第二个存储库的主分支并将git subtree push 到第二个存储库的新主分支。

我可以用其他方式吗?

【问题讨论】:

  • git 不能这样工作。 .gitignore 只能用于“未跟踪”文件。因此,如果您在提交文件之前将目录添加到 .gitignore,则无法将它们推送到任何地方。另一方面,如果您事后将它们添加到 .gitigore 中,则不再重要,git 不能忽略它们。所以,我认为你遗漏了一些细节。看起来您只需要单独的分支来进行开发和发布。你总是可以推送一个分支。
  • 我需要按照我描述的方式来做,我不能用其他方式来做
  • 尝试在您的问题中更详细地描述您的需求和流程。目前,听起来您正在尝试以非版本控制的方式使用 git,以针对“发行版”。这没有多大意义。
  • dist 中有什么内容?这些文件是如何创建的?为什么在第一个存储库中忽略它?如果他们不应该留在第一个存储库中,为什么还要进入第二个存储库?

标签: git gitignore git-subtree


【解决方案1】:

您不能忽略存储库中的文件夹/文件,然后希望使用 Git 子树之类的东西将它们推送到另一个远程。 subtree 命令仅适用于跟踪的文件和提交。

它听起来就像你的dist 目录是你的构建管道的输出,你需要一个地方来存储工件。

【讨论】:

    【解决方案2】:

    我会这样做:

    1. 删除dist文件夹,删除.gitignore中的dist
    2. 从第二个 repo(repo 包含 dist)添加一个子模块到第一个 repo 的 dist 文件夹

    这样,当您将代码编译到生产环境(也就是在dist 文件夹中生成文件)时,主存储库没有任何更改,但子模块存储库(第二个存储库)会发生更改,您可以将dist 文件夹视为单独的存储库

    【讨论】:

      猜你喜欢
      • 2014-08-11
      • 2018-12-29
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      • 2015-07-03
      • 2022-06-23
      • 2017-12-16
      相关资源
      最近更新 更多