【问题标题】:Why Compare function of GitLab say the files are different when they are same?为什么 GitLab 的比较功能说文件相同时文件不同?
【发布时间】:2022-10-13 06:20:05
【问题描述】:

请转到 https://gitlab.com/torrentech/hub.torrentech.org/ 并查看主分支和开发分支上的 gitlab-ci.yml - 它们是相同的。

现在去使用 Repository>Compare 实用程序,它告诉文件是不同的,显示当前版本和以前版本之间的差异,这些差异似乎卡在“处于边缘”的某个地方。

不想说我发现了错误但我真的无法解释这个?是的,我在 main 上的 GitLab 界面中调整 gitlab-ci-yml 文件,因为我想快速测试它是否有效,当它成功时,我将更改合并到 dev,并且比较功能从那里为我损坏上。然后我尝试了 ti 恢复最后一次更改 - 比较功能仍然说它们不同,但它们是相同的,因为我在恢复后手动将开发版本编辑为与主版本相同。

得承认我现在脑子里一片混乱,任何有经验的人都可以看看,可能我正在监督一些重要的事情。

【问题讨论】:

  • 差异突出了以下差异:在第 46 行,3 个字符不同(以较暗的阴影或红色/绿色突出显示,主要有 %%/,其中开发有 |||),在最后一行,一个版本结束时没有行尾(最后没有\n)另一个有(因为仅打印行很难查看,当一个版本没有这个最终的\n时,大多数差异工具都会打印一个明确的注释“文件末尾没有换行符” )。这是你想要的 ?
  • 是的,我看到了,但那是错误的。 gitlab-ci.yml 在两个分支上都是完全一样的,显示的这种差异是因为 gitlab-ci.yml 与“limbo”中的先前版本进行比较,您在存储库中找不到该版本 - 这就是为什么我在问这个问题。所以不,这不是我要找的。我想了解为什么 GitLab 会这样。
  • 我注意到当我选择 ...(比较界面中源分支和目标分支之间的选项时,GitLab 告诉文件是相同的,而当我选择 .. 时,它认为它们是不同的。
  • 哦,我明白你的意思了。看我的回答

标签: git gitlab compare branch diff


【解决方案1】:

如果您想将dev 合并到main 中,您会看到将在合并请求中显示的更改。

这就是两者的区别maindev 的合并基数一侧,另一侧为dev

从本地克隆上的 cli :

  • 可以得到git merge-base main dev的hash
  • 然后检查git diff <sha> dev

或者

  • 运行git diff main...dev(3 个点,不是错字,记录在git help diff 的第一段中)

【讨论】:

  • 事实证明,我的存储库实际上一切正常且正常,只是我在想我弄坏了一些东西——你用 git diff 把我推向了正确的方向。无论如何,我不想有大量混乱的提交,所以我做了 git reset --hard (因为在我重置后我只做了一些小的更改),但我想这实际上不需要我的项目 - 没有什么需要解决的。
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 2018-10-08
  • 1970-01-01
  • 2018-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多