首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有修改和未跟踪内容的Git子模块-为什么以及如何删除它?

带有修改和未跟踪内容的Git子模块-为什么以及如何删除它?
EN

Stack Overflow用户
提问于 2011-11-03 18:34:46
回答 6查看 60.9K关注 0票数 68

下面是我的git status的结果:

代码语言:javascript
复制
# 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会显示以下内容:

代码语言:javascript
复制
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

为什么一个是未跟踪的,另一个是修改的,差异是什么意思?但最重要的是:它是如何发生的,以及如何摆脱它?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-11-03 18:57:14

vim/bundle/pathogen中的一个被跟踪的文件以某种方式被修改了。子模块vim/bundle/sparkup中还有一些未跟踪(和未忽略)的内容。在这两种情况下,找出哪些内容已修改/未跟踪的方法都是切换到子模块目录并运行git status。(对于子模块中未跟踪的文件,这通常是尚未添加到上游.gitignore中的构建产品。)

票数 67
EN

Stack Overflow用户

发布于 2012-04-19 01:48:15

ignore = dirty添加到存储库根目录下的.gitmodules文件中的每个有问题的submodule部分。示例:

代码语言:javascript
复制
[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。

票数 56
EN

Stack Overflow用户

发布于 2013-09-17 09:30:03

进入子模块的目录,并确保没有任何正在构建的内容(某种类型的输出)。

代码语言:javascript
复制
cd submoduledir/
git status

如果您在此处看到任何未跟踪的文件,只需执行以下操作将其删除:

代码语言:javascript
复制
git reset --hard HEAD
git clean -fxd
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7993413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档