2009-09-22 18 views
8

私たちはgitサブモジュールを調べてきましたが、サブモジュールを使用しているリポジトリに.gitignoreファイルを持つ別のリポジトリ内のリポジトリを持つことで、どのような利点があるのか​​不思議です。サブモジュールなしgitサブモジュールをgitignoreを使って別のレポの中にレポを持つことよりも利点は何ですか?

例:

mkdir a 
cd a 
git init 
touch test1.txt 
echo "b" > .gitignore 
git add . 
git commit -m "Adding test1.txt and gitignore" 

mkdir b 
cd b 
git init 
touch test2.txt 
git add . 
git commit -m "Adding test2.txt" 

git log 
cd .. 
git log 
+0

これはおそらく[SoftwareEngineering.SE](https://softwareengineering.stackexchange.com/) –

答えて

15

あなたがコミットしたときに(サブモジュールの)Gitの親は、サブモジュールの枝やタグIDを追跡します。そうすれば、(既知のバージョンで)親をチェックアウトすると、サブモジュールにも正しいタグが含まれるようになります。

上記のように無視されたサブディレクトリの場合は、基本的にはファイルシステム階層の一部でないかのように、2つの独立したgit reposです。

+2

に移行する必要があります。サブモジュールを使用すると、サブモジュールを表す親リポジトリにバージョン管理されたオブジェクトがあります。ネストされた(および無視された)サブリポジトリは、親リポジトリ内に全く表現を持たない。 –

+0

こんにちは、私はこれを理解するのに問題があります:作業レポがAであり、サブモジュールレポがbであるとしましょう。 bがA内のコードに加えられた変更を追跡しているということですか?例を教えてください。 –

+0

@adityamenon私は、私の "サブモジュール"がどこにあるのかを覚えていないまま、 'git submodule foreach git pull'を行うことができる組織化された方法と見てきました。 – JRomero

関連する問題