下面是我的git status的结果:
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
# (commit or discard the untracked or modified content in submodules)
#
# modified: vim/bundle/pathogen (modified content)
# modified: vim/bundle/sparkup (untracked content)
#
no changes added to commit (use "git add" and/or "git commit -a")运行git diff vim会显示以下内容:
diff --git a/vim/bundle/pathogen b/vim/bundle/pathogen
--- a/vim/bundle/pathogen
+++ b/vim/bundle/pathogen
@@ -1 +1 @@
-Subproject commit fcf77f5101f3e589ce006c40ad3a0432735a05cf
+Subproject commit fcf77f5101f3e589ce006c40ad3a0432735a05cf-dirty
diff --git a/vim/bundle/sparkup b/vim/bundle/sparkup
--- a/vim/bundle/sparkup
+++ b/vim/bundle/sparkup
@@ -1 +1 @@
-Subproject commit 04a81b41f116a19184359a6f8685c192f5c36c70
+Subproject commit 04a81b41f116a19184359a6f8685c192f5c36c70-dirty为什么一个是未跟踪的,另一个是修改的,差异是什么意思?但最重要的是:它是如何发生的,以及如何摆脱它?
发布于 2011-11-03 18:57:14
vim/bundle/pathogen中的一个被跟踪的文件以某种方式被修改了。子模块vim/bundle/sparkup中还有一些未跟踪(和未忽略)的内容。在这两种情况下,找出哪些内容已修改/未跟踪的方法都是切换到子模块目录并运行git status。(对于子模块中未跟踪的文件,这通常是尚未添加到上游.gitignore中的构建产品。)
发布于 2012-04-19 01:48:15
将ignore = dirty添加到存储库根目录下的.gitmodules文件中的每个有问题的submodule部分。示例:
[submodule "vim/bundle/nerdtree"]
path = vim/bundle/nerdtree
url = https://github.com/scrooloose/nerdtree.git
ignore = dirty就像在NilsH's How to ignore changes in git submodules看到的。多亏了Synchronizing plugins with git submodules and pathogen vimcast。
发布于 2013-09-17 09:30:03
进入子模块的目录,并确保没有任何正在构建的内容(某种类型的输出)。
cd submoduledir/
git status如果您在此处看到任何未跟踪的文件,只需执行以下操作将其删除:
git reset --hard HEAD
git clean -fxdhttps://stackoverflow.com/questions/7993413
复制相似问题