假设我在GitHub上有4次提交,我已经向其他协作者发送了拉取请求。但是在那4次提交中,有1次提交,我不希望我的协作者接受该文件。我们怎么做?据我所知,只有一个按钮显示自动合并(如果没有冲突),我们无法选择我们想要接受的提交。
其次,我有一个已经存在于我的Github上的提交,并且我没有向另一个协作者发送任何拉取请求(在这种情况下,有未被另一个协作者拉动的挂起拉取请求)。但是一旦协作者拉出文件,我将自动包含我未发送的提交。所以我没有看到拉请求在这里有用。虽然我们仍然可以在不发送拉取请求的情况下获得所有更新的数据。
所以我的主要问题是,有没有其他方法可以选择我们希望其他协作者接受哪个提交?因为有时候,我不希望我的协作者首先接受提交/文件。
答案 0 :(得分:2)
据我所知,只有一个按钮显示自动合并(如果没有冲突),我们无法选择我们想要接受的提交。
以类似的方式你在推送到GitHub之前使用Git进行本地提交,没有什么能阻止你的协作者从GitHub中提取你的分叉,在本地合并然后推回他的 fork合并提交。
GitHub只添加一个“快捷方式”来合并拉取请求。它是不唯一的方法。
考虑到你的问题,你必须使用Git。 GitHub UI仅适用于直接合并。您的协作者有两个独家选项:
最后一个选择会给你带来负担:
但是一旦协作者拉出文件,我将自动包含我未发送的提交。
看起来你正在master
投降。通常,每个开发人员为每个主题创建一个分支(错误或新功能)。与此主题相关的所有工作都在此分支中执行。一旦完成,你推动这个分支,打开它的拉取请求。
拉取请求已合并,下次您从主流存储库中取出时,您的工作现在将集成到主分支中。或者拉取请求已经被拒绝,你可以摆脱这个主题分支或重做它。
有时可能会发生主题分支太旧而无法合并而没有冲突。维护者可能要求您在当前HEAD之上 rebase 您的分支,并使用此更新分支force-update
您的拉取请求。
这篇相当完整的帖子将帮助您详细了解 Git workflow 。