我不是最好的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,它显示了之前的所有提交。有没有办法不列出所有这些,只显示我最近的提交?它显示了合并到上游长背并与之同步的提交。合并时不必选择特定的提交,只选择列出的提交。
谢谢!
答案 0 :(得分:0)
假设PR意味着Pull Request,这正是您应该看到的 - 自上次克隆存储库以来的所有提交。一般来说,保留这些提交是一个好主意,因为它们会告诉所有事情以及事情的变化。
但是,如果这是因为在任何事情发生变化时提交“过度提交”而不是任务或问题得到解决的情况,那么您当然可以将提交压缩/重新设置为一个。有关详细信息,请参阅以下内容
答案 1 :(得分:0)
您的工作流程似乎不正确。您可以通过两种方式做出贡献:
您在上游存储库中具有写许可权。然后,您应该只克隆上游存储库,签出新分支git checkout -b fix/my-fix
并在那里进行更改。完成后,将新分支推送到上游git push origin
fix / my-fix`并在该存储库中打开PR。
您没有写权限,即您不能将任何分支推送到上游存储库。首先,您必须创建存储库的专用分支,然后将分支克隆到计算机。现在,您还应该为修复或功能添加创建一个新分支。拥有该帐户后,将分支推送到您的私人仓库。这部分有点令人困惑,但是github可以使它工作。然后,您可以从分叉存储库中的原始上游存储库中打开PR。为此,导航到您的github配置文件和存储库,并从新分支开始PR。您应该能够选择上游母版作为新分支的合并目标。
如果在打开新的PR时仍然看到所有旧提交,则说明您的分支已经分开,有人强迫将更改提交给master或类似的东西。您可以使用branch_1
检查两个分支branch_2
和git merge-base branch_1 branch_2
的共同祖先。然后,您可以使用交互式变基git rebase-i
将分支置于另一个分支之上,并丢弃所有不必要的提交。