排除 git 中的文件夹 fetch upstream

exclude a folder in git fetch upstream

我想使用 forked-from 回购上游我的 fork 回购,但是,我不想获取他们回购的特定文件夹,因为我有自己的自定义文件夹在我的仓库中。

除了我想要他们的所有其他更新。

实际上,我向他们的 repo 发出了一个 拉取请求 并创建了那个文件夹,我的 PL 已被合并,在此期间他们更新并更改了一些选项。我只想在该文件夹上使用我自己的自定义,在其他方面进行更新。

my fork repo and their repo 我要排除的文件夹是 snippets/frameworks/django/

完成此操作的惯用方法是不是排除他们的文件夹更新,而是简单地包括您的本地更改,即以以下形式local-only 分支。这样,您就可以受益于所有 versioning/change 跟踪优势。

local-only 的 rebase-based 流程草图更改:

  1. git clone https://github.com/rafamadriz/friendly-snippets
  2. git checkout -b my-changes
  3. 执行本地更改
  4. git add snippets/frameworks/django
  5. git commit -m "django: change foo & bar"

您甚至可能想将您的分支推送到您的分叉仓库。

如果上游现在收到您感兴趣的更新,只需:

  1. git fetch origin
  2. git rebase origin/main(仍在分支 my-changes

如果没有发生冲突,现在您的更改是针对最新的上游状态执行的。

如果冲突更常见,您可能有兴趣明确跟踪解决方案,并切换到 merge-based 集成流程。