問題タブ [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 の下にあるすべてのファイルを追跡する方法
コマンドシーケンス
mkdir topdir
mkdir another-git-directory
touch fileC
touch fileD
git add .
git commit -m "sub-dir init"
cd ..
touch fileA
touch fileB
git add .
git commit -m "top-dir init"
git ls-files
// fileC と fileD が最上位の git によって追跡されていないことがわかります //
git ls-files -o
// これは fileC と fileD を表示しません追跡されていないファイルとしてのfileD//
私の質問は、「git ls-files -o」を作成して、サブディレクトリ内の追跡されていないファイルを表示するにはどうすればよいですか? git ls-files が追跡されていないすべてのファイルを表示することを期待しているため、git がそのように動作するのはなぜですか (別のサブディレクトリ git 内であっても)?
「git add */.」を使用してサブディレクトリファイルを追跡するためにトップgitを作成できることは知っています...しかし、上記の質問の理由を知りたいです。ありがとう!
ディレクトリ構造
更新 (6 月 26 日)
このスレッドUnable to track files within Git submodulesと、問題の解決方法を説明するこの URL (cn) http://blog.ossxp.com/2010/01/425/を見つけました。
ソリューション:
git rm --cached another-git-directory #末尾のスラッシュなし
git add another-git-directory/.
gitコミット
「git rm --cached path/to/sub-dir-or-sub-module」は、サブディレクトリをサブモジュールとして扱わないようにトップディレクトリに指示します...私は思う....
svn - git サブモジュールが svn externals と互換性がないのはなぜですか?
svn externals を git submodules のように見せるためのハックな方法を提案する Web ページがたくさんあります。私は違いが何であるかについていくつかの説明を読みましたが、これはあまり基本的ではないようです:
Git サブモジュールは別のプロジェクトのリポジトリ内の特定のコミットにリンクしますが、svn:externals は常に最新のリビジョンを取得します。
なぜこの違いが根本的に互換性を持たないのでしょうか? ほとんどの svn:externals が移動しないタグを指すなど、想定できる合理的なデフォルトはありませんか?
git - git リポジトリから特定のフォルダーを git サブモジュールとして追加するにはどうすればよいですか?
git リポジトリがあり、サブモジュールを追加したいと考えています。問題は、サブモジュールが別のリポジトリ内のフォルダーとして存在することです。そのフォルダだけをサブモジュールとして追加できますか?
svn - Subversionリポジトリをgitの「サブモジュール」として持つことは可能ですか?
Subversionリポジトリをgitの「サブモジュール」として持つことは可能ですか?
このプロジェクトにはいくつかの部分がありますが、svn を使用する部分と git を使用する部分があります。そこで、他のプロジェクトをサブモジュール (または類似のもの) として持つことができる「プロジェクト ルート」を調べています。
問題は、この「プロジェクト ルート」を git で管理できるかどうかです。
ありがとうヨハン
逆の質問は次の場所にあります。
更新:
逆の質問で、VonC は git-svn でこれを行うことができるというヒントを与えましたが、これがどのように見えるかについての例はありますか?
git - gitサブモジュールのリポジトリ内のブランチを削除すると、そのブランチのコミットがスーパープロジェクトで使用できなくなりますか?
私はgitにかなり慣れていないので、これに対する答えはノーだと思いますが、ここで経験豊富なgitユーザーの何人かに確認したいと思いました。
サブモジュールの開発ブランチへの参照を含むコミットを持つスーパープロジェクトがあります。その開発ブランチをマスターにリベースして削除すると、参照されているサブモジュールのコミットが消えて、それを参照しているスーパープロジェクトのコミットが使用できなくなるのではないかと少し心配しています。
私はその質問に答えましたが、それは別の質問を引き起こしました。この振る舞いは期待できますか?gitが削除されたアイテムを一定期間refに保持し、その後それらを削除することを読みました。これにより、クローンが最初に機能し、後で失敗する可能性がありますか?
git - 別のプロジェクトから git サブモジュールをプルするにはどうすればよいですか?
物事を単純にしましょう。
私はgitプロジェクトをセットアップしています。これを ProjectA としましょう。私の友人は、ProjectB という別の古い git プロジェクトをセットアップしています。ProjectB には、SubOne と SubTwo という 2 つのサブモジュールが設定されています。さて、私が「セットアップ」を意味するとき、彼はそれらを「gitサブモジュール更新」するだけでよいことを意味します。それらは存在します。
さて、わがままなので、彼のサブモジュールを盗みたいと思います (盗んでいるのではなく、彼が私にくれたのです)。
私の ProjectA で、彼のサブモジュールのみをプルする方法はありますか? もしそうなら、どのように?また、姉妹プロジェクトで作業しているため、ファイル構造は同じままにする必要があります。つまり、彼のファイルは ext/SubOne と ext/SubTwo の下にあり、私のファイルも同じである必要があります。
最後に一つだけ; 彼はサブモジュールの作成方法を知っていますが、その URL はもうありません。
グラジー!NS
git - Git:status、diffなどの「変更されたコンテンツ」/ダーティサブモジュールエントリのリストを抑制できますか?
いつか(1.6.xリリースのあたりで)gitはサブモジュール内の変更に気づきました。それは私を苛立たせるだけです:
やめてください?
編集:
わかりました、それで私は答えがあります。今、私は別の質問があります:
これを入れても~/.gitconfig
いいですか?私の最初から、私はできないように見えます、そして、私はパッチをすくい取ることによって有望なものを見ませんでした。(私はまだエイリアスを作ることができると思います。)
git - サブモジュールはプラグイン用ですか、それとも依存関係用ですか?
プロジェクト X がベース プロジェクトで、プロジェクト Y が X に依存しているとします。プロジェクト Y は、プロジェクト X のプラグインである場合もあれば、他の方法でプロジェクト X を必要とするスタンドアロン アプリである場合もあります。
プロジェクト Y はスーパープロジェクトであり、プロジェクト X はプロジェクト Y のサブモジュールであるべきだとずっと考えてきました。
しかし、これを読むと、私の考えが逆転しているように見えます。この記事では、依存関係はスーパープロジェクトであり、依存コード (この場合はプラグイン) はサブモジュールです。これはサブモジュールを使用する正しい方法ですか?
git - 過去のすべてのリビジョンにサブモジュールを追加するために git リポジトリを変更する方法は?
を使用して、タグ付きの SVN リポジトリを Git に正常に移行しましたgit svn-clone
。ただし、git svn-clone
移行しませんsvn:externals
。したがって、を使用してブランチ ツリーを変更することにしましgit filter-branch
た。
についてsvn:externals
は、まず svn:externals ごとに個別の Git リポジトリを作成してから、以下を使用してみましたが、うまくいきませんでした。
これを達成する方法はありますか?よろしくお願いします。
git - git サブモジュールを削除できません
Rails 3 プロジェクトにいくつかの Haml テンプレートを追加しました。
これらのファイルのいくつかを編集しようとしたときに、これがサブモジュールであることがわかったため、lib/generators/haml
ディレクトリ内で行った変更をコミットできませんでした。git status
今私が得るたびに
しかしgit add lib/generators/haml
、効果はありません。私は本当にサブモジュールではなくファイルを持ちたいだけですが、サブモジュールを取り除くことは不可能だと思っています:
追加git add
の s は役に立ちません。私がしようとするとgit rm -rf lib/generators/haml
、私は得る
それはただ死ぬことはありません!submodules を削除する方法を調べましたが、この場合、.submodules
ファイルはなく、サブモジュールについての言及もありません.git/config
。しかし、実行するgit submodule update
と、
ディレクトリを削除しましたが、同じ結果が得られます! どうしたの?.gitmodules
サブモジュールを削除するためだけにファイルを作成する必要がありますか?