9

私のプロジェクト、特にShareKitにgitサブモジュールを追加しようとしています。私のプロジェクトは git リポジトリで、入力しようとすると

git submodule add git://github.com/ShareKit/ShareKit.git Submodules/ShareKit

ターミナルにサブモジュールが既に存在するというエラーが表示されました。少し前にこのプロジェクトに追加したのですが、最終的に使用せず、プロジェクトディレクトリから不適切に削除したと思います(サブモジュールフォルダーを削除するだけです)。だから私はしようとする

git rm --cached Submodules/ShareKit

サブモジュールを削除するにはどうすればよいですか?に従って 、そして今、最初のコードでサブモジュールを再度追加しようとすると、次のようになります。

A git directory for 'Submodules/ShareKit' is found locally with remote(s):
origin  git://github.com/ShareKit/ShareKit.git
If you want to reuse this local git directory instead of cloning again from
git://github.com/ShareKit/ShareKit.git
use the '--force' option. If the local git directory is not the correct repo
or you are unsure what this means choose another name with the '--name' option.

そして、私は何をすべきか本当にわかりません。私はgitにかなり慣れていないので、プロジェクトでこれを取得する必要があります.gitに関連するすべてのものをプロジェクトから一掃し、最初からやり直す方法はありますか? 私は新しいプロジェクトでそれを行うだけですが、これ以外はすでにほぼ完成しており、ゼロから始めてすべてをコピーするには非常に時間がかかります. 適切にインストールされたテスト アプリで ShareKit を使用していますが、すべての ShareKit ファイルをそのフォルダーから必要なフォルダーにコピーできない理由はありますか?

編集:私は試しました

git submodule deinit Submodules/ShareKit

これは私にこのエラーを与えます:

error: pathspec 'Submodules/ShareKit' did not match any file(s) known to git.
Did you forget to 'git add'?

サブモジュールが同時に存在することと存在しないことの両方を主張している、ある種の奇妙な状態で立ち往生しているようです。明確にするために、サブモジュールをXcodeプロジェクトに追加するためにターミナルでこれを行っています。

4

2 に答える 2

15

以下を試して、git にサブモジュールを強制的に再追加させます。

git submodule add --force git://github.com/ShareKit/ShareKit.git Submodules/ShareKit

追加後の --force に注意してください。

バージョン処理を完全に削除したい場合は、単に .git と .gitmodules を削除してください。

于 2013-11-11T21:52:50.693 に答える
5

iveqyのコメントは私にとってはうまくいき、より目立つように回答として投稿しました。

次のフォルダーを削除するだけです (サブモジュールのパスで調整してください)。

.git/modules/Submodules/ShareKit

rm path -rfUnixで削除するか、安全のために移動すること/tmpができます(次の起動時に消去されるはずですが、間違ったフォルダーを削除した場合は気が変わる時間が与えられます):

mv .git/modules/Submodules/ShareKit /tmp/ShareKit-deleted
于 2015-03-11T17:29:08.733 に答える