git - Github UI 合并的 3 种类型的细分
问题描述
我一直在使用 Github UI 来合并 PR(拉取请求),UI 看起来像:
我试图更仔细地了解这三件事是如何工作的。这是我对这三个选项的最佳猜测:
- 创建合并提交
git merge <base> <other>
- 挤压和合并
git merge --squash <base> <other>
- 变基和合并
git rebase <base> <other>
这是准确的吗?还是我错过了什么?
解决方案
我在 git 中的 Merge pull request 中有一个较长版本的这个答案导致上游分支先于原点,但这里是速记等价物。所有人都假设您一开始就在基本分支上,即. 下面的消息是并且是根据拉取请求自动计算的。git checkout branch
Merge pull request #number from repository
hash
创建合并提交
git merge --no-ff -m message hash
挤压和合并
git merge --no-commit --squash hash && git commit -m message
变基和合并
git rebase --force-rebase hash
(请注意,如果发生合并冲突,rebase-and-merge 将不起作用。我不清楚 GitHub 系统是否会检查是否有--merge
它,或者完全以其他方式检查。拉取请求已经检查了合并冲突with git merge
or without --squash
;总是存在,但只有在没有这样的冲突时才存在,我认为。他们——GitHub——还跟踪用于创建拉取请求的“基本分支”是否是最新的,但是目前还不清楚他们是如何做到这一点的。)refs/pull/head/number
refs/pull/merge/number
推荐阅读
- arrays - Bash 脚本:比较内联数组中的字符串与使用 mapfile 导入的数组
- flutter - 颤振模型不适用于不同的响应
- python - 使用“numpy.ndarray”更有效的点积
- amazon-web-services - AWS ip_range.json 中的 CLOUDFRONT_ORIGIN_FACING 是什么?
- php - Laravel 8加载未找到命名空间的动态类
- javascript - JavaScript 语法条件语法?和
- javascript - 如何重命名 Node Js 中数组内的对象的“键”名称?
- perl - 使用 PostgreSQL 14 运行 Ora2Pg
- javascript - initialFiles 中的状态值 null 反应 dropzone
- npm - npm 是否有类似于“yarn licenses generate-disclaimer”的东西