1. ホーム
  2. ギット

githubプロジェクトからのサブモジュールのクローン時に発生する問題

2022-03-17 05:47:46

GitHubはそんなオープンソースの宝庫で、コードの勉強になるだけでなく ギット Gitの使い方

最近、Off-the-Record-iOSプロジェクトに取り組んでいます( https://github.com/chrisballinger/Off-the-Record-iOS )を実践することを学びました。 ギット サブモジュール の使用方法

このプロジェクトにはSubmodulesフォルダがあり、そこにはプロジェクトが参照する他のGitHubオープンソースプロジェクトが入っています、最初は気づかず、ZIPを直接ダウンロードしてXCodeプロジェクトに赤いファイル名がたくさん並んでいました、それから依存関係が多いことに気づき、よく見るとかなりの数があるので、一つ一つ手動でダウンロードするのはあきらめることにしました.

少し検索したところ、プロジェクトの issue #87 に同様の質問がありました。 https://github.com/chrisballinger/Off-the-Record-iOS/issues/87 の場合、以下の回答に従い、再 ギット  プロジェクトをクローンし、gitを使用します。  サブモジュール  init && git  サブモジュール  を更新し (代わりに git clone -recursive を使うこともできます)、プロジェクト内の依存するサブモジュールを更新すると、最初の数回の変更の後で新しいエラーが表示されます。

サブモジュールのパス 'Submodules/DAKeyboardControl': チェックアウト済み ' 5352d1ff2d1131d974d94406ed8fcf8eb068aa72′ ------------------------------------------------------------------------------------------------------------------------------- 5352d1ff2d1131d974d94406ed8fcf8eb068aa72



Submodules/LibOrange」にクローンを作成する...



アクセス許可  拒否  (publickey)です。



fatal: リモートリポジトリから読み取れませんでした。

正しいアクセス権を持っていることを確認してください



というメッセージが表示され、リポジトリが存在することが確認できます。



git@」のクローン ギズーブ .com:ChatSecure/LibOrange.git' をサブモジュールパス 'Submodules/LibOrange' に入れることに失敗しました。

この issue #105 にも記載があります。 https://github.com/chrisballinger/Off-the-Record-iOS/issues/105 で、作者の回答によると、該当するアイテムのgit urlを更新してhttps方式に置き換える必要があるそうです

そこで、プロジェクトのルートに行き、vi .gitmodules を編集し、質問を促すモジュール LibOrange を見つけて、url = git@ を変更します。 ギズブ .com:ChatSecure/LibOrange.git から url = https://github.com/ChatSecure/LibOrange.git、:wq で保存して終了してください。

モジュールの url を変更したり直接更新しなかったり、何度か試した結果、サブモジュールの url を再同期して git submodule sync を実行し、url を更新してからもう一度 git submodule update -init を実行すると、再びプロンプトが表示されることがわかりました。

fatal: 1つのリビジョンが必要



サブモジュールのパス 'Submodules/LibOrange' に現在のリビジョンが見つかりません。

この問題については、こちらを参照してください。 http://blog.csdn.net/frank2336/article/details/7414545 解決策としては、rm -rf LibOrangeで既存のフォルダを削除してください。

削除後、プロジェクトルートに戻り、git submodule update -initを再度実行すれば、問題はなくなります。

リモート オブジェクトを数えています。1052、完了しました。



リモートの オブジェクトを圧縮しています。100% (547/547), 完了しました。



リモートで 合計1052(デルタ439)、再利用1050(デルタ438)



オブジェクトを受信する。100% (1052/1052), 3.96 MiB | 46 KiB/s, 完了しました。



デルタを解決する。100%(439/439)、完了しました。



https://github.com/ChatSecure/LibOrange より



* ブランチ HEAD -> FETCH_HEAD



サブモジュールパス 'Submodules/LibOrange': チェックアウト済み 'd7ae559dfebe2eb6cc3996735fa6081e1aaa02fa '

この記事には、とてもよくまとまっています