タグ付けされた質問 「git-submodules」

サブモジュールを使用すると、Gitリポジトリを別のGitリポジトリのサブディレクトリとして保持できます。

1
GitはサブモジュールのコミットのSHA1をどこに保存しますか?
gitリポジトリにサブモジュールを追加すると、sha1によって参照されるそのサブモジュールの特定のコミットが追跡されることを知っています。 このsha1値が格納されている場所を見つけようとしています。 .gitmodulesそして.git/configファイルのみコミットのSHA1サブモジュールのパスを示すが、ではありません。 git -サブモジュールは、(1)参照だけのことを話すgitlinkのエントリとgitmodules(5)参照は、このどちらかについては何も言いません。
141 git  git-submodules  sha 

9
浅いgitサブモジュールを作る方法は?
浅いサブモジュールを持つことは可能ですか?私はいくつかのサブモジュールを持つスーパープロジェクトを持っており、それぞれに長い履歴があるため、そのすべての履歴をドラッグすると不必要に大きくなります。 私が見つけたすべてはこの未回答のスレッドです。 これを実装するにはgit-submoduleをハックするだけですか?

2
サブモジュール内のGitサブモジュール(ネストされたサブモジュール)
gitサブモジュールを他のいくつかのgitサブモジュールで構成し、スーパーgitリポジトリが各サブモジュールのコンテンツをフェッチすることは可能ですか? 私は、いくつかのサブモジュールを保持するgit repoを作成するという明白で素朴なアプローチを使用してこれを試みました。 次に、このgitリポジトリを別のgitリポジトリにサブモジュールとして追加します。 その後で、スーパーGitのレポのルートディレクトリからプルしようとgit submodule initしてからgit submodule update。しかし、これはサブサブモジュールのフェッチに失敗します。

1
最新のgitサブモジュール追跡
(巨大な)プロジェクトをgitに移動し、サブモジュールの使用を検討しています。私たちの計画は、スーパープロジェクトに3つの異なる責任者を置くことです:リリース、安定、最新。プロジェクトリーダーはリリースと安定版ブランチを処理します。必要に応じてサブモジュールを移動します。 問題は「最新」の頭です。スーパープロジェクトの「最新の」ヘッドがすべてのサブモジュールのマスターブランチを(自動的に)追跡するようにします。また、サブモジュールへのすべてのコミットの履歴を表示できると便利です。 私はgitslaveを見てきましたが、それは私たちが望むものではありません。助言がありますか?

1
リポジトリの複製時に空のGitサブモジュールフォルダー
https://github.com/aikiframework/jsonでホストされている1つのリポジトリがあります。ローカルコピーに、次のコマンドを使用してサブモジュールを追加しました git submodule add git@github.com:jcubic/json-rpc.git json-rpc 次に、コミットとプッシュを実行すると、GitHubに変更が表示されます(クリックできます)。しかし、リポジトリをクローンすると git clone https://github.com/aikiframework/json.git サブモジュールフォルダーjson-rpcが空です。 ここで何が欠けていますか?何か忘れましたか?なぜそのフォルダは空ですか?

2
Gitサブモジュールのプッシュ
サブモジュールを変更した場合、コミットをサブモジュールのオリジンにプッシュバックできますか、それともクローンが必要ですか?クローンの場合、別のリポジトリ内にクローンを保存できますか?

6
含まれているリポジトリに保存されているコミットにGitサブモジュールポインターを戻す方法は?
メインのgitリポジトリにgitサブモジュールがあります。私が理解しているように、メインリポジトリはSHA値(どこかに...)を格納し、それが「リンクされている」サブモジュールの特定のコミットをポイントしています。 私は自分のサブモジュールに入り、と入力しましたgit checkout some_other_branch。どのコミットから来たのか私にはわかりません。 メインリポジトリとサブモジュールが再び同期するように、そのポインターを元に戻したいと思います。 私の最初の(おそらく素朴な)本能は言うgit reset --hardことでした-それは他のすべてのために働くようです。驚いたことに、このシナリオでは機能しませんでした。 したがって、と入力しgit diffて、サブモジュールポインターが以前使用していたSHA IDを書き留めてから、サブモジュールに移動git checkout [SHA ID]するとわかりましたが、確かにもっと簡単な方法があるはずです。 私はまだgitサブモジュールについて学習しているので、わからない概念の単語がある場合は、自由に私の用語を修正してください。

