这就是我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")
Run Code Online (Sandbox Code Playgroud)
跑步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
Run Code Online (Sandbox Code Playgroud)
为什么一个未跟踪,另一个修改,差异是什么意思?但最重要的是:它是如何发生的以及如何摆脱它?
Mar*_*air 59
其中一个跟踪文件vim/bundle/pathogen
已被修改.子模块中还有一些未跟踪(和未标记)的内容vim/bundle/sparkup
.在任何一种情况下,找出修改/未修改内容的方法是更改到子模块目录并运行git status
.(对于子模块中未跟踪的文件,这通常是尚未.gitignore
在上游添加的构建产品.)
cia*_*tek 48
添加ignore = dirty
到repo根目录下的文件中的每个有问题的submodule
部分.gitmodules
.例:
[submodule "vim/bundle/nerdtree"]
path = vim/bundle/nerdtree
url = https://github.com/scrooloose/nerdtree.git
ignore = dirty
Run Code Online (Sandbox Code Playgroud)
正如NilsH所见,如何忽略git子模块的变化.感谢同步插件与git子模块和病原体 vimcast.
Mau*_*zio 25
进入子模块的目录,确保没有任何内容(某种输出)没有你知道.
cd submoduledir/
git status
Run Code Online (Sandbox Code Playgroud)
如果您在此处看到任何未跟踪的文件,请执行此操作以删除它们:
git reset --hard HEAD
git clean -fxd
Run Code Online (Sandbox Code Playgroud)
如果你真的确定你只想这样做(我正在管理带有病原体和 git 子模块的 vim 包,以及我如何设法在 repos 中获取一些标签文件夹 - 他们只是不得不去)你可以循环遍历子模块和删除未跟踪的文件。
cd YOUR_REPO_WITH_SUBMODULES/
git submodule foreach git clean -f -d
Run Code Online (Sandbox Code Playgroud)
-f
强制,-d
删除目录
您可以在此处查看文档:https : //git-scm.com/docs/git-clean
我遇到了同样的情况:
gogzelong:shadowsocks-android gogzelong$ git status 在分支 master 你的分支是最新的'origin/master'。
未为提交暂存的更改:(使用“git add ...”更新将提交的内容)(使用“git checkout -- ...”放弃工作目录中的更改)(提交或丢弃未跟踪或修改的内容子模块)
Run Code Online (Sandbox Code Playgroud)modified: core/src/main/jni/badvpn (modified content) modified: core/src/main/jni/libancillary (modified content) modified: core/src/main/jni/libevent (modified content) modified: core/src/main/jni/redsocks (modified content) modified: core/src/overture/src/github.com/shadowsocks/overture (modified
内容)
未向提交添加任何更改(使用“git add”和/或“git commit -a”)
当我 git diff 看看有什么变化时:
gongzelong:shadowsocks-android gongzelong$ git diff
diff --git a/core/src/main/jni/badvpn b/core/src/main/jni/badvpn
--- a/core/src/main/jni/badvpn
+++ b/core/src/main/jni/badvpn
@@ -1 +1 @@
-Subproject commit 58f8a8883e51e5cb97391c4b6733ce255bf11f95
+Subproject commit 58f8a8883e51e5cb97391c4b6733ce255bf11f95-dirty
diff --git a/core/src/main/jni/libancillary b/core/src/main/jni/libancillary
--- a/core/src/main/jni/libancillary
+++ b/core/src/main/jni/libancillary
@@ -1 +1 @@
-Subproject commit 311e5d14f593f16c785bc6605220517eb1f21f6b
+Subproject commit 311e5d14f593f16c785bc6605220517eb1f21f6b-dirty
diff --git a/core/src/main/jni/libevent b/core/src/main/jni/libevent
--- a/core/src/main/jni/libevent
+++ b/core/src/main/jni/libevent
@@ -1 +1 @@
-Subproject commit f29f07bc8c43eec96f227e6f6eede32b3af66168
+Subproject commit f29f07bc8c43eec96f227e6f6eede32b3af66168-dirty
diff --git a/core/src/main/jni/redsocks b/core/src/main/jni/redsocks
--- a/core/src/main/jni/redsocks
+++ b/core/src/main/jni/redsocks
@@ -1 +1 @@
-Subproject commit 274334f14839431ae003774d99c3d1de337afff4
+Subproject commit 274334f14839431ae003774d99c3d1de337afff4-dirty
diff --git a/core/src/overture/src/github.com/shadowsocks/overture b/core/src/overture/src/github.com/shadowsocks/overture
--- a/core/src/overture/src/github.com/shadowsocks/overture
+++ b/core/src/overture/src/github.com/shadowsocks/overture
@@ -1 +1 @@
-Subproject commit a9b5a94e215c1beadfe11442994b550e1e81f8d6
+Subproject commit a9b5a94e215c1beadfe11442994b550e1e81f8d6-dirty
Run Code Online (Sandbox Code Playgroud)
我是这样修复的:
gogzelong:shadowsocks-android gogzelong$ git submodule update --init gogzelong:shadowsocks-android gogzelong$ git submodule foreach git reset --hard 进入'core/src/main/jni/badvpn'
HEAD 现在位于 58f8a88 修复错误 UDP 校验和计算。进入'core/src/main/jni/libancillary' HEAD 现在在 311e5d1 Fix C++ building 进入'core/src/main/jni/libev' HEAD 现在在 5213419 Merge pull request #2 from Mygod/master Entering 'core/ src/main/jni/libevent' HEAD 现在在 f29f07bc 更新到 2.1.8 输入'core/src/main/jni/libsodium' HEAD 现在在 c5e43f4c 更新 dotnet 示例版本输入'core/src/main/jni/mbedtls ' HEAD 现在位于 4f0929189 将版本号更新为 2.6.1 进入 'core/src/main/jni/pcre' HEAD 现在位于 222bbf4 合并“pcre:使无趣的警告静音”。am: 0e44fd55f8 Entering 'core/src/main/jni/redsocks' HEAD 现在在 274334f 使用标准 ANDROID 预处理器宏 (#1) 输入 'core/src/main/jni/shadowsocks-libev' HEAD 现在位于 57e74ea 修复绕过输入 'core/src/overture/src/github.com/shadowsocks/overture' HEAD 的错误现在在 a9b5a94 格式化源代码 gogzelong:shadowsocks-android gongzelong$ gogzelong:shadowsocks-android gogzelong$ git status 在分支 master 你的分支是最新的'origin/master'。
没有什么可提交的,工作树干净
参考:git-discard-submodule-changes