在GitHub上提交PR时如何清除提交历史



我是Git的新手。在GitHub上,我分叉了一个第三方项目来做贡献。每次新的pr被合并到它的主节点时,我必须更新我的分叉以保持最新状态。在我的分叉存储库的主页上,我单击New pull request,交换基分支和头分支,创建一个新的PR,并将其合并到我自己的副本中。

然而,我注意到每次我提交一个PR时,都会在提交历史中创建一个越来越大的提交列表。我如何在提交PR之前或之后将所有这些提交合并为一个?我用的是Visual Studio 2015。

我想我需要压缩提交,但我不知道如何在vs上做到这一点。

你不应该压缩或使用拉取请求,而是将原始repo的远程添加到你的项目中,然后你可以在他们的最新代码的基础上重新构建。

 git remote add theirs https://www.github.com/original/project.git
 git fetch theirs
现在在Visual Studio中(或从命令行中),你可以右键单击他们的/master分支并选择rebase到。这将重写您的本地历史记录,并在最新代码之上重播您的更改。

可能需要强制推送到你自己的github分支,因为在某些情况下,重基会导致你本地的git commit-id发生变化。你可能需要合并变更,因为他们的最新版本将是领先的,你的本地提交将在他们的最新版本的代码之上重播。

这个过程将给你最干净的历史记录,包括他们最近的更改。

如果重基/强行推进吓到你,也可以从他们的/主做一个正常的合并到你的本地分支。确保在添加远程后从他们那里获取最新的更改,然后你可以在Visual Studio中右键单击他们的主分支并选择"Merge into"将他们的更改合并到本地工作目录中。

最新更新