0

我在 Github 上 fork/clone apache whirr,并开始在主干分支上工作。在工作期间,我从 origin/trunk 中提取了两个提交。当我通过运行 git diff first_feature_commit HEAD 生成补丁时,我得到一个包含这两个提交的补丁。因此,当我提交补丁时,该补丁被拒绝了。

如何在没有从源/主干中提取的提交的情况下创建补丁?

4

4 回答 4

0

1)将远程添加到您有兴趣修补的存储库。大概是这样的

git remote add upstream https://github.com/apache/whirr.git

2)取遥控器。只需获得所有这些可能:

git fetch --all

3)制作你的补丁!

git diff upstream/trunk..HEAD >my.patch

!@eldondev

于 2013-09-11T18:53:43.857 回答
0

当您只想获取那些在您的主分支中而不是在origin/master(服务器)上的提交时,您可以使用

git diff origin/master..HEAD

有关详细信息,请参阅Git 工具 - Pro Git 的修订选择

于 2013-09-11T20:18:44.447 回答
0

使用生成补丁git format-patch,它将拆分它们。你也可以只用你的 diffgit diff HEAD^来获得你的提交(这可能是最近的一个)。

于 2013-09-11T18:06:55.303 回答
0
git checkout -b rj/rilly_feature
git rebase -i master
# remove spurious commits in interactive rebase file
git diff master
# observe success

这是为了解决你创建功能分支的“失败”——如果你认为你应该从一个功能分支工作,这将使你得到一个并允许你生成一个干净的补丁。

于 2013-09-11T18:08:44.150 回答