7
gitサブモジュールとの競合をどのように管理しますか?
いくつかのサブモジュールを参照するgitスーパープロジェクトがあり、私のプロジェクトメンバーの残りが内部で作業できるようにワークフローをロックしようとしています。 この質問について、私のスーパープロジェクトが呼び出さsuperyれ、サブモジュールがと呼ばれるとしましょうsubby。(それから私がやろうとしていることの簡略化です...実際にはバージョンにブランチを使用していませんが、質問としてレイアウトするのが最も簡単だと思いました。) 私のマスターブランチにsuperyは、サブv1.0プロジェクトsubbyとして参照されるgitプロジェクトのタグがあります。枝superyと呼ばれone.one、タグにポイントにサブモジュールの参照を変更v1.1しますsubby。 これらの各ブランチ内で問題なく作業できone.oneますが、masterブランチからの変更でブランチを更新しようとすると、いくつかの競合が発生し、それらを解決する方法がありません。 基本的にブランチでgit pull . masterしばらく実行した後、subby追加のサブモジュールを作成するように見えます。 プル/マージの前に、ブランチgit submoduleから必要な応答を取得しますone.one。 $ git checkout master $ git submodule qw3rty...321e subby (v1.0) $ git checkout one.one $ git submodule asdfgh...456d subby (v1.1) しかし、プルの後、実行すると追加のサブモジュールが追加されますgit submodule: $ git pull . master Auto-merged schema CONFLICT (submodule): Merge conflict in subby - needs qu3rty...321e Automatic merge …

9
Git:status、diffなどの「変更されたコンテンツ」/ダーティサブモジュールエントリのリストを抑制できますか?
いつか(1.6.xのリリースの周りだと思います)gitはサブモジュール内の変更に気づきました。それは私を困らせるだけです: $ git status vendor | 変更されたgrep: #変更:ベンダー/レール(変更されたコンテンツ) $ git diff vendor / diff --git a / vendor / rails b / vendor / rails --- a / vendor / rails +++ b /ベンダー/レール @@ -1 +1 @@ -サブプロジェクトコミット046c900df27994d454b7f906caa0e4226bb42b6f +サブプロジェクトコミット046c900df27994d454b7f906caa0e4226bb42b6f-dirty やめてください。 編集: わかりましたので、私は答えを持っています。今私は別の質問があります: これ入れても~/.gitconfigいい?私のイニシャルからは、私はできないように見え、パッチをスキミングすることによって有望なものは何も見当たりませんでした。(私はまだエイリアスを作ることができると思います。)

5
gitサブディレクトリを抽出してサブモジュールを作成する方法は?
数か月前にプロジェクトを開始し、すべてをメインディレクトリに保存しました。私のメインディレクトリ「Project」には、さまざまなものを含むサブディレクトリがいくつかあります。Project/ paperには、LaTeX Project / sourcecode / RailsAppで記述されたドキュメントが含まれ、railsアプリが含まれています。 「プロジェクト」はGIT化されており、「paper」ディレクトリと「RailsApp」ディレクトリの両方で多くのコミットが行われています。ここで、「RailsApp」にcruisecontrol.rbを使用したいので、履歴を失わずに「RailsApp」からサブモジュールを作成する方法があるかどうか疑問に思います。

4
gitサブモジュールを追加すると、「あなたはまだ生まれていないブランチにいます」
私は自分の.vim/bundlesディレクトリにいくつかのサブモジュールを追加しようとしています。この特定のリポジトリを追加しようとすると、Gitが今までにない奇妙なエラーを表示します。 $ git submodule add -f git://github.com/derekwyatt/vim-scala.git .vim/bundle/vim-scala fatal: You are on a branch yet to be born Unable to checkout submodule '.vim/bundle/vim-scala' 何がこれを引き起こすことができるか考えていますか? 同じサブリポジトリを(submoduleコマンドではなく)テストディレクトリに複製すると、正常に機能し、予期したファイルが作成されます。

