【问题标题】:Pull-Request for only certain files/commits仅针对某些文件/提交的拉取请求
【发布时间】:2012-09-21 13:38:07
【问题描述】:

我有一个从GitHub 派生的存储库,对它进行了一些修改。但是,在某个提交中,我要提交拉取请求的一些文件发生了更改,而其他修改的文件不在请求中。

拉取请求会合并所有个提交,还是我需要做一些特殊的事情来隔离这个提交?

【问题讨论】:

标签: git github git-commit pull-request


【解决方案1】:

拉取请求合并分支。因此,如果您想为拉取请求隔离某些内容,最好将这些更改放在单独的分支中。

优点是您可以通过将新更改推送到该分支来更改拉取请求(如果您需要更改已推送的提交,甚至可以 push -f)。

【讨论】:

  • 鉴于我已经在一个分支中进行了更改,您将如何实现这一目标?
【解决方案2】:

拉取请求由整个提交组成,您需要将此提交拆分为两个单独的提交,一个包含要放入拉取请求的更改,另一个包含其他更改。为此,您需要 git rebase -i,例如,请参阅 How can I split up a Git commit buried in history? 以获得有关如何执行此操作的详细说明。

拆分提交后,将要包含的提交移到主题分支中,例如How to move certain commits to another branch in git?,但这取决于发出拉取请求的提交是否是顺序的。

最后你可以推送到 Github 并从你的主题分支创建拉取请求。

【讨论】:

  • 郑重声明,git cherry-pick 是一个非常宝贵的工具。
  • 我知道这是公认的答案;但是,究竟要执行哪些步骤,以便在修改多个文件的拉取请求中对一个文件进行更改?
  • 当您是合并请求的人而不提出请求时会发生什么?这个工具太蹩脚了……
  • @jww 然后您要求拉取请求作者在 master 之上重新设置基础,并且只包含特定的更改。 :)
猜你喜欢
  • 2013-08-06
  • 1970-01-01
  • 2012-01-15
  • 2015-01-23
  • 2012-01-01
  • 2013-02-02
  • 1970-01-01
  • 2011-05-05
  • 2018-06-21
相关资源
最近更新 更多