在我们的项目中,我们已经做了很多很多次。但这次却很奇怪,当我们试图创建PR将发布分支合并到master中进行部署时,github的Web用户界面却认为改变了500个文件,而不是报告少于100个文件。当我们试图创建一个PR来将发布分支合并到master中进行部署时,github的Web用户界面没有报告少于100个文件的变化,而是认为有500个文件变化。而且很多文件的差异都是错误的。
master 分支是用于生产部署的分支,release 分支是用于 QA 构建的。
例如,文件foo.java已经好几个月没改了,而且在两个分支中都有相同的历史记录。但PR认为master没有这个文件,于是尝试添加它。更奇怪的是,如果我做反向PR,从master到release。现在github文件改变了,认为release没有这个文件。
有什么办法可以解决这个问题吗?
不完全理解为什么github会这样做,但我有一个工作方法。工作方法是从 release 分支创建一个中间分支,先用它与 master 合并,然后以 master 为基础创建 PR。
git checkout release
git pull
git checkout -b test/master-to-release
git merge --no-commit master
git commit -m'test/master-to-release created branch from release. merge with master. use master for beam files. use release for the rest'
git push
这时,以 maser 为基础创建一个 testmaster-to-release 的 PR,然后 PR 只正确地显示 release 中修改的文件,对于同一个分支,当以 release 为基础创建 PR 时,它只显示 master 中修改的文件。因此,testmaster-to-release 是一个中间分支,用来解决冲突,并为与 master 或 release 合并提供一个干净的分支基础。
如果你在本地检查这两个分支的差异,你可以确定哪些地方发生了变化。
git config core.autocrlf
提交时设置为true)如果是交叉合并的问题,一个更好的选择是。
master
分支。upstream/master
git push --force
上述公关部门