【问题标题】:How to keep ignored files when switching to branch not ignoring them?切换到分支时如何保留忽略的文件而不忽略它们?
【发布时间】:2017-08-29 03:39:25
【问题描述】:

我正在尝试使用 webpack 项目的 GitHub 页面,所以我创建了一个新分支(忘记使用 --orphan)并在其中保留不同的文件。

  • master 分支上,dist/ 目录是.gitignored。
  • gh-pages 分支上,除了dist/index.html 和其他一些文件外,所有文件都被忽略。

当我在masternpm run build 时,新的dist/ 被构建,但是当我结帐gh-pages 时它被以前的dist/ 覆盖。如何保留它们并使其可以在之后添加和提交?

【问题讨论】:

  • 使用两个独立的工作树。甚至是一个子模块,但这不是必需的。

标签: git


【解决方案1】:

关于使用两个独立工作树的可能性,您可以使用git worktree 命令:避免维护两个不同的克隆。

也不要忘记“Simpler GitHub Pages publishing”:您可以将页面维护在与 repo 的其余部分相同的分支中,在 docs/ 子文件夹中。
这样一来,您根本不需要切换分支。

【讨论】:

  • 如果你的 gh-pages 不是你的应用程序的文档,而是一个演示怎么办?你能告诉 Github 去dist 目录而不是docs 吗?
  • @EdmundReed 在这种情况下,您可以使用 gh-branch 代替,并将(在主)分支 dist/ 声明为子模块(其 url 是您的 gh-branch repo URL!)参见@987654323 @。这样,您就可以在同一个工作树中获得这两个内容。
【解决方案2】:

尽管有更好的做法here,我还是找到了一种直接进行文件传输的方法。

  1. master 分支上,在提交所有内容并进行构建之后;
  2. git add --force dist/
  3. git stash
  4. git checkout gh-pages
  5. git stash apply
  6. Unstage .gitignore 以防它也被转移
  7. 解决冲突

但是,它需要太多的步骤才能有用,也许简单地cp 他们会更容易。

【讨论】:

  • 我仍然认为单独的工作树或带有文档的单个工作树看起来更容易。
猜你喜欢
  • 1970-01-01
  • 2013-03-11
  • 1970-01-01
  • 1970-01-01
  • 2010-11-21
  • 2021-10-25
  • 2017-10-11
  • 1970-01-01
  • 2015-11-30
相关资源
最近更新 更多