Git。如何在不合并不必要的提交的情况下更新功能分支?
Git. How to update feature branch withour merging unneccessary commits?
我对这些场景有点困惑:
我有任务。
我创建功能分支,在这里工作。
然后我创建 Pull Request 到 release-test 分支。
为了避免冲突,首先我必须更新我的功能分支。所以我必须将发布测试合并到功能中。
但在这种情况下,在我的 Pull Request 中,我将有很多我不想拥有的合并提交。我只想在 PR 中提交我的功能分支。
这种情况怎么办?
我推送了我的功能分支,然后在 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-test
、rebase 相比,您需要更新 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
分支。
我对这些场景有点困惑:
我有任务。
我创建功能分支,在这里工作。
然后我创建 Pull Request 到 release-test 分支。
为了避免冲突,首先我必须更新我的功能分支。所以我必须将发布测试合并到功能中。
但在这种情况下,在我的 Pull Request 中,我将有很多我不想拥有的合并提交。我只想在 PR 中提交我的功能分支。
这种情况怎么办?我推送了我的功能分支,然后在 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-test
、rebase 相比,您需要更新 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
分支。