Git 从 fork 到上游的独立提交

Git independent commits from fork to upstream

我有一个常见问题,但我没有找到解决此问题的可靠最佳实践。我正在为别人的 GitHub 回购做出贡献。我将最新的开发分支分叉到我的仓库中。现在我想一个一个地应用 pull requests,让每个 pull requests 都非常容易被单独评估和合并。

具体来说,我正在贡献文档,上游作者可能希望挑选他想要的文档,而不是所有文档。我过去遇到过这样的问题,我在一个 PR 中写了很多文档,但因为太多而被驳回了。所以现在我正在为我的每个预先编写的文档单独提交 repo/branch,我想提交它们以供单独评估。

使用示例上游 MainRepo 和分支 main-dev,以及我的 ContribRepo 分支上游-dev,我有几个提交,每个提交一个新文件。什么是 "best practice" 允许合并或拒绝每个提交而不强制执行全有或全无操作?

我认为 GitHub 不支持浏览器 UI。我知道樱桃采摘,以及如何使用它从我自己的分支中提取提交。但我读到,上游作者需要访问贡献者的回购协议才能将 cherry pick 提交回他自己的 repo/branch.

我似乎需要在我的存储库中为我要提交的每个文档创建一个新分支,考虑到我将每个文件视为一个单独的项目,这在某些方面似乎是合适的。我会这样做,但看起来我们正在为一个小事件消耗大量资源。

如果我问的是关于如何摆脱我不应该进入的框框的错误问题,请提出一个更好的方法来应对这个(常见的?)挑战。

很容易让每个更改成为一个单独的分支。从命令行执行:

git checkout main-dev
git checkout -b my-first-work
git add .
git commit -m 'did some first work'
git push -u origin my-first-work

git checkout main-dev
git checkout -b my-second-work
git add .
git commit -m 'did some second work'
git push -u origin my-second-work

像这样继续操作任意数量的分支。然后对每个分支做一个pull request。

话虽如此,我真的不明白他们为什么需要你这样工作。他们可以轻松处理在单个分支上有多个提交的单个拉取请求。他们没有理由不能挑选他们想要的。

他们肯定"have access to your repo"!这就是 github 的意义所在。

但如果这就是他们的标准,那么他们就是他们的回购协议的老板。像上面那样工作,希望他们会开心。