|
|
1
3641
|
|
2
2527
自从 git1.8.3 (April 22d, 2013) :
删除过程还使用
总结
解释
这需要注意(反)初始化步骤是否正确(
自git1.8.5以来
如果忘记了最后一步,并尝试将子模块添加为常规目录,则会收到如下错误消息:
注意:自Git 2.17(2018年第2季度)以来,Git子模块Denit不再是shell脚本。
看见
commit 2e61273
,
commit 1342476
(2018年1月14日)由
Prathamesh Chavan (
|
|
|
3
702
使用git 1.7.8或更新版本克隆的子模块在本地repo中最多会留下四条自身痕迹。以下三个命令给出了删除这四条记录道的过程:
|
|
|
4
578
正如@Mark Cheverton的回答正确指出的那样,如果第二行没有被使用,即使您现在删除了子模块,剩余的.git/modules/the_submodule文件夹也会阻止相同的子模块在将来被重新添加或替换。另外,正如@VonC所提到的,
--更新(07/05/2017)--
只是想澄清一下,,
正如评论和报告中正确指出的那样
other answers
,这两个命令(虽然功能上足以删除子模块)在
|
|
|
5
225
当你这样做的时候
因此,如果您希望删除模块,但能够快速恢复,
这是一个好主意
|
|
|
6
84
除了建议之外,我还必须
|
|
|
7
67
要删除使用添加的子模块,请执行以下操作:
运行:
就这样。 对于git的旧版本(约1.8.5),请使用:
|
|
|
8
55
如果你写在git的邮件列表上,可能有人会为你编写一个shell脚本。 |
|
|
9
43
总而言之,这是您应该做的:
|
|
|
10
43
我发现
从…起 git docs :
|
|
|
11
42
您可以使用别名自动执行其他人提供的解决方案:
|
|
|
12
42
如果子模块是
意外地
添加是因为您添加、提交和推送了一个已经是Git存储库(包含)的文件夹
FWIW
,我还删除了
|
|
|
13
21
这将恢复与添加子模块之前完全相同的状态。您可以立即再次添加子模块,这在这里的大多数答案中是不可能的。
这将为您提供一个干净的签出,无需提交任何更改。 这是用以下方法测试的:
|
|
|
14
18
|
|
15
16
|
|
|
16
15
以下是我所做的: 1.)从.gitmodules文件中删除相关部分。您可以使用以下命令:
2)舞台表演
4.)删除gitlink(无尾随斜杠):
5.)清理垃圾
6.)承诺:
7.)删除现在未跟踪的子模块文件
|
|
|
17
14
https://github.com/visionmedia/git-extras 安装并键入:
然后事情就完成了。子模块目录将从repo中删除,并且仍然存在于文件系统中。然后,您可以提交更改,如下所示:
|
|
18
11
我不得不采取约翰·杜克的措施,这是一个更进一步的步骤
|
|
|
19
9
以下是我认为必要或有用的4个步骤(首先是重要步骤):
理论上
但截至2017年7月,
是否需要删除中的数据
tinlyx's answer
注意到
第3步删除的部分
对于这一点,大多数答案建议使用
最后但并非最不重要,如果你不
这与执行步骤2或步骤3无关。 |
|
|
20
9
为了读者的利益,本文试图对其进行总结,并提供一个逐步的指南,说明如果事情没有按照预期的方式进行,该如何做。以下是
测试和安全的方式
对于
注意
与之成反比吗
因为有些命令基本上需要做的不仅仅是一件事:
这不能是完全对称的,因为保持严格对称没有多大意义。根本不需要两个以上的命令。另外,“拉入数据”是隐式的,因为您需要它,但是删除缓存信息是不需要的,因为这根本不需要,而且可能会删除宝贵的数据。
这确实让新来者感到困惑,但基本上是件好事:
如果失败了
可能的解决办法如下。
使用更新的
|
|
|
21
8
我刚刚找到了.submodule(忘记确切名称)隐藏文件,它有一个列表。。。您可以通过这种方式逐个删除它们。我只有一个,所以我把它删掉了。很简单,但它可能会搞乱Git,因为我不知道子模块是否附加了任何内容。除了libetpan通常的升级问题外,到目前为止似乎还可以,但这(希望)是不相关的。 注意到没有人发布手动擦除,所以添加 |
|
|
22
8
在git 2.17及更高版本中,它只是:
|
|
|
23
8
在GitV2.7.4中,简单的3个步骤工作得很好。
|
|
|
24
7
|
|
|
25
4
如果您刚刚添加了子模块,例如,您只是添加了错误的子模块或将其添加到了错误的位置,只需执行以下操作
|
|
|
26
3
总而言之,这是您应该做的: 将路径设置为子模块变量(无尾随斜杠):
从.gitmodules文件中删除相关行:
从.git/config中删除相关部分
仅从索引中取消显示并删除$path_to_子模块(以防止丢失信息)
提交超级项目
删除现在未跟踪的子模块文件
|
|
|
27
1
我创建了一个bash脚本来简化删除过程。它还检查回购协议中是否有未保存的更改,并要求确认。
它已经在计算机上进行了测试
https://gist.github.com/fabifrank/cdc7e67fd194333760b060835ac0172f |
|
28
1
以防你需要在 单行命令 使用bash脚本,如下所示:
在中创建bash脚本文件
|
|
|
29
1
这对我有用。上面的答案在终端上显示了这一点,没有发生其他事情
|
|
|
30
0
在最新的git中,只需4个操作即可删除git子模块。
|
|
Harry · 如何在编译时获取克隆的git仓库的标签 1 年前 |
|
Ooker · 如何从blob中删除秘密? 1 年前 |
|
|
hasdrubal · git日志图智能分支过滤器 1 年前 |
|
|
J. Doe · 为什么git中没有跟踪git文件? 1 年前 |