我从原点创建了一个分支,并在该分支上进行了更改。我做了几次提交,向朋友展示我在做什么,但是当我提出拉取请求时,我不希望这些提交显示在原点上。
我怎样才能这样做,因此只有一个提交会出现在pull请求中。
我正在考虑做的是创建另一个分支,并将我之前的分支重置为头......但我真的不知道该怎么做。
提前致谢!
答案 0 :(得分:1)
您要做的是 压缩 分支上的提交。
这可以通过(在您要修改的新分支中)键入以下内容:
$ git rebase -i <your_starting_commit_SHA>
然后您将能够pick
或squash
提交(或重新提交提交,以便在压缩后匹配更合适的提交消息)。
当您执行此交互式rebase时,您将面临以下情况:
pick <commit1_SHA> <commit1_message>
pick <commit2_SHA> <commit2_message>
pick <commit3_SHA> <commit3_message>
pick <commit4_SHA> <commit4_message>
# ... so on and so forth
如果您想将所有提交压缩到原始提交中,那么您将为第一次提交保留pick
,然后将剩余的pick
更改为squash
。然后,Git会将commit2
,commit3
和commit4
压缩到commit1
,从而在拉取请求之前为您提供 clean 提交历史记录。
这里的最终结果将是带有重写提交消息的单提交,而不是原来的四次提交(当然用于说明目的)。
答案 1 :(得分:0)
以下是我要做的事情:
假设你的克隆分支从原点被称为A.我会将原点再次克隆到一个名为B的新分支中。然后我将A分支合并到B分支中,使用--squash标志(在分支B上) :git merge --squash A),所以你在分支A中的所有提交都将作为一个进入分支B.然后,您可以从B分支发出拉取请求