我正在将我的分支中的开发分支与上游中的开发分支进行比较。它显示 30 次提交的差异,但 0 个文件更改。 diff 中出现的所有提交都是已经 merge 到上游的旧提交(主要是“Merge branch dev..”类型)。这会导致每个 PR 显示那么多旧提交的问题。尝试 rebase 并仍然显示相同的差异。
为什么会这样?能否请您协助如何解决?我们正在使用 Github for Enterprise,因此无法附加显示差异的 url。
最佳答案
Why this happens?
可能是因为您可能已经从您的Fork(origin)/dev 和upstream/dev 完成了PR (Pull Requests),这不是一个好的做法。
您通常会从专用分支 (myfix
) 到 upstream/dev
执行 PR。然后只需将您自己的 dev
重置为 upstream/dev
,以便在您的 fork 中拥有 upstream/dev
的精确镜像,并且:
- 为 future 的 PR 创建新的
fix
/feature
分支, - 将现有的
fix
/feature
分支基于dev
以促进 future 的 PR。
如果所有内容都提交或存储在本地,我会:
- 在我的本地
dev
所在的位置创建一个专用分支(myfix
或myfeature
)(假设我直接在开发
) - 将开发重置为上游开发
即:
git switch dev
git branch myfix
git fetch upstream
git reset --hard upstream/dev
git push --force
git switch myfix
# resume working
关于Github - 比较分支时没有文件更改但有很多提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64369860/