1. ホーム
  2. git

Git サブモジュールを常に最新の状態に保つようにする

2023-10-22 19:37:24

質問

私はgitのサブモジュールが大好きです。 また、git submoduleは嫌いです。 私がサブモジュールについて好きなのは、依存関係などをきれいに区分けすることを可能にする方法です。 レポの特定のコミットを指すようにするのがいいというのはわかります。 しかし、私の場合、別のプロジェクトで使用されるライブラリを構築しているので、それを別のリポジトリに保持したいのです。

しかし、私がこのライブラリで日常的に作業しているときに、ポインタの更新をコミットするために私のライブラリを使用するアプリに常に切り替えなければならないのは、迷惑な話です。

そこで、私がこのライブラリを常に更新して追加している間、git サブモジュールを、それが指しているレポの先頭に常に置いておくことは可能でしょうか。

どのように解決するのですか?

UPDATE: git 1.8.2 の時点で、解決方法があるようです。以下を参照してください。 VonC の回答は以下の通りです。 . オリジナルの回答は、git < 1.8.2 のユーザーのためにここに残されています。


いいえ、これは設計によるものです。もしサブモジュールを他のリポジトリの "現在の head" に向ける方法があれば、メインリポジトリから過去のバージョン (タグ付けされたバージョンなど) を取得することは不可能でしょう。サブモジュールのどのバージョンをチェックアウトすればよいのかわからなくなります。

とは言うものの、あなたが興味を持つであろう git サブツリー スクリプトに興味があるかもしれません。これはサブモジュールを扱う別の方法を提供するもので、あなたのワークフローとより親和性が高いかもしれません。このことを思い出したのは、最近の の投稿で思い出したのですが、HN .