問題タブ [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リポジトリの一部をサブモジュールにする方法
私はこのGitリポジトリを持っています。これには2つのフォルダが含まれています:binary-search
とpoker
。
例:https ://github.com/soulnafein/code-katas
これらのフォルダをサブモジュールに変換し、変更履歴を保持したいと思います。
どうやってやるの?
git - Git サブモジュールのワークフロー
私のプロジェクトでは、いくつかの Git リポジトリに保存されているサードパーティ コードを使用する必要があります。私のプロジェクトは (別の) Git リポジトリにも保存されています。主なプロジェクトで私と一緒に働いている人が何人かいて、私はメンテナーです。
以前のプロジェクトでは、依存関係を手動で Git 作業ツリーにコピーし、使用するバージョンを指定する小さなファイルを追加していました。
依存関係の1つを毎日更新する必要があり、ほとんどの場合、主プロジェクトへの変更と相まって、自分でコードを提供する必要があるため、これはかなり不快です。
管理を行うために Git サブモジュールを試すことにしました。それらを試せば試すほど、イライラします。おそらく、手動コピーの方が優れているようにさえ思えます。
ここに私の懸念のいくつかがあります:
- 単一のコマンドで一貫したリポジトリの状態を取得できなくなりました (
git checkout
今は必要git submodule update --init
です)。 - 一部の Git ツールを適切に使用できません (
git archive
が最も顕著です)。 - メイン プロジェクトからのサブモジュールへのステータス変更/差分を確認できません。
- 私が難しい方法で見つけたように、およびオプションで
git submodule
は機能せず、現在のディレクトリを「作業ツリーのトップレベル」に物理的に変更する必要があります。--git-dir
--work-tree
サブモジュールのワークフロー (つまり、1 つの操作 == 1 つのコマンド) を合理化するために、Git のかなり厚いラッパーを作成する必要があるようです。これは悲しいです。
Git から離れたり、サブプロジェクトの開発を完全にメイン プロジェクトに統合したりすることはできないことに注意してください。
もしかして私の使い方git submodules
が悪いのでしょうか?ワークフローに関する適切なチュートリアルはありますか?
適切な答えがわからなくても声を上げてください。私の懸念を共有してください。:-)
git - git サブモジュール エラー
このエラーの取得:
git pull
メインリポジトリから行う場合。プロジェクト内のどこにもサブモジュールが定義されていませんが、内部に別のレポがありvendor/plugins/simple_stuff
ます。何か案は?
git - Git サブモジュールのサブモジュールを解除するには?
Git サブモジュールのサブモジュールを解除し、すべてのコードをコア リポジトリに戻すためのベスト プラクティスは何ですか?
git - GIT サブモジュールの致命的: 説明できません
プロジェクトに git サブモジュールを追加しようとしていますが、git は $ git submodule fatal: cannot describe 'dd650e8bb4762a8a7f69a6412b4765c9bb108778' と言い続けます
「致命的: 説明できません」とはどういう意味ですか? どうすればこれを回避できますか?
git - Gitサブモジュールを追加するときにブランチ/タグを指定するにはどうすればよいですか?
どのように機能しgit submodule add -b
ますか?
特定のブランチを持つサブモジュールを追加した後、新しいクローンリポジトリ(後git submodule update --init
)は、ブランチ自体ではなく、特定のコミットになります(git status
サブモジュールには「現在どのブランチにもありません」と表示されます)。
.gitmodules
サブモジュールのブランチまたは.git/config
特定のコミットに関する情報が見つからないので、Gitはどのようにそれを理解しますか?
また、ブランチの代わりにタグを指定することはできますか?
バージョン1.6.5.2を使用しています。
git - 別のリポジトリ内で git リポジトリを操作するにはどうすればよいですか?
さまざまなプロジェクトで使用するすべての JavaScript および CSS マスター ファイルとスクリプトを保持している Git メディア リポジトリがあります。
独自の Git リポジトリにある新しいプロジェクトを作成する場合、新しいプロジェクトでメディア リポジトリの JavaScript ファイルを使用して、変更を加えたときにスクリプトの両方のコピーを更新する必要がないようにするにはどうすればよいですか? ?
git - git チェックアウト時に git サブモジュールが自動的に更新されないのはなぜですか?
git checkout でブランチを切り替えるとき、ほとんどの場合、サブモジュールを更新したいと思うでしょう。
- 切り替え後にサブモジュールを更新したくないのはどのような状況ですか?
- これが git checkout によって自動的に行われた場合、何が壊れますか?
例で更新:
- ブランチ A には 3852f1 にサブモジュール S があります
- ブランチ B には fd72d7 にサブモジュール S があります
ブランチ A で git checkout B を実行すると、サブモジュール S が 3852f1 (変更された S) にあるブランチ B の作業コピーが作成されます。git submodule update は fd72d7 で S をチェックアウトします。
git - 相対パスとして指定されている場合、git サブモジュールを追加できません
サブモジュールを git リポジトリに追加しようとしていますが、次のエラーが返されます。
これが何であるかについてのアイデアはありますか?グーグルで検索してみましたが、漠然としたリンクが1つしか表示されません。
私はこれをやっています:
私はこれがサブモジュールを作成することを期待しています.lib/Lib1
これは参照を作成するだけであり、その後更新/初期化する必要があることを認識しています.サブモジュール コマンド)。
git - Git サブモジュールの更新
次の意味がよくわかりません ( Git サブモジュールの更新ドキュメントから)。
--rebase
... or--merge
が指定されていない限り、サブモジュールの HEAD をデタッチします...
--rebase
/はどのように--merge
変化しますか?
私の主な使用例は、サブモジュールを介して他のリポジトリに埋め込む、多数の中央リポジトリを持つことです。これらの中央リポジトリを、元の場所で直接、または埋め込みリポジトリ (サブモジュールを介して使用するリポジトリ) 内から改善できるようにしたいと考えています。
- これらのサブモジュール内から、ブランチ/変更を作成し、通常のリポジトリと同じようにプッシュ/プルを使用できますか、または注意すべき点はありますか?
- サブモジュール参照コミットをたとえば (タグ付き) 1.0 から 1.1 に進めるには (元のリポジトリの先頭が既に 2.0 であっても)、またはどのブランチのコミットが使用されているかを選択するにはどうすればよいですか?