問題タブ [git-submodules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
634 参照

git - サブモジュールとブランチの中間?

Git で管理されている、プロジェクトの未完成の機能のトピック ブランチを作成する作業に取り掛かりました。それらはすべて、1 つのトピック ブランチが別のトピック ブランチに直接関係しないように、非常に自己完結型です。ただし、すべてのブランチにはシステムのコアであるマスター ブランチという共通点があり、トピック ブランチはマスター ブランチの機能を拡張するだけです。

私が正しく理解していれば、マスター ブランチでトピック ブランチに影響を与える何かを行った場合 (たとえば、コアと個々の機能の間の通信に使用される API を変更するなど)、その変更はトピック ブランチに反映されません。自動的に、ブランチがそれに応じて修正されるようにします。変更は手動でマージするか、他のブランチにチェリー ピックする必要があります。

サブモジュールを使用するとこれが達成されることを理解しています。ただし、サブモジュールを使用すると、主に機能が自立していないため、メイン プロジェクトと機能プロジェクトになる可能性があるプロジェクトとの間の分離が大きくなりすぎます。彼らはコアに依存しています。

したがって、私が探しているのは、特定のファイル/ディレクトリが特定のブランチに固有のものであり、それ以外はすべてメインブランチからのものであると言う何らかの方法です。Photoshop の用語で言えば、マスターを背景レイヤーにして、各トピック ブランチをその上に部分的に透明なイメージ レイヤーにし、独自のコンテンツを配置します。

0 投票する
3 に答える
3214 参照

git - サブモジュールを含む Rails アプリケーションのデプロイをどのように処理しますか?

最近、いくつかのプラグインをサブモジュールに変えましたが、リポジトリを "git clone" すると、サブモジュール ディレクトリが空になることに気付きました。これは、共同開発者がサブモジュールを初期化して更新することを意味します。

ただし、capistrano を使用してデプロイすると、サブモジュール コードが明らかにデプロイされず、問題が発生します。リリース ブランチに移動し、そこでモジュールを初期化して更新することもできますが、それは明らかに理想的なソリューションではありません。

これを処理する方法について誰か提案がありますか? カピストラーノのタスクと同じくらい簡単ですか?

私は物事の生産面では少し初心者です。

ありがとうございました!

0 投票する
1 に答える
1756 参照

linux - git サブモジュール: ln -s

生き残るディレクトリリンクを作成するにはどうすればよいgit submodule updateですか?

次のディレクトリ構造の例を考えます。

次のコマンドのようなものを使用して、からproj/lib/へのソフト リンクを作成しました。proj/lib3/submod/lib

次のディレクトリ構造を作成します。

ただし、実行git submodule updateするとリンクが破棄されます。私は、ソフト リンクは相対パスへの論理リンクであるという印象を受けていたので、オブジェクトを削除して再度追加すると、リンクはそのまま維持されます。どうすれば目的の効果を達成できますか?

0 投票する
2 に答える
674 参照

git - git サブモジュール: カスタマイズ

git サブモジュールを使用する場合、カスタマイズを行うための推奨される方法は何ですか? するべきか...

  • プロジェクトをフォークし、フォークを追跡する
  • デフォルトの動作をオーバーライドしようとする
  • ローカルで変更を加える

これらのどれも意味をなさない場合、何が意味するのでしょうか?

0 投票する
1 に答える
6038 参照

git - Hgリポジトリからのgitサブモジュール?

ライブラリとしてリンクするのではなく、別のプロジェクトのソースを直接含む非常に古いプロジェクトがあります。悪い時代に、私がすべてをCVSに保持していたとき、私はベンダーのブランチに外部コードを持っていて、定期的にインポートを行いました。私のプロジェクトがgitになっているので、外部プロジェクトをサブモジュールとして含める方が理にかなっています。しかし、問題があります。外部プロジェクトがMercurialに移行しました。git-hgプロジェクトとhg-gitプロジェクトを見つけましたが、どちらかがサブモジュールを適切に処理するかどうかはわかりません。

gitリポジトリの代わりにHgリポジトリを指すgitサブモジュールを作成する方法はありますか?

0 投票する
3 に答える
31518 参照

git - Gitサブモジュール内のファイルを追跡できません

問題: -filesにもファイルもないときに./shells/smallApps/*Gitにファイルを追加する。./.git/./.git/info/exclude.gitignore

この質問は、問題が完全には解決されていないこのトレッドに基づいています。

走る

Gitに「shells/smallApps/*」というファイルがないことに注意してください

実行してGitに追加したい

何らかの理由でファイルがGitに追加されないことに注意してください。

.git / info/excludeにも.gitignore-filesにもファイルがありません。

最後の警告はどういう意味ですか?

0 投票する
3 に答える
11239 参照

git - サブフォルダーへの Git サブモジュール

svn では、リポジトリを別の svn リポジトリ内の任意のフォルダーにリンクできます。gitに同様の機能があるかどうか疑問に思っていますか? 基本的に、リポジトリ内に git サブモジュールが必要ですが、サブモジュールを、リポジトリ全体ではなく、別の git リポジトリのサブフォルダーへのポインターにしたいと考えています。これは可能ですか?

0 投票する
1 に答える
3175 参照

git - サブモジュールによる Git での外部コードの依存関係を表示するには

解決済みの問題:サブモジュールによる外部コードの依存関係を表示するには: VonCに感謝します!

現在の問題: 2 つのフォルダーに重複するコンテンツのないサブモジュールを作成する

現在の問題に対する一時的な解決策:サブモジュールとしてのフォルダーの名前は bin であるため、フォルダーの名前を bin-github に変更します。これは、ホームでコンテンツを複製する必要があることを意味します。

私の HOME フォルダーは ~/bin に依存しています。リポジトリMasiの HOME にあるファイルと、Githubのリポジトリbinの ~/bin にあるファイルがあります。ホームでの関連するフォルダー構造:

~/bin をMasiの Git のサブモジュールにする方法を教えてください。

~/bin を ~/ の Git のサブモジュールにするにはどうすればよいですか?


#3 VonC のコメントへの返信:

私の .gitmodules

.gitmodules にあるので、サブモジュールを再度追加する必要はないと感じています。

走る


#2 VonCの回答への返信:

自宅に重複コピーがないように、.gitmodules を次のように変更しました。

上記と同様に submodule-bin -folder をプルできないため、これは別の状況のようです。

新しくクローンされた git-repo で次のようになりました

.gitmodules に外部リポジトリがあります。なぜ私に求めているのgit addですか?


VonCの答えに返信してください:

走る

既存のフォルダーと同じ名前の新しいリポジトリを追加できないためですbin

私の .gitmodules は

走る

私は空の bin ディレクトリを取得します。

ビンの内容を取得するにはどうすればよいですか?

0 投票する
1 に答える
11582 参照

git - `git submodule foreachgitpull`を実行できません

この質問はこのスレッドに基づいています。

私の.gitmodulesは私の家にあります

私の家のフォルダ構造:

走る

走る

私は得る

バグを修正するための私の最初の仮定は、に変更path = binすることでしたpath = /Users/Masi/bin。ただし、これで問題が解決するわけではありません。

Gitのサブモジュールである外部リポジトリからコンテンツをアップロードするにはどうすればよいですか?

0 投票する
1 に答える
2136 参照

git - マージ時のgit segfaults - サブモジュールの競合

「git merge」コマンドを使用して 2 つのブランチのコードを結合しようとしていますが、処理中に git がクラッシュします。これらのブランチをマージする別の方法を見つける必要があります。

マージ出力をデバッグ レベルまで上げるには、次のコマンドを実行しました。

私は現在宛先ブランチにいます。git-status は、すべてがクリーンで明確に表示されます。ブランチをマージすると、これが表示されます (チェックイン コメントを %%%%%% に、ファイル名を ####### に置き換えました。これは、ビジネス上重要な場合があるためです)。

この時点で、git-merge がクラッシュしたことが判明しました。どうすればこれを知ることができますか? - Cygwin で git を実行する場合:

  • Linux で git を実行する場合、「ulimit -c unlimited」を使用:
  • どちらの場合も、 .git/index.lock が残り、git コマンドが再び機能する前に手動で削除する必要があります。

    $ git status fatal: '.git/index.lock' を作成できません: ファイルが存在します

コミット ID を gitk ツリーの ID と比較して、上記のマージを手動で行いました。git が共通の祖先を探し、マージを分割して各祖先を再帰的に処理していることは明らかです。しかし、問題の原因は、コミット e0a5fa1 と ce62bf1 の間で「build」と呼ばれるサブモジュールへの「git-link」が変更されたことだと思います。

  • e0a5fa1 では、サブモジュールのビルドは 8dc84b6 になる予定です
  • ce62bf1 では、サブモジュールのビルドは b3efae4 になる予定です

したがって、明らかに競合があります。しかし、それは「部分的な」マージ中またはそれが呼ばれるものであり、最終的なものではありません。そして、gitはこれをうまく処理していないようです。

バグの可能性があります。バグ レポートを送信するにはどうすればよいですか?

しかし、ここで私が本当に心配しているのは、これら 2 つのブランチをマージできないという事実です。「マージ」コマンドを使用せずにこれらのブランチをまとめる別の方法を知っている人はいますか? マージプロセス全体でこのサブモジュールを完全に無視するように「git-merge」を取得できますか?

Linux git バージョン 1.6.0.4

Cygwin git バージョン 1.6.1.2