![]() |
1
233
您已添加
你可能是这样做的:
最后一个命令是问题所在。目录
普通目录在git中表示为树对象;树对象为其包含的对象(通常分别是其他树和blob对象目录和文件)提供名称和权限。子模块表示为gitlink条目;gitlink条目只包含子模块头提交的对象名(哈希)。Gitlinks提交的源存储库在
您所拥有的是一个指向特定提交的条目,而不记录该提交的源存储库。您可以通过将您的Gitlink设置为适当的子模块,或者删除Gitlink并将其替换为__normal_内容(普通文件和目录)来解决此问题。 把它变成一个子模
唯一缺少的正确定义
正如您所发现的,如果索引中已经存在该路径,则此操作将不起作用。解决方案是暂时从索引中删除gitlink条目,然后添加子模块:
这将使用现有的子存储库(即不会重新克隆源存储库)和阶段A
它也会在你的主要仓库里做一个类似的条目。
提交它,您将得到一个适当的子模块。当您克隆存储库(或推送到Github并从那里克隆)时,您应该能够通过以下方式重新初始化子模块:
将其替换为纯内容
下一步假设您的子存储库位于
如果在您关心的子存储库中有本地历史记录,那么您应该备份子存储库。
这一次添加目录时,它不是子存储库,因此文件将正常添加。很遗憾,因为我们删除了
你可以考虑使用 subtree merge 相反。这样做可以让您轻松地从源存储库中提取更改,同时保持存储库中的文件是平面的(没有子模块)。第三方 git subtree command 是围绕子树合并功能的一个很好的包装器。
后来:
Git子树
也有一个
|
![]() |
2
111
我也有同样的问题。原因是有一个子文件夹包含一个“.git”文件夹。移除它让Git高兴。 |
![]() |
3
9
引用URL https://danielmiessler.com/blog/git-modified-untracked/#gs.W0C7X6U |
![]() |
4
6
为了指出我必须从ChrisJohansen与OP的对话中挖掘出什么(链接到一个答案的回复):
第二个表单将不添加gitlink,并且内容是可跟踪的。.git目录很容易被自动忽略。谢谢你,克里斯! |
![]() |
5
5
我一直使用彼得·拉达建议的技巧,被称为“假子模块”。 http://debuggable.com/posts/git-fake-submodules:4b563ee4-f3cc-4061-967e-0e48cbdd56cb 它在一些场景中非常有用(例如,我使用它将所有Emacs配置保存在一个存储库中,包括el p a/el get package目录中所有Git存储库的当前负责人,这样当某些更新中断时,我可以很容易地回滚/转发到已知的工作版本)。 |
![]() |
6
3
http://progit.org/book/ch6-6.html 我认为你应该读这个来学习一些子模块。它写得很好,读起来不需要太多时间。 |
![]() |
7
3
对于一个包含许多子模块的大项目,我也有同样的问题。 基于以下答案 Chris Johnsen here 和 VonC here 我构建了一个简短的bash脚本,它遍历所有现有的gitlink条目,并将它们作为适当的子模块添加。
这是为我修的,希望能有所帮助。 |
![]() |
8
1
有同样的问题,但在这次讨论中没有解决。 我还碰到了在线程打开中描述的子模块问题。
查看diff时,我发现哈希后面有一个-dirty: 再看一遍医生,帮我解决了问题。 http://web.mit.edu/jhawk/mnt/spo/git/git-doc/user-manual.html 看“带子模块的陷阱”一节 原因是,子模块中存在变化或未跟踪的内容。 我首先要到子模块目录,做一个“git-add”+“git-commit”来跟踪子模块中的所有内容。
现在,这个来自子模块的新头可以提交给主模块。 |
![]() |
9
1
我最近在一个合同项目中遇到了这个问题(被认为是机密的)。当然,为了安全起见,我必须运行代码的系统没有互联网接入,因此使用composer和npm安装依赖项变得非常痛苦。 经过与同事的深思熟虑,我们决定只进行Wing和复制粘贴依赖项,而不进行Composer安装或NPM安装。 这导致我们无法在gitignore中添加供应商和NPM_模块。这就是我遇到这个问题的时候。
我在谷歌上搜索了一下,发现了这个有用的线索。我不是一个太多的Git专家,工作时有点陶醉,我只是在Vendors文件夹中搜索所有子模块。
这给了我一些4-5的依赖性,他们有git。我删除了所有这些.git文件夹,瞧,它起作用了。 我知道这是黑客行为,无论如何也不是很古怪。噢,上帝啊,请原谅我!下一次,我保证会在Gitlinks上读到更多,并且服从强大的Linus Tovalds。 |
![]() |
10
1
这个问题已经被回答过了,但我想我会把收到这些信息后发现的信息加在一起。
我有个回购协议
|
![]() |
11
1
这对我来说很好: Git更新索引--跳过工作树 如果路径名不起作用,请尝试使用文件名。如果这对你也有用,请告诉我。 再见! |
![]() |
12
0
首先去 号码簿 : 供应商/插件/开放式闪存图表 和 删除 然后:
产量
|
![]() |
brunoais · git克隆工作;git子模块失败“权限被拒绝” 7 年前 |
![]() |
Csabi · 如何在git中将子目录添加为子模块 7 年前 |
![]() |
JonnyRobbie · 取消Github回购的分叉 7 年前 |
![]() |
Clement · Git子模块有效跟踪分支 7 年前 |
![]() |
David · git子模块未推入正确的回购 7 年前 |
![]() |
ewok · git:将子模块设置为自动跟踪远程存储库 7 年前 |
![]() |
picheto · Git子模块和拉式更改 7 年前 |