できないトラックのファイル内にGit submodules
-
23-08-2019 - |
質問
問題点: 追加のファイル ./shells/smallApps/*
にGitで ./.git/
いただけない場合には、ファイルで ./.git/info/exclude
もので .gitignore
ファイルとする。
この質問は このトレッド の問題が解かれていない。
実行し
$git status ~/bin
# On branch master
nothing to commit (working directory clean)
$git ls-files ~/bin
Screen/dev/vim-open.screen
--- cut ---
したがっていないファイル"貝殻/smallApps/*"でGit
$ls shells/smallApps/ ~/bin
devTodo extract
~/bin
したいとして追加しようとすると私のGitによる走行
$git add shells/smallApps/devTodo shells/smallApps/extract
fatal: Path 'shells/smallApps/devTodo' is in submodule 'shells/smallApps'
$git add .
したがって、ファイルを追加しっGit何らかの理由など
$git status ~/bin
# On branch master
nothing to commit (working directory clean)
いないファイルです。git/html/を除くものです。gitignoreファイルとする。
どのような最後の警告を意味するのか。
解決
更新
が一般的理由Gitを無視してファイル: gitignore
や submodules
.
具体的には、以下の条件の原因となりまGitを無視するファイルの場合git add
'が呼び出されます:
- ファイルのパターンに一致す
$GIT_DIR/exclude
. - ファイルのパターンに一致する
.gitignore
ファイル内で呼ぶ。 - ファイルのパターンに一致するユーザー固有の
.gitignore
ファイルを指定する'git config --global core.excludesfile
'). - ファイルの一部であるサブモジュール.
強制'git add
'には、無視されるファイル:
チェックできるのが特定のファイルは無視されますメソッドを呼び出'git add full/path/to/file
'.
のmanページと "の場合は、無視されるファイルが明示的に指定されたコマンドラインは、コマンドは失敗するリストは無視されます。"
の場合はファイルは無視され、すでに追加される"git add --force full/path/to/file
'.
指示をサブモジュール参考:
その中には以前の答え shells/smallApps
は サブモジュール ポート.
の場合はファイルの一部であるサブモジュールは、状況はさらに複雑になります。を変更することはできませんの内容のサブモジュール内からの主なプロジェクト.
場合は解消したいサブモジュール参照が直接トラックのファイルのメインレポ-レートがあり、階段を実施することが必要である.はできませんで削除すgit"ディレクトリからのサブモジュール.がリンクとメインのリポジトリのサブモジュール:
- の
.gitmodules
ファイルをお呼ぶ。 - エントリの
.git/config
お呼ぶ。 - 他の犯に関するサブモジュールメインポンの歴史。
たこ 関連で質問, を行うには、次の手順を完全に除去し、サブモジュール:
注意:ば他の支店によりこのサブモジュール、その後除去できる腐敗したサポート!これは危険な動作---使用は注意を怠らないこと。
- 削除は、当該回線からの
.gitmodules
ファイルです。 - 削除は、当該部門から
.git/config
. - 走
git rm --cached path_to_submodule
(末尾のスラッシュ). - コミット
ファイルのサブモジュールはuntrackedいと判断した場合は保または削除については、任意の一点に注意先。
必要がない場合にこれらのファイルは、単に削除します。
警告: 長期保存を希望する場合これらのファイル(いがい)、手動で削除する .git
ディレクトリからフォルダにサブモジュール:
cd path_to_submodule
rm .git
cd ..
git add path_to_submodule
git status
git commit
更新:
要求さらに情報:
めのデバッグ、この問題ください郵送により出力の完全なセッションのコマンド:
cd to the top-level directory in your repo
ls -al
cat .git/config
find . -name ".git*"
git status
git add editors
git add shells
git status
に基づく記述がどのようにしているのかが見れることに期待してい:
- No
.gitmodules
ファイルでもどこでも - 一つだけ
.git
ディレクトリのルートのレポ-レート) - No
.git
ディレクトリeditors/vim/vimdoclet
- No
.git
ディレクトリshells/smallApps
他のヒント
んん git add
いについて何かsubmodules.い入れ子のGitリポジトリ?い:
$ find . -name .git
どのように多くの .git
ディレクトリに上場しているのですか?がある場合は、そん入れ子になった複数のリポジトリとその原因となる恐れがありますのでこの現場は混乱していた。
まだ安定していませんの投稿この質問にGitのメールリストgit@vger.kernel.org
).する取り組みは数多くありましたが迅速かつ完全に応じます。
いうポストが非常に大切である:
- 説明のしようとしている。
- 記述問題を使いました。
- 完全なセッションのログを示す:
- cdのトップレベルのディレクトリにおrepo
ls -al
cat .git/config
find . -name ".git*"
git status
git add editors
git add shells
git status