在分支之间创建 GitHub Pull 请求时,它会获取目标分支上的上一次提交,而不是最新的提交。
因此,我们无法完成部署,导致在分支上进行大量手动更改来解决冲突。
您需要确保您的功能分支与目标分支是最新的。
Feature Branch Target Branch
│ │
├─ ● Commit A ├─ ● Base Commit
├─ ● Commit B ├─ ● Commit X (Old)
│ ├─ ● Commit Y (New)
│ (fetch & merge/rebase here) v
v
这应该涉及从目标分支获取最新更改,并在创建或更新 PR 之前根据它合并或重新调整功能分支。
git fetch origin
git switch your-feature-branch
git merge origin/target-branch
# or, to keep a cleaner, linear history
git rebase origin/target-branch
如果在合并或变基过程中遇到冲突,则需要手动解决它们,然后继续变基(如果您正在变基)或提交合并(如果您正在合并)。
Feature Branch Target Branch
│ │
├─ Base Commit ├─ Base Commit
├─ Commit X (Old) ├─ Commit X (Old)
├─ Commit Y (New) ── merge/rebase ──> ├─ Commit Y (New)
├─ Commit A v
├─ Commit B
v
将更改推送到远程存储库上的功能分支。如果您已重新设置基准,则需要使用强制推送:
git push origin your-feature-branch --force
这将确保您的功能分支包含目标分支的所有更新,从而实现更干净且无冲突的 PR。