在gitlab中看到子模块上的提交差异

时间:2016-11-30 18:12:17

标签: git github gitlab

我有一个gitlab版本7.3,当我使用普通存储库时工作完全正常。 但是,我在gitlab项目中添加了一个github子模块。 在我的回购中,我在提交和推送之后做了(git push --recurse-submodules = check)并且它运行良好。

但是现在,我可以在gitlab上看到我的提交,但是当我在带有chrome的gitlab上浏览它时,差异没有显示出来。 同时很好地显示了子模块外部文件的所有提交。 这是一个已知问题吗?

我还有别的办法吗?

1 个答案:

答案 0 :(得分:2)

这是一个已知问题......关于Git本身。

今天解决了Git 2.11及其新git diff --submodule=diff

enter image description here (来自What is new in Git 2.11的“Tim Pettersen”图片

这不能通过GitLab GUI获得,因为它刚刚在Git中发布。

注意:只有Git 2.13(2017年第二季度)修复了该功能中的错误:

commit 17b254cStefan Beller (stefanbeller)(2017年3月31日) Junio C Hamano -- gitster --合并于commit 1776a71,2017年4月17日)

在子模块中运行git diff --submodule=diff,子模块中有自己的子模块有变化会收到错误:

fatal: bad object.
  

这种情况发生了,因为我们没有正确初始化环境   差异在子模块中运行   这意味着我们从主进程继承环境,主进程设置环境变量。 (显然我们设置环境变量,当不在子模块中时我们没有设置,即.git目录已链接)

注意:Git 2.14仍然改进了命令“git diff --submodule=diff”,现在它会递归到嵌套的子模块中。

commit 5a52214Stefan Beller (stefanbeller)(2017年5月4日) Junio C Hamano -- gitster --于2017年5月29日commit a531ecf合并)

  

diff:递归嵌套子模块以进行内联差异

     

fd47ae6diff:教diff显示与内联差异的子模块差异时,2016-08-31,Git 2.11)被引入,我们没有想到递归到嵌套子模块。

     

显示子模块的内联差异时,会自动递归   嵌套子模块以及内联子模块差异。