バックグラウンド
LinuxでGit1.8.1.1を使用する。リポジトリは次のようになります。
master
book
サブモジュールは次のように作成されました。
$ cd /path/to/master
$ git submodule add https://user@bitbucket.org/user/repo.git book
book
サブモジュールがきれいです。
$ cd /path/to/master/book/
$ git status
# On branch master
nothing to commit, working directory clean
問題
一方、マスターは、本のサブモジュールに「新しいコミット」があることを示しています。
$ cd /path/to/master/
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: book (new commits)
#
no changes added to commit (use "git add" and/or "git commit -a")
Gitはサブモジュールディレクトリを完全に無視して、マスターもクリーンにする必要があります。
$ cd /path/to/master/
$ git status
# On branch master
nothing to commit, working directory clean
失敗した試み#1-汚い
master/.gitmodules
この回答によると、ファイル内には次のものがあります。
[submodule "book"]
path = book
url = https://user@bitbucket.org/user/repo.git
ignore = dirty
失敗した試み#2-追跡されていない
master/.gitmodules
この回答に従って、次のように変更されました:
[submodule "book"]
path = book
url = https://user@bitbucket.org/user/repo.git
ignore = untracked
失敗した試行#3-showUntrackedFiles
master/.git/config
この回答に従って、次のように編集しました:
[status]
showUntrackedFiles = no
失敗した試み#4-無視する
ブックディレクトリをマスター無視ファイルに追加しました。
$ cd /path/to/master/
$ echo book > .gitignore
失敗した試行#5-クローン
次のように、ブックディレクトリをマスターに追加しました。
$ cd /path/to/master/
$ rm -rf book
$ git clone https://user@bitbucket.org/user/repo.git book
質問
book
サブモジュールをリポジトリの下の独自のリポジトリディレクトリに配置しmaster
ながら、gitにbook
サブモジュールを無視させるにはどうすればよいですか?つまり、以下は表示されません。
#
# modified: book (new commits)
#
git status
マスターリポジトリで実行するときにそのメッセージを抑制する方法は?
gitサブモジュールの落とし穴に関する記事は、これが不適切なサブモジュールの使用法であることを示唆していますか?