供应商中未跟踪的文件保持未跟踪状态

时间:2018-06-11 18:54:28

标签: ruby-on-rails git

我对我的Rails应用程序进行了更改,并通过Git添加并提交了它们。但是,我有两个文件,无论我使用什么命令都保持不跟踪。我尝试了git reset --hard HEADgit clean -f,但他们没有任何效果。我现在想知道该怎么做。我可以只提出拉取请求并与主合并吗?

On branch design-testimonial-page
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)
  (commit or discard the untracked or modified content in submodules)

    modified:   vendor/bundle/ruby/2.5.0/bundler/gems/activeadmin-f79e470a04d3 (modified content)
    modified:   vendor/bundle/ruby/2.5.0/bundler/gems/inherited_resources-652686148f55 (modified content)

no changes added to commit (use "git add" and/or "git commit -a")

当我git diff时,我得到了以下内容:

diff --git a/vendor/bundle/ruby/2.5.0/bundler/gems/activeadmin-f79e470a04d3 b/vendor/bundle/ruby/2.5.0/bundler/gems/acti
--- a/vendor/bundle/ruby/2.5.0/bundler/gems/activeadmin-f79e470a04d3
+++ b/vendor/bundle/ruby/2.5.0/bundler/gems/activeadmin-f79e470a04d3
@@ -1 +1 @@
-Subproject commit f79e470a04d3ef25230803d83a6b1d26ad5c171a
+Subproject commit f79e470a04d3ef25230803d83a6b1d26ad5c171a-dirty
diff --git a/vendor/bundle/ruby/2.5.0/bundler/gems/inherited_resources-652686148f55 b/vendor/bundle/ruby/2.5.0/bundler/g
--- a/vendor/bundle/ruby/2.5.0/bundler/gems/inherited_resources-652686148f55
+++ b/vendor/bundle/ruby/2.5.0/bundler/gems/inherited_resources-652686148f55
@@ -1 +1 @@
-Subproject commit 652686148f554fb9ce0ebee5d857b3d3decc0272
+Subproject commit 652686148f554fb9ce0ebee5d857b3d3decc0272-dirty

1 个答案:

答案 0 :(得分:0)

这些不是未跟踪文件。以下内容:

Changes not staged for commit:
根据定义,

部分是跟踪的跟踪一词仅表示索引中的,其中 index 一词定义为gitglossary。 (它也称为临时区域或有时称为缓存。)

在这种特殊情况下,带括号的位:

... (modified content)

告诉我们这些也不是文件。大多数索引条目都是针对文件的,但是Git支持它所谓的子模块(参见the git submodule documentation),它们是一个Git存储库中的引用,告诉Git它应该克隆并使用其他一些Git存储库,在一些特定的提交。

这里有另外两个存储库,位于目录中:

vendor/bundle/ruby/2.5.0/bundler/gems/activeadmin-f79e470a04d3

vendor/bundle/ruby/2.5.0/bundler/gems/inherited_resources-652686148f55

这两个Git存储库中的每一个都与其特定的签出版本不匹配。您的git status被配置为下降到每个子模块并查询,然后汇总该子模块的状态,因此您的Git进入第一个并发现它有未提交的更改,然后进入第二个并查找同样的事情。

请注意,如果您自己进入这些存储库,您将获得有关其中更改内容的更详细信息。如果您随后添加并提交这些更改,则会为子模块获取提交。如果您希望超级项目使用该新提交,则必须导航回超级项目并更新索引/暂存区域,以便它记录新的提交哈希ID。

如果您不想修改子模块,可以进入并清理它们。