我在一些回购中创建了一个PR,我从本地删除了该分支。过了一会儿(当几次提交在repo中合并时)我想在PR中进行更改,所以我创建了具有相同名称的分支并提取了所有更改并添加了更多提交。但是当我推动更改时,它会显示回购的所有提交(大约3k提交)。
我想问题是,最初分支是用master
的不同状态创建的,当我再次创建分支时它处于不同的master
状态,所以一推动,所有差异都反映在PR中作为3k提交。
现在我想摆脱这个问题。我只希望展示PR的提交。这怎么可能?
你可以试试这个
首先找到你的旧提交
git log --after="2014-7-1" --before="2014-7-4" --author="John"
您可以找到有关格式化日志输出here的更多信息。
在您的本地分支中将HEAD重置为旧提交,并选择新提交 qazxsw poi qazxsw poi qazxsw poi qazxsw poi
这将创建您的PR只有旧提交和新提交。基本上,您将从分支中删除master中的所有提交。
你的分析似乎是正确的。您创建PR时,主人处于不同的状态。
虽然你拉后不需要创建一个新的分支。您已删除本地仓库中的分支,而不是远程。
你可以做一个git reset <old commit ID>
和git stash; git stash drop
,你的本地仓库将以你留下的状态重新创建分支。
我认为你的结论是正确的。您似乎已将所有更改从master推送到您的分支。
在继续之前我会做一些假设:
摆脱这种我可以想到的几种方式:
可能还有一些方法可以使用恢复来扭曲你的方式,但这不是我的第一个选择(也许你会得到一些其他答案的解决方案)。我的建议是我上面列出的最后一个 - 将master与你的分支合并(考虑所有假设)。
P,对不起,如果它太冗长,但希望它会帮助你。很想知道其他答案。