Git没有正确计算文件



我们有以下分支结构

  1. 功能分支-每个用户故事一个
  2. 环境分支(QA, UAT和master)

部署过程一旦用户故事完成,我们将功能分支合并到QA分支中,在那里完成测试。我们一直这样做,直到我们有足够的故事被提升到UAT分支。我们只将客户/QA团队批准的故事合并到UAT分支。主分支也一样。

每次部署后,我们从master重新构建所有的特性分支(正在开发中)。当我们试图将更新的特性分支合并到QA分支时,我们看到pull request中有很多文件。在QA中已经存在的文件(在QA部署阶段合并)显示为新文件,而更新的文件也显示相同的更改。

这里的原因是什么?我如何确保git在创建拉取请求时正确计算文件。

对于每个功能分支,您需要使用两个参数执行rebase --onto qa(PR的目标分支):

  • 该特性分支的第一次提交的父级
  • 特性分支名称"F">

:

git rebase --onto qa FirstCommit~1 F

如果你知道从哪个分支"B";F支路启动,使用git merge-base:

git rebase --onto qa $(git merge-base B F)~1 F

如果没有,执行git log F来直观地检查哪个提交是F特性分支的第一个提交。

对一个特性分支git push --force进行尝试,该分支曾经基于目标分支的顶部,并检查正在进行的PR(有太多的提交)现在只显示来自F的提交。

最新更新