我有一个如下所示的场景:
我有一个
release
分支和一个 master
分支(两者都是受保护分支)。发布后,我想创建一个 PR 以使用 master
分支更新 release
,但由于存在一些合并冲突,所以这就是我所做的:
我从
master
分支出一个名为 release_to_master
的分支,并将 release
分支合并(并解决冲突)到 release_to_master
分支。
然后在 Github 上创建一个 PR,将
release_to_master
合并到 master
中。然后我使用“挤压并合并”来合并它。
之后,我认为我的
master
分支应该与发布分支同步,但是当我尝试创建另一个 PR 将 release
分支直接合并到 master
中时。我仍然看到提交和文件更改,但不再有合并冲突。
我有两个问题:
这是在我的场景中更新分支的正确方法吗?
为什么当
master
应该已经更新到最新时仍然有提交和更改?
我认为我的主分支应该与发布分支同步
了解
master
和release
分支现在是否处于相同状态的方法是不是查看提交,而是比较它们当前的状态:
git diff master release
如果没有输出,则它们处于相同的状态,您的任务完成。两个分支不可能也没有必要具有相同的历史记录或提交;它们是不同的分支,并且无论如何,您都知道
master
至少有一个 release
没有的提交,即您要求 GitHub 创建的挤压提交。
但是请注意,您所做的(合并)不一定能完成此任务。事实上,听到它确实如此,我会感到惊讶。自最近的拓扑分歧点以来,Git 中的合并均等地包含两个分支的贡献。我不知道那是什么时候,因为你没有提供有关这两个分支过去如何相关的信息。但是,如果您的目标是使
master
的状态与 release
的状态相同,那么您所做的事情就不会实现该目标。