6
Gitフォルダーを遡及的にサブモジュールに変換しますか?
かなりの頻度で、ある種のプロジェクトを作成している場合があり、しばらくすると、プロジェクトの一部のコンポーネントがスタンドアロンコンポーネント(おそらくライブラリ)として実際に役立つことが明らかになります。早い段階からそのアイデアを持っている場合は、そのコードのほとんどが独自のフォルダーにある可能性がかなりあります。 Gitプロジェクトのサブディレクトリの1つをサブモジュールに変換する方法はありますか? 理想的には、これは、そのディレクトリのすべてのコードが親プロジェクトから削除され、サブモジュールプロジェクトがその場所に追加され、すべての適切な履歴があり、すべての親プロジェクトのコミットが正しいサブモジュールのコミットを指すように行われます。 。

20
Gitは新しいサブモジュールを初期化/同期/更新しません
これが私の.gitmodulesファイルの内容の一部です: [submodule "src/static_management"] path = src/static_management url = git://github.com/eykd/django-static-management.git [submodule "external/pyfacebook"] path = external/pyfacebook url = http://github.com/sciyoshi/pyfacebook.git ただし、.git/config最初のものだけが含まれます。 [submodule "src/static_management"] url = git://github.com/eykd/django-static-management.git 2番目のサブモジュール(external/pyfacebook)は、機能ブランチの別の開発者によって追加されました。私は現在開発を継承しており、機能ブランチをチェックアウトしました。ただし、Gitはサブモジュールをプルしません。私はもう試した: git submodule init git submodule update git submodule update --init git submodule sync からすべてのサブモジュール定義を削除し.git/configて実行しgit submodule initます。以前に存在していたサブモジュールのみをコピーし、新しいサブモジュールは無視します。 新しいサブモジュール定義を.git/config手動で入力して実行しgit submodule updateます。以前に存在していたサブモジュールのみが、更新する必要がありません。 さまざまな組み合わせで使用できますが、git .git/configはの新しいコンテンツに基づいて更新されず.gitmodules、external/pyfacebookフォルダを作成してサブモジュールのコンテンツをプルしません。 何が欠けていますか?手動による介入(サブモジュールエントリを手動でに追加する.git/config)は本当に必要ですか、なぜですか? 編集:手動介入は機能しません。新しいサブモジュールエントリを手動で追加し.git/configても何も起こりません。新しいサブモジュールは無視されます。

3
フォルダーからサブモジュールリポジトリを作成し、そのgitコミット履歴を保持する
他のWebアプリケーションを特定の方法で探索するWebアプリケーションがあります。demosフォルダーにはいくつかのWebデモが含まれており、デモの1つに独自のリポジトリが必要です。このデモアプリケーション用に別のリポジトリを作成し、それをサブパッケージ コミット履歴を失うことなく、メインリポジトリのサブモジュール。 リポジトリのフォルダー内のファイルのコミット履歴を保持し、そこからリポジトリを作成してサブモジュールとして使用することはできますか?

3
履歴を維持しながら、gitリポジトリから新しいリポジトリに単一のディレクトリを移動するにはどうすればよいですか?
別々のディレクトリに複数のプロジェクトを含むgitリポジトリを継承しました。リポジトリをプロジェクトごとに1つずつ、新しい個別のリポジトリに分割し、マスターリポジトリにプロジェクトをサブモジュールとして含めます。できれば、個々のプロジェクトの変更履歴を維持しながら、これらすべてを実行したいと思います。 各プロジェクトのリポジトリを複製し、他のすべてのプロジェクトを毎回削除することはできますが、新しいプロジェクトリポジトリごとに履歴を複製しないようにするためのより良い方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.