[解決済み] .gitmodulesからgitサブモジュールを復元する
2023-05-13 14:28:26
質問
gitレポのフォルダがあります。それはいくつかのファイルと.gitmodulesファイルを含んでいます。今、私がするとき
git init
と書いてから
git submodule init
を実行しても、後者のコマンドの出力は何もありません。どうすれば、.gitmodulesファイルで定義されたサブモジュールを、コマンドを実行せずにgitに表示させることができるのでしょうか?
git submodule add
を再び手で実行することなく、.gitmodulesファイルで定義されたサブモジュールを見ることができるようにするにはどうしたらよいでしょうか?
更新しました。 これは私の.gitmodulesファイルです。
[submodule "vim-pathogen"]
path = vim-pathogen
url = git://github.com/tpope/vim-pathogen.git
[submodule "bundle/python-mode"]
path = bundle/python-mode
url = git://github.com/klen/python-mode.git
[submodule "bundle/vim-fugitive"]
path = bundle/vim-fugitive
url = git://github.com/tpope/vim-fugitive.git
[submodule "bundle/ctrlp.vim"]
path = bundle/ctrlp.vim
url = git://github.com/kien/ctrlp.vim.git
[submodule "bundle/vim-tomorrow-theme"]
path = bundle/vim-tomorrow-theme
url = git://github.com/chriskempson/vim-tomorrow-theme.git
そして、このディレクトリのリストです。
drwxr-xr-x 4 evgeniuz 100 4096 июня 29 12:06 .
drwx------ 60 evgeniuz 100 4096 июня 29 11:43 ..
drwxr-xr-x 2 evgeniuz 100 4096 июня 29 10:03 autoload
drwxr-xr-x 7 evgeniuz 100 4096 июня 29 12:13 .git
-rw-r--r-- 1 evgeniuz 100 542 июня 29 11:45 .gitmodules
-rw-r--r-- 1 evgeniuz 100 243 июня 29 11:18 .vimrc
ということで、間違いなくトップレベルにあります。gitディレクトリは変更されず、単に
git init
が行われるだけです。
どのように解決するのですか?
git submodule init
は、すでにインデックスにある (つまり "staged") サブモジュールだけを初期化のために考慮します。 を解析する短いスクリプトを書きます。
.gitmodules
を解析し、それぞれの
url
と
path
のペアが実行されます。
git submodule add <url> <path>
例えば、以下のようなスクリプトを使用することができます。
#!/bin/sh
set -e
git config -f .gitmodules --get-regexp '^submodule\..*\.path$' |
while read path_key path
do
url_key=$(echo $path_key | sed 's/\.path/.url/')
url=$(git config -f .gitmodules --get "$url_key")
git submodule add $url $path
done
これは
git-submodule.sh
スクリプト
を解析し
.gitmodules
ファイルを解析します。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] サブモジュールを含む "git clone "の方法は?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
undefinedGit Git がファイルをコードクラウドにプッシュする際に報告されるエラーを解決します: ! [拒否] master -> master (最初にフェッチ)
-
解决[email protected]。パーミッションが拒否されました (publickey)。リモートリポジトリから読み取れませんでした
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
git のコンパイルとインストールの問題を解決する fatal: https のリモートヘルパーが見つからない
-
[解決済み] Gitの本番環境へのプッシュ(FTP)
-
[解決済み] ローカルのGitブランチをリモートレポにコピーする方法
-
[解決済み] GitHub: フォークを "自分のプロジェクト "にする
-
[解決済み] CVS から Git への移行: $Id$ 相当?
-
[解決済み] GitHubのウェブサイト上でディレクトリやフォルダの名前を変更するには?
-
[解決済み] gitで、stashを適用せずに、追跡されていないstashedファイルを表示する方法はありますか?