Rebase还是樱桃挑选这些提交?

时间:2015-03-26 15:45:04

标签: git github

我不久前试着改变了自己的态度,并将自己搞砸了。

经过一些中止尝试后,我的文件形状需要它们,但是当我在github上准备一个pull请求时,我的提交历史看起来很难看:

list of commits

我想在打开PR之前将所有这些压缩到一次提交但不知道如何。如果我尝试git rebase -i HEAD~5我会从列表中的其他人那里得到提交(可能是因为我在某些时候从master合并了?)

我不能轻易挑选,因为那里有合并提交,我不知道如何解决这个问题,樱桃选择涉及合并。

正如我所提到的,如果我现在打开PR,文件应该是应有的,但我知道回购经理会要求我压制那段历史。我正在寻找有关该怎么做的建议?

编辑:为了回应更多信息的请求,这是来自我的git客户端sourcetree的图表。希望它有所帮助(我意识到我没有发布100%的信息,并且不一定希望获得答案的灵丹妙药,但我希望采用一种方法。)

enter image description here

哇,在帖子中看起来并不好看。 Here's the link to the image

2 个答案:

答案 0 :(得分:2)

  

我想将所有这些压缩到一次提交

然后您不需要rebase,只需使用resetcommit

git reset --soft origin/master
git commit

git reset --soft会将您当前的分支更新为与origin/master相同的提交,但不会更新您的索引或工作树,因此,所有更改仍然在索引中并准备好再次承诺。

答案 1 :(得分:1)

啊,如果没有完整的历史记录等,这很难搞清楚,但我认为HEAD~5是罪魁祸首。你回到历史的太久了 - 据我所知,你的实际分支只有3个提交。您可以通过明确指定提交哈希来尝试重新定位吗? E.g。

git rebase -i <parent-of-d9e6a34>

当然,您可以使用实际的提交哈希替换<parent-of-d9e6a34>

编辑:git rebase -i d9e6a34~1也应该这样做。

相关问题