0

我正在使用 Github 上这张图片中描述的“标准”流程,即:

我还想根据我的需要修改树中的某些文件(例如构建规则)。我希望这些更改出现在upstreamHEAD 中并传播到新创建的分支。

结果,github 显示了我在创建分支之前所做的所有合并的历史记录(请参阅pull#334)。当单击Files Changed选项卡时,可以看到它报告“2 个已更改的文件,其中包含 141 个添加和 23 个删除”,但是显示的差异包含最多 50 个更改。我得出的结论是,这些数字也累积了来自所示历史记录中其他提交的更改。

我想要达到的目标:

  • 拉取请求中的更改历史仅显示相关更改。
  • 统计数据是真实的(例如“2 个更改的文件,23 个添加和 18 个删除”)。

为了满足需求,我应该在流程和/或存储库中进行哪些更改?提前致谢。

4

1 回答 1

3

最简单的解决方案可能只是将您的更改从您提交拉取请求的原始分支(可能是主分支)重新设置为基础。

git rebase my-feature-branch --onto origin/master <current branch base>

my-feature-branch包含您要为其提交拉取请求的功能的分支在哪里,并且<current branch base>是紧接在拉取请求中您想要的第一个提交之前的提交。

将来,您可以通过将您的功能分支基于已经在源中的提交,并且仅在拉取请求中您想要的那个分支上进行提交来避免这些混乱的提交。

例如,要创建一个新的分支origin/master

git fetch origin # Make sure origin/master is up to date
git checkout origin/master
git checkout -b "new_branch"
# Now do work on this branch.
# Don't make commits here that you don't want in the pull request
于 2013-08-14T14:41:35.630 回答