0

注:この質問は管理トピックを参照していますが、スタックオーバーフローの方がgit質問に適していると思いました

私は git を使用して、かなり大きな構成ファイルのスタックを管理しています。関連するファイルの各バッチはサブモジュールに分割され、テスト サーバーで開発された後、運用サーバーで使用される「マスター」ブランチに取り込まれます。

本番サーバーから、次のように表示されます。

 $ 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:   common/manifests/file.pp
  # modified:   updates (new commits)

これが問題です:commonは のようなサブモジュールですupdates。ここで、サブモジュールの変更を「メイン」レポにコミットするように求める「新しいコミット」という文言が表示されることを期待しています。

commonディレクトリにドロップダウンすると、他の変更が表示されますが、最も重要なのは、上流のリポジトリで言及されている変更ではありません。

$ cd common
$ 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:   manifests/log.pp
#
no changes added to commit (use "git add" and/or "git commit -a")

git は、common実際にその作業ディレクトリにいるときだけフォルダが別のリポジトリであることを認識しているようですが、アップストリーム ディレクトリにいるときはそうではありません。

git --versionで戻ってきます1.7.11.3

ここで何が起こっているのですか? また、サブモジュールとして下流のディレクトリの追跡を git に再開させるにはどうすればよいですか?

4

1 に答える 1