我不久前试着改变了自己的态度,并将自己搞砸了。
经过一些中止尝试后,我的文件形状需要它们,但是当我在github上准备一个pull请求时,我的提交历史看起来很难看:
我想在打开PR之前将所有这些压缩到一次提交但不知道如何。如果我尝试git rebase -i HEAD~5
我会从列表中的其他人那里得到提交(可能是因为我在某些时候从master合并了?)
我不能轻易挑选,因为那里有合并提交,我不知道如何解决这个问题,樱桃选择涉及合并。
正如我所提到的,如果我现在打开PR,文件应该是应有的,但我知道回购经理会要求我压制那段历史。我正在寻找有关该怎么做的建议?
编辑:为了回应更多信息的请求,这是来自我的git客户端sourcetree的图表。希望它有所帮助(我意识到我没有发布100%的信息,并且不一定希望获得答案的灵丹妙药,但我希望采用一种方法。)
哇,在帖子中看起来并不好看。 Here's the link to the image
答案 0 :(得分:2)
我想将所有这些压缩到一次提交
然后您不需要rebase
,只需使用reset
和commit
。
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
也应该这样做。