【发布时间】:2021-09-07 15:36:18
【问题描述】:
我是 Git 的初学者,但我熟悉许多基础知识和命令。
我有一个项目,其 git 历史如下所示:
* a1b2c3 (HEAD -> main) Merged develop/new-update into main
|
| * b2c3d4 (develop/new-update) Final commit on this branch, new work complete
| |
| Many other commits in between...
| |
| * c3d4e5 Starting new work
| /
| /
* d4e5f6 Previous version, long ago
最新的提交 a1b2c3 是 git checkout main 然后 git merge--squashdevelop/new-update 和 git commit 另一个分支的阶段性集体更改的结果。
现在,两个分支末尾的 repo 状态是相同的(git diff main develop/new-update 没有输出)
问题
现在,当我将其推送到 Github 时,它显示了“比较和拉取请求”通知,这让我感到困惑:
如果这些分支的最终状态相同,为什么它要求我拉取请求? 如果我创建并接受了 repo,pull request 会对 repo 做什么?
我注意到 squash 合并提交只有一个父提交,就好像我在主分支上直接编写了这些更改(并且开发分支说 X 提前提交,1 次提交在主之后)。拉取请求会使开发分支再次“指向”主分支吗?
我只在与他人的项目合作时使用拉取请求,比如将我的分支的一个分支合并到原始分支中。我在你自己的仓库中找到了this article关于拉取请求,但它只讨论了用途,谷歌搜索拉取请求只会显示存在差异分支但尚未合并的示例;或涉及不同的回购。
如果有任何见解,我将不胜感激。谢谢!
【问题讨论】:
标签: git github git-merge pull-request