[解決済み】サブモジュールを削除する方法は?
質問
Git サブモジュールを削除するには?
ちなみに、単純に
git submodule rm whatever
?
解決方法は?
<ブロッククオート
サブモジュールへの興味を"で表明した後、"このサブモジュールにはもう興味がありません"と言えるポーセリン方法がありませんでした。
git submodule init
"です。
"
git submodule deinit
"がその方法です。
また、削除処理では
git rm
(2013年10月 git1.8.5 以降).
概要
そうすると、3ステップの削除作業が発生します。
0. mv a/submodule a/submodule_tmp
1. git submodule deinit -f -- a/submodule
2. rm -rf .git/modules/a/submodule
3. git rm -f a/submodule
# Note: a/submodule (no trailing slash)
# or, if you want to leave it in your working tree and have done step 0
3. git rm --cached a/submodule
3bis mv a/submodule_tmp a/submodule
説明
rm -rf
: に記載されています。
ダニエル・シュローダー
's
回答
で要約されています。
エオニール
で
コメント
:
これは
.git/modules/<path-to-submodule>/
は変更しない。
そのため、この方法で一度サブモジュールを削除し、再度追加しても、すでにリポジトリが破損しているため、追加することはできません。
git rm
: 参照
コミット 95c16418
:
<ブロッククオート現在、"を使用中です。
git rm
サブモジュールの " は、そのサブモジュールの作業ツリーをスーパープロジェクトの作業ツリーから削除し、インデックスから gitlink を削除します。
しかし、サブモジュールのセクションの.gitmodules
がそのままになっているのは、今は削除されたサブモジュールの名残で、ユーザーをイラつかせる可能性があります (これに対して.git/config
これは、ユーザーがこのサブモジュールに興味を示したことを思い出させるために残しておく必要があり、後で古いコミットがチェックアウトされたときに再投入されます)。
を " とします。
git rm
"は、作業ツリーからサブモジュールを削除するだけでなく、 ".を削除することによってユーザーを支援します。
submodule.<submodule name>
"セクションから
.gitmodules
ファイルを作成し、両方をステージングします。
git submodule deinit
: に由来するものです。
本パッチ
:
<ブロッククオートWith "です。
git submodule init
を次に呼び出したときに、そのサブモジュールの情報を取得するように指示することができます。git submodule update
"です。
しかし現状では、サブモジュールにはもう興味がないのでローカルの作業ツリーを削除したいとgitに伝える簡単な方法はありません(ユーザーがサブモジュール内部についてよく知っていて、"を削除する場合は別ですが)。submodule.$name.url
からの設定.git/config
を、ワークツリー自身と一緒に)。
そのようなユーザーを支援するために、'
deinit
' コマンドを使用します。
これは
を削除します。
submodule.<name>
セクションから
.git/config
指定された
サブモジュール
(の場合、初期化されたものすべてに対して)。
.
'が指定された場合)。
現在の作業ツリーに変更があった場合、強制的に変更されない限り失敗する。
コマンドラインで指定されたサブモジュールについて、url 設定が
.git/config
しかし、それにもかかわらず、失敗することはありません。
これは、(de)初期化ステップ(
.git/config
と
.git/modules/xxx
)
git1.8.5以降では
git rm
を取る
また
をケアする。
-
'
add
' ステップで、サブモジュールの url を.gitmodules
ファイルを削除する必要があります。 -
サブモジュールの
特別項目
(例として
この質問
): git rm はインデックスからそれを削除します。
git rm --cached path_to_submodule
(末尾のスラッシュはなし)
これにより、特殊なモード "160000" でインデックスに格納されているそのディレクトリが削除され、サブモジュールのルートディレクトリとしてマークされます。
もし、最後のステップを忘れて、サブモジュールだったものを普通のディレクトリとして追加しようとすると、次のようなエラーメッセージが表示されるでしょう。
git add mysubmodule/file.txt
Path 'mysubmodule/file.txt' is in submodule 'mysubmodule'
注:Git 2.17(2018年第2四半期)以降、gitサブモジュールdeinitはシェルスクリプトではなくなりました。
C言語の関数の呼び出しです。
参照
コミット 2e61273
,
コミット 1342476
(2018年1月14日)による
プラタメッシュ・チャバン(
pratham-pc
)
.
(によって統合されました。
ジュニオ・C・ハマノ--。
gitster
--
で
コミットead8dbe
, 2018年2月13日)
git ${wt_prefix:+-C "$wt_prefix"} submodule--helper deinit \
${GIT_QUIET:+--quiet} \
${prefix:+--prefix "$prefix"} \
${force:+--force} \
${deinit_all:+--all} "$@"
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] サブモジュールを含む "git clone "の方法は?
-
[解決済み] すべてのgitサブモジュールの最新版を簡単にプルする方法
-
[解決済み】"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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】git revert <hash> not allowed due to a merge but no -m option was given.
-
git push reports an error ! [リモート拒否] master -> master (受信前のフックが拒否されました)
-
[解決済み] git stashを元に戻す
-
[解決済み] ブラウンアウトの一環として、パスワード認証が一時的に無効になっています。代わりに個人用アクセストークンを使用してください[重複]。
-
[解決済み] サブモジュールでないパスに対するサブモジュールのマッピングが .gitmodule に見つからない
-
[解決済み] Windowsで "rm -rf "に相当するものはありますか?
-
[解決済み] Gitサブモジュールを追加する際に、ブランチ/タグを指定するにはどうすればよいですか?
-
[解決済み] Git リポジトリ内で既存の Git サブモジュールを移動するにはどうすればよいですか?
-
[解決済み】gitリポジトリのサイズを小さくする
-
[解決済み] git サブモジュールの名前を変更する