Git-包含当前更改但不包含以前提交的Pull请求

Git-包含当前更改但不包含以前提交的Pull请求,git,github,git-pull,pull-request,Git,Github,Git Pull,Pull Request,我从原点创建了一个分支,并对该分支进行了更改。我做了几次提交来向朋友展示我正在做的事情,但我不希望在我提出拉取请求时这些提交显示在源代码上 我如何才能使请求中只显示一个提交 我想做的是创建另一个分支,并将以前的分支重置为head。。。。但我真的不知道该怎么办 提前谢谢 以下是我要做的: 假设从源代码克隆的分支名为A。我将再次将源代码克隆到名为B的新分支中。然后,我将使用--squash标志(在分支B上:git merge--squash A)将A分支合并到B分支中,这样分支A中的所有提交都将作为

我从原点创建了一个分支,并对该分支进行了更改。我做了几次提交来向朋友展示我正在做的事情,但我不希望在我提出拉取请求时这些提交显示在源代码上

我如何才能使请求中只显示一个提交

我想做的是创建另一个分支,并将以前的分支重置为head。。。。但我真的不知道该怎么办


提前谢谢

以下是我要做的:


假设从源代码克隆的分支名为A。我将再次将源代码克隆到名为B的新分支中。然后,我将使用--squash标志(在分支B上:git merge--squash A)将A分支合并到B分支中,这样分支A中的所有提交都将作为一个分支转到分支B。然后,您可以从B分支发出拉请求,您希望做的是挤压分支上的提交

这可以通过(在要修改的新分支中)键入以下命令来完成:

$ git rebase -i <your_starting_commit_SHA>
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
s更改为
squash
。然后Git将
commit2
commit3
commit4
压缩成
commit1
,从而在请求拉取之前为您提供干净的提交历史记录

这里的最终结果将是一个带有重写的提交消息的单次提交,而不是原来的四次提交(当然,用于说明目的)。

另请参见此处: