3

私はGitが初めてであることに注意してください。

私は2つのレポを持っています:

  1. libgdx レポ
  2. gdx-sqlite REPO

メイン リポジトリは Libgdx REPO であり、私の作業はすべてこのリポジトリに入ります。主にgdx-sqlite プロジェクトです。gdx-sqlite プロジェクトを別のリポジトリとして表示したかったので、次のようにしました。

  1. GitHub に新しいリポジトリを作成しました (gdx-sqlite REPO)
  2. マシンにローカル リポジトリ (ローカル libgdx リポジトリ内にネスト) を作成しました
  3. ローカルのネストされたリポジトリのすべてのコードをリモートの gdx-sqlite REPO にプッシュしました

これにより、すべてがうまくいかなくなり、ネストされたリポジトリが主な原因であると想定しました。その後、ローカルのネストされたリポジトリを削除し、以前のコミットに戻しました。この種の問題の解決策は Git Submodules であることがわかりましたが、次のように達成しようとしていることに完全に迷っています。

次の点に照らして、これをどのように達成する必要がありますか。

  1. https://github.com/mrafayaleem/libgdx/tree/master/extensions/gdx-sqlite 」にあるプロジェクトに加えた変更を常に反映する「gdx-sqlite REPO」に新しいリポジトリを作成したい"
  2. "gdx-sqlite REPO"にプル リクエストを送信する人は誰でも、すべての依存関係 (つまり、完全な libgdx REPO) をプルして、その拡張機能にすぐに取り組むことができるはずです。

どうすればこれを可能にすることができますか?

4

3 に答える 3

6

あなたが正しい。この種の状況に対する適切なアプローチは、Git サブモジュールを使用することです。これは、Git で依存関係を処理する最良の方法です。

gdx -sqliteはメイン プロジェクトLibgdxの拡張であるため、次の方法でサブモジュールとして追加できます。

git clone git@github.com:mrafayaleem/libgdx.git libgdx
cd libgdx
# remove the old directory
rm -rf extensions/gdx-sqlite
git add extensions/gdx-sqlite
# add the submodule (note the read-only URL)
git submodule add git://github.com:mrafayaleem/gdx-sqlite.git extensions/gdx-sqlite
# commit the changes
git commit -m 'Add submodule for the gdx-sqlite extension'

次に、プロジェクト (およびそのすべてのサブモジュール) を複製します。

git clone --recursive git://github.com/mrafayaleem/libgdx.git

またはあなたの場合(書き込みアクセスあり):

git clone --recursive git@github.com:mrafayaleem/libgdx.git
于 2013-05-13T08:38:37.317 に答える
0

これは私のために働いた:

git ls-files --stage | grep $160000

この素晴らしい記事に基づいています: http://www.speirs.org/blog/2009/5/11/understanding-git-submodules.html

于 2015-03-29T03:05:46.883 に答える