为什么Github会在每个Pull请求中显示我之前的所有提交

时间:2017-01-26 22:07:05

标签: git github pull-request

我不是最好的Git用户,每当我创建PR时都会遇到问题。基本上,当我制作PR时,我会看到我之前所有提交的大量列表,包括我刚刚提交的那个(我想要合并到Master分支的那个)。我所做的流程如下:

首先,我分叉我们的主分支的副本,

git clone [local copy] 

然后我创建了一个远程

git remote add upstream [main repo url]

然后,每当我做出更改时,我想添加到我的PR:

git add [file1] [file2 ] ...ect

然后提交:

git commit -m 'blah blah blah'

最后推向原点:

git push origin master

在此之后,我在Github上创建了一个PR,它显示了之前的所有提交。有没有办法不列出所有这些,只显示我最近的提交?它显示了合并到上游长背并与之同步的提交。合并时不必选择特定的提交,只选择列出的提交。

谢谢!

2 个答案:

答案 0 :(得分:0)

假设PR意味着Pull Request,这正是您应该看到的 - 自上次克隆存储库以来的所有提交。一般来说,保留这些提交是一个好主意,因为它们会告诉所有事情以及事情的变化。

但是,如果这是因为在任何事情发生变化时提交“过度提交”而不是任务或问题得到解决的情况,那么您当然可以将提交压缩/重新设置为一个。有关详细信息,请参阅以下内容

答案 1 :(得分:0)

您的工作流程似乎不正确。您可以通过两种方式做出贡献:

  1. 您在上游存储库中具有写许可权。然后,您应该只克隆上游存储库,签出新分支git checkout -b fix/my-fix并在那里进行更改。完成后,将新分支推送到上游git push origin fix / my-fix`并在该存储库中打开PR。

  2. 您没有写权限,即您不能将任何分支推送到上游存储库。首先,您必须创建存储库的专用分支,然后将分支克隆到计算机。现在,您还应该为修复或功能添加创建一个新分支。拥有该帐户后,将分支推送到您的私人仓库。这部分有点令人困惑,但是github可以使它工作。然后,您可以从分叉存储库中的原始上游存储库中打开PR。为此,导航到您的github配置文件和存储库,并从新分支开始PR。您应该能够选择上游母版作为新分支的合并目标。

如果在打开新的PR时仍然看到所有旧提交,则说明您的分支已经分开,有人强迫将更改提交给master或类似的东西。您可以使用branch_1检查两个分支branch_2git merge-base branch_1 branch_2的共同祖先。然后,您可以使用交互式变基git rebase-i将分支置于另一个分支之上,并丢弃所有不必要的提交。