[解決済み】Gitサブモジュールの追加:「gitディレクトリがローカルに見つかりました」問題
質問
実は、gitの使い方を学ぼうとしているのですが、その中には
git submodule
サブコマンドを使用します。
SSH を使用して git リポジトリをホストし、プッシュおよびプルできるサーバを既にセットアップしています。
このサーバー上にメインのgitリポジトリ "Travail" を作成し、そこに私のプロジェクトをすべてサブモジュールとして置きたいと考えています。
Travailのリポジトリに、私のプロジェクトをサブモジュールとして追加しました。
tools/libft
:
このサブモジュールを開発し、プッシュしたりプルしたりすることができるようになりました。
しかし、別のサブモジュール(サーバー上のfdf.gitからfdfという名前)を追加しようとすると、次の問題が発生します。
git submodule add ssh://XXX.XXX.XXX.XXX:XXXXX/opt/git/fdf.git projets/fdf
projets/fdf'のgitディレクトリがローカルにリモートで見つかりました(複数可)。 origin ssh://[email protected]:XXXXX/opt/git/fdf.git このローカルのgitディレクトリを再利用したい場合は、以下の場所から再度クローンするのではなく ssh://XXX.XXX.XXX.XXX:XXXXX/opt/git/fdf.git は、'-force' オプションを使用します。ローカルの git ディレクトリが正しいレポでない場合 とか、「--name」オプションで別の名前を選択します。
には、実はサブディレクトリはありません。
projets/
他のスレッドで読んだのですが、私は
git submodule sync
を編集するか、サブモジュールのオリジンリポジトリへの URL が変更された .gitmodules ファイルを編集してください。
しかし、私の .gitmodules ファイルには、私の最初のサブモジュール (tools/libft) についての情報しか含まれておらず、projets/fdf については含まれていないのです :
[submodule "tools/libft"]
path = tools/libft
url = ssh://[email protected]:XXXXX/opt/git/libft.git
私はフランス語の学生なので、私が持っている英語のドキュメントで何かを見逃しているかもしれませんが、私は検索し、私はこの問題が発生する理由を本当に理解していない。
解決策があれば嬉しいのですが、説明だけでもあれば助かります。
どのように解決するのですか?
最近削除したサブモジュールと同じパスのサブモジュールを追加しようとして、このSO投稿にたどり着きました。
最終的にうまくいったのはこれです( この記事はとても役に立ちました ):
まだ実行されていない場合は
git rm --cached path_to_submodule
(末尾にスラッシュを付けない)と同様に
rm -rf path_to_submodule
では
-
から該当する行を削除します。
.gitmodules
ファイルを削除してください。
[submodule "path_to_submodule"]
path = path_to_submodule
url = https://github.com/path_to_submodule
- .git/configから該当箇所を削除します。例:これらを削除します。
[submodule "path_to_submodule"]
url = https://github.com/path_to_submodule
-
rm -rf .git/modules/path_to_submodule
では、最後に。
git submodule add https://github.com/path_to_submodule
関連
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] git add -A」と「git add .」の違い。
-
[解決済み] Git のローカルコミットを破棄する
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み] Gitのプッシュを正しく強制する方法は?
-
[解決済み] 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マージで「すでに最新」と報告されるが、違いはある
-
[解決済み】git rev-parseは何をするのですか?
-
[解決済み】git-mergeの-dry-runオプションはありますか?
-
[解決済み] このリポジトリで別の git プロセスが実行されているようです。
-
[解決済み] 複数のコミットをチェリーピックする方法
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
[解決済み] ブラウンアウトの一環として、パスワード認証が一時的に無効になっています。代わりに個人用アクセストークンを使用してください[重複]。
-
[解決済み] git update-index --assume-unchanged <file> を元に戻す。
-
[解決済み] Gitのプッシュエラーです。Unable to unlink old (Permission denied)です。