我在Github上分叉/克隆了apache whirr,并开始在主干分支上工作。在工作期间,我从源/主干中提取了两个提交。当我通过运行 git diff first_feature_commit HEAD 生成补丁时,我得到一个包含这两个提交的补丁。因此,当我提交补丁时,它被拒绝了。
如何在没有从源/主干拉取的提交的情况下创建补丁?
使用 git format-patch
生成补丁,它会将它们拆分。 您也可以只用git diff HEAD^
进行差异,以仅获取您的提交(这可能是最近的提交)。
git checkout -b rj/rilly_feature
git rebase -i master
# remove spurious commits in interactive rebase file
git diff master
# observe success
这旨在解决您创建功能分支的"失败"——如果您认为应该从功能分支工作,这将让您使用一个功能分支,并允许您生成一个干净的补丁。
1) 将遥控器添加到您感兴趣的修补存储库中。大概是这样的
git remote add upstream https://github.com/apache/whirr.git
2) 获取遥控器。只需可能获得所有这些:
git fetch --all
3)制作你的补丁!
git diff upstream/trunk..HEAD >my.patch
哼!@eldondev
当您只想获取主分支中而不是origin/master
(服务器)上的提交时,您可以使用
git diff origin/master..HEAD
有关更多详细信息,请参阅 Git 工具 - Pro Git 的修订版选择。