問題タブ [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.
git - あるリポジトリから別のリポジトリにgitパッチを適用するにはどうすればよいですか?
2つのリポジトリがあります。1つはライブラリのメインリポジトリで、もう1つはそのライブラリを使用するプロジェクトです。
subservientプロジェクトで修正を加えた場合、そのパッチをアップストリームに適用する簡単な方法が必要です。
ファイルの場所はリポジトリごとに異なります。
- メインレポ:
www.playdar.org/static/playdar.js
- 計画:
playlick.com/lib/playdar.js
git format-patch -- lib/playdar.js
playlickプロジェクトで使用してgit am
から、メインのplaydarリポジトリで使用してみましたが、パッチファイル内のファイルの場所が異なるとエラーが発生しました。
特定のファイルの特定のコミットから別の任意のファイルにパッチを適用する簡単な方法はありますか?
ボーナスポイントについては、パッチを適用するファイルがgitリポジトリにない場合はどうなりますか?
git - サブモジュールとブランチの中間?
Git で管理されている、プロジェクトの未完成の機能のトピック ブランチを作成する作業に取り掛かりました。それらはすべて、1 つのトピック ブランチが別のトピック ブランチに直接関係しないように、非常に自己完結型です。ただし、すべてのブランチにはシステムのコアであるマスター ブランチという共通点があり、トピック ブランチはマスター ブランチの機能を拡張するだけです。
私が正しく理解していれば、マスター ブランチでトピック ブランチに影響を与える何かを行った場合 (たとえば、コアと個々の機能の間の通信に使用される API を変更するなど)、その変更はトピック ブランチに反映されません。自動的に、ブランチがそれに応じて修正されるようにします。変更は手動でマージするか、他のブランチにチェリー ピックする必要があります。
サブモジュールを使用するとこれが達成されることを理解しています。ただし、サブモジュールを使用すると、主に機能が自立していないため、メイン プロジェクトと機能プロジェクトになる可能性があるプロジェクトとの間の分離が大きくなりすぎます。彼らはコアに依存しています。
したがって、私が探しているのは、特定のファイル/ディレクトリが特定のブランチに固有のものであり、それ以外はすべてメインブランチからのものであると言う何らかの方法です。Photoshop の用語で言えば、マスターを背景レイヤーにして、各トピック ブランチをその上に部分的に透明なイメージ レイヤーにし、独自のコンテンツを配置します。
git - サブモジュールを含む Rails アプリケーションのデプロイをどのように処理しますか?
最近、いくつかのプラグインをサブモジュールに変えましたが、リポジトリを "git clone" すると、サブモジュール ディレクトリが空になることに気付きました。これは、共同開発者がサブモジュールを初期化して更新することを意味します。
ただし、capistrano を使用してデプロイすると、サブモジュール コードが明らかにデプロイされず、問題が発生します。リリース ブランチに移動し、そこでモジュールを初期化して更新することもできますが、それは明らかに理想的なソリューションではありません。
これを処理する方法について誰か提案がありますか? カピストラーノのタスクと同じくらい簡単ですか?
私は物事の生産面では少し初心者です。
ありがとうございました!
linux - git サブモジュール: ln -s
生き残るディレクトリリンクを作成するにはどうすればよいgit submodule update
ですか?
次のディレクトリ構造の例を考えます。
次のコマンドのようなものを使用して、からproj/lib/
へのソフト リンクを作成しました。proj/lib3/submod/lib
次のディレクトリ構造を作成します。
ただし、実行git submodule update
するとリンクが破棄されます。私は、ソフト リンクは相対パスへの論理リンクであるという印象を受けていたので、オブジェクトを削除して再度追加すると、リンクはそのまま維持されます。どうすれば目的の効果を達成できますか?
git - git サブモジュール: カスタマイズ
git サブモジュールを使用する場合、カスタマイズを行うための推奨される方法は何ですか? するべきか...
- プロジェクトをフォークし、フォークを追跡する
- デフォルトの動作をオーバーライドしようとする
- ローカルで変更を加える
これらのどれも意味をなさない場合、何が意味するのでしょうか?
git - Hgリポジトリからのgitサブモジュール?
ライブラリとしてリンクするのではなく、別のプロジェクトのソースを直接含む非常に古いプロジェクトがあります。悪い時代に、私がすべてをCVSに保持していたとき、私はベンダーのブランチに外部コードを持っていて、定期的にインポートを行いました。私のプロジェクトがgitになっているので、外部プロジェクトをサブモジュールとして含める方が理にかなっています。しかし、問題があります。外部プロジェクトがMercurialに移行しました。git-hgプロジェクトとhg-gitプロジェクトを見つけましたが、どちらかがサブモジュールを適切に処理するかどうかはわかりません。
gitリポジトリの代わりにHgリポジトリを指すgitサブモジュールを作成する方法はありますか?
git - Gitサブモジュール内のファイルを追跡できません
問題: -filesにもファイルもないときに./shells/smallApps/*
Gitにファイルを追加する。./.git/
./.git/info/exclude
.gitignore
この質問は、問題が完全には解決されていないこのトレッドに基づいています。
走る
Gitに「shells/smallApps/*」というファイルがないことに注意してください
実行してGitに追加したい
何らかの理由でファイルがGitに追加されないことに注意してください。
.git / info/excludeにも.gitignore-filesにもファイルがありません。
最後の警告はどういう意味ですか?
git - サブフォルダーへの Git サブモジュール
svn では、リポジトリを別の svn リポジトリ内の任意のフォルダーにリンクできます。gitに同様の機能があるかどうか疑問に思っていますか? 基本的に、リポジトリ内に git サブモジュールが必要ですが、サブモジュールを、リポジトリ全体ではなく、別の git リポジトリのサブフォルダーへのポインターにしたいと考えています。これは可能ですか?
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 ディレクトリを取得します。
ビンの内容を取得するにはどうすればよいですか?