7

我正在开发一个从上游分叉的 git 存储库。有一个我想实现的功能,我创建了一个新的分支uiTests并在那里进行了更改并提出了拉取请求。

PR 存在了一段时间,与此同时,其他一些 PR 被合并并出现了冲突。我在我的 fork 中解决了它们,最后有两个合并提交。

当我检查 git 日志时,列表顶部是这样的;

commit 70db4de884d5e4b64ef3a2c903f310c901dd68e2
Merge: ef5dfc2 5b7a827
Author: Padmal
Date:   Sat May 26 18:53:33 2018 +0530

    Merge branch 'CloudyPadmal-uiTest' into uiTests

commit 5b7a827763c35a3605daed6c717004700582eede
Merge: e815867 ef5dfc2
Author: Padmal
Date:   Sat May 26 18:52:52 2018 +0530

    Merge branch 'uiTests' of git://github.com/CloudyPadmal/pslab-android into CloudyPadmal-uiTest

commit ef5dfc2f4af7431b2bc5efa356540bd616669706
Author: Padmal
Date:   Thu May 24 20:06:27 2018 +0530

    test: removed Travis build time consuming UI tests

    removed dummy test files

所以我想通过一次提交来压缩并更新70db4de884d5e4b64ef3a2c903f310c901dd68e2PR 5b7a827763c35a3605daed6c717004700582eedeef5dfc2f4af7431b2bc5efa356540bd616669706

欲了解更多信息,git log --oneline结果如下;

70db4de Merge branch 'CloudyPadmal-uiTest' into uiTests
5b7a827 Merge branch 'uiTests' of git://github.com/CloudyPadmal/pslab-android into CloudyPadmal-uiTest
ef5dfc2 test: removed Travis build time consuming UI tests

但是当我尝试时git rebase -i HEAD~3,控制台看起来像这样;

pick 9b97740 Changed Help and Feedback Activity to Fragment (#882)
pick 7e93db6 chore: Update app version (#922)
pick ca155b6 Added card view for instruments section (#884)
pick e815867 Removed AboutUs activity (#914)
pick ef5dfc2 test: removed Travis build time consuming UI tests

它没有向我显示合并提交。有关更多信息,以下是 Android Studio 的版本日志;

git 日志视图

我是否遵循正确的方法来压缩这些合并提交?还是有可能压扁这些提交?这种挤压合并提交对我来说有一段时间是个小问题。非常感谢任何帮助和提示!:)

4

1 回答 1

6

让我假设您有一个名为“development”的上游 repo 分支和您自己的名为“uiTests”的分支。你已经创建了一个 PR from fork/uiTeststo upstream/development(所以你有 2 个遥控器:forkupstream)。

解决冲突后,您的日志中出现了一些混乱,但您已经测试过您的工作副本状态良好,应用程序正常工作,您的更改正常工作,一切都很好,您想要的只是让您的工作全部完成 1 提交并更新公关。

一种简单的解决方案是运行:

git reset --soft upstream/development

然后再次重新提交所有更改:

git add .
git commit

在此之后,您将在新的上游分支之上仅提交 1 次更改。

假设您在“uiTests”分支中执行所有这些操作,那么您需要更新 PR 的内容是:

git push -f fork
于 2018-05-26T16:23:51.567 回答