問題タブ [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サブモジュールリンク
使いやすいgithub.comプライベートホスティングに+$12を費やしたくないので、共有ホスティングアカウントの小さなリポジトリに多くのコードライブラリを配置します。これにより、必要な数のコードリポジトリを作成できます。
それらのリポジトリはそこに座るのにリソースを必要としないので、使用量を最大化するために、そのアカウントにいくつかの非常に軽いサイトも配置しました。これらのサイトは、実際には、プロジェクトのサブモジュールとして同じコードリポジトリの一部を使用しています。
そのため、sshを介して各リポジトリとサイトのコードをプッシュ/プルします。いくつかのディレクティブを設定するサイト自体も、これらのサブモジュールをプルします。
したがって、次のようなサブモジュールを備えたsimplesite.tldプロジェクトがPCにあります。
次に、コードをsimplesite.tldにプッシュし、SSH経由で共有ホストにログインして、simplesite.tldモジュールを更新します。
しかし、ログインしてリポジトリコードを取得するために、「ユーザー」のSSHパスワードの入力を求められます。リポジトリが同じサーバー上にあるため、これは単に煩わしいことです。
それで、同じハードドライブ内の外部コンピューター(私のPCなど)とプロジェクトの両方が使用できる、より良いサブモジュールリンクがありますか?
git - サブモジュールを含むリポジトリで git checkout を実行するにはどうすればよいですか?
X
サブモジュールを持つリポジトリがあるとしますA
。ここで、 X
master と development の 2 つのブランチが必要だとします。マスターにA
開発版とは異なるリビジョンを持たせたい。これらのブランチ間を切り替えるにはどうすればよいですか?
これを行うリポジトリをセットアップしました(ただし、偽の名前ではなく実際の名前を使用しています!)。問題は、開発から行うたびにgit checkout master
、次のようになることです。
A
マスターが参照するコミットに戻っていないようです。これを回避する方法はありますか?もgit submodule sync
もgit submodule update
何も変わらないようです。
git - GitHubのディレクトリはどうなりましたか?
gitリポジトリ内に新しいサブディレクトリを追加しました:
次に、これをコミットしてGitHubにプッシュしましたが、シンボリックリンク/ショートカットをコミットしたようですが、実際のディレクトリとファイルはコミットしていないようです。
ここを参照してください:http://github.com/G4EGK/RSS-Reader
「フィード」とは何か考えはありますか?
それを削除して、ファイルを正しく追加したいと思います。私は次のことを試しましたが、git status
何も変わっていないと言いました:
フィードを削除するには、次を実行しますか?
アップデート
ありがとうウェス。
git filter-branch
このサブモジュールをリポジトリから削除しませんでした(表示したときに追跡されていましたgit status
)
この間違いを取り除くために、最後の2つのコミットを元に戻しました(フィードクラスを追加しようとしました)。
次のコマンドを使用しました:
次に、コミット2と3を削除し、トップラインを残して(4月2日のコミット)、変更を保存し(:wq)、GitHubにプッシュしました。
これで、GitHubリポジトリがフィードを追加する前の状態に戻りました。
私の最初の間違いは、最初にフィードを追加するときに最後にスラッシュを使用するのを忘れていたことです。使うべきだった
git - gitリファレンス共通ディレクトリ/リポジトリ
プロジェクトのレイアウト:
project_aとproject_bの両方に共有フォルダーが含まれている必要があります。svnでは、(相対パスも使用して)サブディレクトリを参照できるため、正常に機能するsvn:externalsandを使用しました。ただし、gitに移行したため、サブディレクトリのチェックアウトはサポートされていないようです。
私たちの解決策は、project_a、project_b、共有をすべて異なるgitリポジトリに配置し、project_aとproject_bでgitサブモジュールを使用することです。ただし、これはsvn:externalsを使用した1つのモノリシックsvnリポジトリよりもはるかに複雑に見えます。gitで一般的な要素を処理する正しい方法は何ですか?
編集:コンセンサスは、サブモジュールが進むべき道であるということです。しかし、それを1日使用したので、使用するのは非常に不親切に思えます。
共有内のファイルに変更を加えた後、次のことを行う必要があります。
- 共有で変更をコミットします
- シェアの変更をプッシュ
- 親ディレクトリに共有ディレクトリを再度追加します
- 親ディレクトリをプッシュする
svnでの単一のコミットと比較すると、これははるかに複雑に思えます。そして、これらのステップの1つが欠落していると、バージョン管理が大幅に混乱します。ここで何かが足りませんか?
ruby-on-rails - 2 つ以上の Rails アプリ間でコードを共有する... git サブモジュールに代わるものはありますか?
rails_appfoo/
とbar/
(正当な理由で別々に) の 2 つがあります。どちらもフォルダー内のいくつかのモデルなどに依存しており、現在はおよび とcommon/
並行しています。foo
bar
現在の svn セットアップではsvn:externals
、共有に使用されますcommon/
。今週末、私たちは git を試してみました。多くの調査の結果、これを解決するための「コーシャ」の方法は を使用しているようgit submodule
です。foo
、bar
、common
を別々のリポジトリに分離した後、それが機能するようになりましたが、すべての文字列が添付されていることに気付きました:
- 親をコミットする前に、必ずサブモジュールをコミットしてください。
- 親をプッシュする前に、必ずサブモジュールをプッシュしてください。
- コミットする前に、サブモジュールの HEAD がブランチを指していることを確認してください。(bash ユーザーの場合は、git-completion を使用して現在のブランチ名をプロンプトに入力することをお勧めします。)
- ブランチを切り替えたり、変更をプルしたりした後は、常に「git submodule update」を実行してください。
これらすべての落とし穴は、、、よりもさらに複雑add
にcommit
なりpush
ます。common
gitで共有するためのより簡単な方法を探しています。この男は拡張機能を使用して成功しているようですgit subtree
が、それは標準の git から逸脱しており、まだそれほど単純には見えません。
プロジェクト構造を考えると、これが私たちにできる最善のことですか? Rails プラグイン/エンジンについてはよくわかりませんが、ライブラリを共有する RoR っぽい方法のように思えます。
前もって感謝します。
ruby-on-rails - 2つのRailsプロジェクト間でモデルを共有する-gitサブモジュールを使用しますか?
私はRailsのWebサイトを持っており、パブリックサイトと管理サイトの2つの別々のプロジェクトに分かれています。
両方のサイトが同じデータベースを使用しているため、モデルはアプリケーション間で共有されます(実際には現在、それらは複製されています)。ここでの問題は、パブリックプロジェクトでモデルの更新が発生したときに、変更を管理プロジェクトにコピーする必要があることです。
私はSOを見回して、svn:externalまたはgitサブモジュールの使用を提案する回答がある質問があることに気づきましたが、これを行う方法が完全にはわかりません。
基本的に私の目的は、1つの場所でのみ変更を加え、それらの変更をgitにコミットし、それを更新する必要があるときに他のプロジェクトで変更をプルできるようにすることです。
git - gitサブモジュール、間違ったディレクトリを無視する
私はgitを初めて使用しますが、gitサブモジュールを試す前に、ドキュメントや落とし穴をよく読んでいます。私は、おそらく素朴に、gitのバグだと感じる問題を抱えています。
プロジェクトがあり、そのルートディレクトリに、mypluginというサブモジュールがあるpluginsフォルダーがあります。で追加しました
これはうまくいきました。すべてが約1週間正常に機能しています。私が使用しているフレームワークは、プラグイン内のビューをオーバーライドするためのサポートを備えています。それらはに保存する必要があります
問題は、gitがオーバーライドフォルダも次の場所にあると見なしていることです。
Gitはviews/plugins / mypluginディレクトリ内で何もコミットせず、ファイルを追跡しません。何をしても無視することはできません。Githubでは、サブモジュールであることを示す緑色の矢印が表示されます。ブランチを切り替えると、そのディレクトリがサブモジュールと同じように引き継がれます。
私は1時間以上髪を抜いていて、何の進歩もありません...どんな助けも大歓迎です!
git - Git サブモジュールまたはフォーク
私のcmsの完全なソースコードであるgithubにプライベートレポがあります。現在、同じコード ベースを異なるテーマで使用したいと考えている地元の顧客が数人います。元のプロジェクトをそれぞれのレポにフォークする方がよいでしょうか。または、サブモジュールを使用して、顧客ごとに新しいレポを作成しますか?
各サイトが完成した後、テーマ ファイルはあまり変更されないと思いますが、バグが発見された場合はメイン リポジトリから変更を取り込む必要があります。
django - git プロジェクトでサブモジュールを作成する
Django プロジェクトがあり、現在 GitHub でホストされており、非公開です。その多くの有用な部分をオープンソース プロジェクトに移行したいと考えています。「サブモジュール」を使用する必要があると思いますが、残念ながらこれらの操作方法がわかりません。
誰かが私を助けてください:)
ジョー
git-submodules - .NETソリューションでのサブモジュールの適切な使用
次のような構造で作成したライブラリがあります。
これをのサブモジュールとして含めたいと思いSolutionB
ます。この構造全体をサブモジュールとして使用すると、SolutionB
気にしないものがたくさん得られます。それは気にしませんSolutionA.sln
; それは気にしませんTests\
; 気にしませんTools\
。本当に、SolutionB
気にするのはCore\
。
の別のリポジトリが必要なようですCore\
。では、ソースが他のソリューションで使用されている.NETソリューション用に2つのリポジトリを用意するのが通常の習慣ですか?1つは(非テスト)コード自体(および必要なライブラリ)専用で、もう1つはテストツールとソリューションファイル用ですか?