[解決済み】外部レポのサブモジュールを使用するためにgitプロジェクトをセットアップする方法は?
質問
リモートのレポをプルインするレポを作りたいのですが、どうすればいいですか?
例えば、サブモジュールとしてjQueryがあるとします。
git://github.com/jquery/jquery.git
jQueryをサブモジュールとしたレポを作成し、リモートレポとして自分の外部を追加する場合、どのような流れになるのでしょうか。
また、一度設定した後、自分のリモートにpush/pullした場合、外部はそのまま残るのでしょうか?
解決方法は?
- プロジェクトがあり、その名前は MyWebApp すでにgithubのレポがある
- を使用したい場合 jquery リポジトリ プロジェクトで
- プロジェクトに jquery repo を サブモジュール .
サブモジュールの参照と使用はとてもとても簡単です。すでにMyWebAppがレポとして設定されていると仮定して、ターミナルから以下のコマンドを実行してください。
cd MyWebApp
git submodule add git://github.com/jquery/jquery.git externals/jquery
という名前のディレクトリが作成されます。
externals/jquery
* そして、github の jquery リポジトリにリンクします。あとはサブモジュールをinitして、そこにコードをクローンするだけです。
git submodule update --init --recursive
これで、最新のコードをすべてサブモジュールにクローンできたはずです。jquery のリポジトリが変更され、最新のコードを取り込みたくなったら
submodule update
コマンドを再度実行します。注意: 私は通常、プロジェクト内にいくつもの外部リポジトリを持つので、常に "externals" ディレクトリの下にリポジトリをグループ化しています。
オンライン
プロGitブック
サブモジュール(とgit全般)についての良い情報が、読みやすくまとめられています。あるいは
git help submodule
も良い情報を与えてくれるでしょう。あるいは
Git サブモジュール・チュートリアル
をgit wikiでご覧ください。
サブモジュールについて、Subversion の svn:externals メカニズムと比較しているこのブログエントリに気づきました。 http://speirs.org/blog/2009/5/11/understanding-git-submodules.html
<サブ * ベストプラクティスとして、サブモジュールは常にExternalsのような独自のディレクトリに配置する必要があります。そうしないと、プロジェクトのルートディレクトリが非常に早く散らかってしまいます。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み】"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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】fatal: 有効なオブジェクト名ではない: 'master'
-
[解決済み】Gitマージで「すでに最新」と報告されるが、違いはある
-
[解決済み】gitが「変更をコミットするか、マージする前にstashしてください」と言うのを解決するには?
-
[解決済み】ローカルに変更があるにもかかわらず、git pushが「すべて最新」と言う
-
[解決済み】Git Push Error: リポジトリデータベースにオブジェクトを追加する権限が不足しています。
-
[解決済み] Git - node_modules フォルダをどこでも無視するようにしました。
-
[解決済み] SourceTree error:1407742E:SSLルーチン:SSL23_GET_SERVER_HELLO:tlsv1警告プロトコルバージョン
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] git rebase: "error: cannot stat 'file': パーミッションが拒否されました"
-
[解決済み] GitHubです。パーミッションが拒否されました (公開鍵)。