将子模块添加到现有子模块中的存储库

问题描述 投票:0回答:1

我希望将我的配置保存在 git 存储库中,以便轻松地将我的配置文件部署到不同的计算机上。

我希望保存的配置文件之一是 zsh。我使用 oh-my-zsh,它位于我的主目录中的

~/.oh-my-zsh
中。该目录是一个 git 存储库。 oh-my-zsh 使用 git 来更新自身。我将它添加为 git 子模块,这很好。

内部

~/.oh-my-zsh/custom/plugins/
~/.oh-my-zsh/custom/themes/
是事后安装的自定义插件和主题。这些目录位于 oh-my-zsh gitignore 文件中。我添加的插件和主题也是 git 存储库。

我在

~/repositories/dotfiles/
中使用 git 裸存储库,并使用一个别名将 git 的工作目录设置为主目录,这样我就可以将我想要的所有文件添加到配置中。

alias config="git --work-tree=$HOME --git-dir=$HOME/repositories/dotfiles/'

现在的问题是我无法将

~/.oh-my-zsh/custom/
中的 git 存储库作为子模块添加到工作目录设置为
~
的 git 存储库,因为

~/.oh-my-zsh/custom/themes/powerlevel10k$ config submodule add $HOME/.oh-my-zsh/custom/themes/powerlevel10k
The following path is ignored by one of your .gitignore files:
.oh-my-zsh/custom/themes/powerlevel10k
Use -f if you really want to add it.                                                                                                                                  

/.oh-my-zsh/custom/themes/powerlevel10k$ config submodule add -f $HOME/.oh-my-zsh/custom/themes/powerlevel10k
Adding existing repo at '.oh-my-zsh/custom/themes/powerlevel10k' to the index
fatal: Pathspec '.oh-my-zsh/custom/themes/powerlevel10k' is in submodule '.oh-my-zsh'
Failed to add submodule '.oh-my-zsh/custom/themes/powerlevel10k'

如果我在〜中尝试相同的命令,那么它会将“克隆存储库”到

~/powerlevel10k
,然后将其添加为子模块。

可以做什么?我正在考虑移动目录,然后将它们作为子模块添加到这些新目录中,然后在 oh-my-zsh 中创建符号链接。但我希望能够通过简单的 git 克隆来完成一些事情,而不需要额外的设置来使其工作。

git git-submodules
1个回答
0
投票

我在 oh-my-zsh 自定义插件中遇到了同样的问题。我在 oh-my-zsh 的 wiki 中找到了答案。

在您的

.zshrc
中,您可以使用环境变量指定自定义目录:
ZSH_CUSTOM=$HOME/my_customizations

© www.soinside.com 2019 - 2024. All rights reserved.