我有一个从GitHub派生的存储库,对它进行了一些修改。但是,在某个提交中,我想要提交拉取请求的一些文件被更改,而其他修改的文件不在请求中。
拉取请求会合并所有提交,还是我需要做一些特殊的事情来隔离这个提交?
我有一个从GitHub派生的存储库,对它进行了一些修改。但是,在某个提交中,我想要提交拉取请求的一些文件被更改,而其他修改的文件不在请求中。
拉取请求会合并所有提交,还是我需要做一些特殊的事情来隔离这个提交?
由整个提交组成的拉取请求,您需要将此提交拆分为两个单独的提交,一个包含要放入拉取请求的更改,另一个包含其他更改。为此,您需要git rebase -i
,例如查看如何拆分隐藏在历史中的 Git 提交?关于如何做的一个很好的解释。
拆分提交后,将要包含的提交移动到主题分支中,例如参见如何将某些提交移动到 git 中的另一个分支?,但这取决于发出拉取请求的提交是否是顺序的。
最后,您可以推送到 Github 并从您的主题分支创建拉取请求。
拉取请求合并分支。因此,如果您想为拉取请求隔离某些内容,最好将这些更改放在单独的分支中。
优点是您可以通过将新更改推送到该分支来更改拉取请求(如果您需要更改已推送的提交,甚至可以 push -f)。