Git。如何在不合并不必要的提交的情况下更新功能分支?

Git. How to update feature branch withour merging unneccessary commits?

我对这些场景有点困惑:

  1. 我有任务。
    我创建功能分支,在这里工作。
    然后我创建 Pull Request 到 release-test 分支。
    为了避免冲突,首先我必须更新我的功能分支。所以我必须将发布测试合并到功能中。
    但在这种情况下,在我的 Pull Request 中,我将有很多我不想拥有的合并提交。我只想在 PR 中提交我的功能分支。
    这种情况怎么办?

  2. 我推送了我的功能分支,然后在 PR 中出现了冲突。我的下一步是什么?
    我试图恢复到最后一次提交,与发布测试分支进行比较,然后强制推送。这是一个好习惯吗?

P.S。如果这有帮助,我正在使用 Intellij Idea

In order to avoid conflicts, first I have to update my feature branch. So I have to merge release-test into feature.

不要:您应该始终从特定分支合并到集成分支,而不是相反。

  • 您的 feature 分支是一个特定的分支(特定于您在其自己的分支中隔离的给定任务)
  • release-test是一个集成分支(多个分支合并)

如果与 release-testrebase 相比,您需要更新 feature 分支:

 cd /path/to/local/repo
 git switch feature
 git fetch
 git rebase origin/release-test
 # resolve potential conflict there
 git push --force

这将保证您的 PR 中不会有任何冲突(在 push --force 之后自动更新),因为您的 feature 分支只会在最近的远程提交之上添加新提交release-test 分支。