1

假设我的 GitHub 上有 4 次提交,并且我已经向另一个协作者发送了拉取请求。但是在这 4 次提交中,有 1 次提交,我不希望我的合作者接受该文件。我们怎么能做到这一点?据我尝试,只有一个显示自动合并的按钮(如果没有冲突),我们无法选择要接受的提交。

其次,我的 Github 上已经存在 1 个提交,并且我没有向其他合作者发送任何拉取请求(在这种情况下,有未由其他合作者拉取的待处理拉取请求)。但是一旦协作者拉取文件,我没有发送的提交将自动包含在内。所以我认为拉取请求在这里没有用。虽然我们仍然可以在不发送拉取请求的情况下获取所有更新的数据。

所以我的主要问题是,有没有其他方法可以选择我们希望其他合作者接受的提交?因为有时,我不希望我的合作者首先接受提交/文件。

4

1 回答 1

2

据我尝试,只有一个显示自动合并的按钮(如果没有冲突),我们无法选择要接受的提交。

以类似的方式,您在推送到 GitHub 之前使用 Git 在本地提交,没有什么能阻止您的协作者从 GitHub 中拉出您的fork,在本地合并,然后在他的fork 中推回合并的提交。

GitHub 只添加了一个“快捷方式”来合并拉取请求。这不是唯一的方法。

考虑到您的问题,您必须使用 Git。GitHub UI 仅适用于直接合并。您的合作者有两个专属选项:

  • 手工挑选4 个提交中的 3 个
  • 合并 4 4 个提交,然后恢复不需要的提交

最后一个选择会把负担放在你的肩上:

  • 创建指向第一个提交的本地分支
  • Cherry 选择您感兴趣的剩余两个提交
  • 推送此分支并从中打开一个的拉取请求

但是一旦协作者拉取文件,我没有发送的提交将自动包含在内。

看起来你正在承诺master。通常,每个开发人员为每个主题(一个错误或一个新功能)创建一个分支。与该主题相关的所有工作都在此分支中进行。完成后,您推送此分支,从中打开拉取请求。

要么合并拉取请求,下次您从主流存储库拉取时,您的工作现在将集成到主分支中。或者拉取请求已被拒绝,您可以摆脱这个主题分支或对其进行重做。

有时,可能会出现主题分支太旧而无法在没有冲突的情况下合并。维护者可能会要求您在当前HEAD之上重新设置您的分支,并force-update使用此更新的分支来拉取请求。

这篇非常完整的文章将帮助您了解这个Git 工作流程的详细信息。

于 2012-01-26T06:57:06.940 回答