0

我在这里遇到了一件有趣的事情。我已经开发了一段时间(在 Windows 上开发,文件移动到 Linux VM,从 VM 进行提交)并创建了许多新文件。当我运行 a时,它会在部分和部分git status中显示我的所有新文件。new file:modified:

这是结果git status

# On branch 2.x-merge
# Your branch is ahead of 'composer/2.x-merge' by 1 commit.
#
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   SP/ElasticSearch/ElasticSearch.php
#       new file:   SP/ElasticSearch/Filters/AndFilter.php
#       new file:   SP/ElasticSearch/Filters/Boolean.php
#       new file:   SP/ElasticSearch/Filters/OrFilter.php
#       new file:   SP/ElasticSearch/Queries/Boolean.php
#       new file:   SP/ElasticSearch/Queries/Filtered.php
#       new file:   SP/ElasticSearch/Queries/Match.php
#       new file:   SP/ElasticSearch/Queries/MatchAll.php
#       new file:   SP/ElasticSearch/Queries/Term.php
#       new file:   SP/ElasticSearch/esFilter.php
#       new file:   SP/ElasticSearch/esInserter.php
#       new file:   SP/ElasticSearch/esQuery.php
#       new file:   SP/ElasticSearch/esQueryBuilder.php
#       new file:   tests/SP/ElasticSearch/ESTest.php
#       new file:   tests/SP/ElasticSearch/esFilterTest.php
#       new file:   tests/SP/ElasticSearch/esQueryTest.php
#
# 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)
#
#       modified:   SP/ElasticSearch/ElasticSearch.php
#       modified:   SP/ElasticSearch/Filters/Boolean.php
#       modified:   SP/ElasticSearch/Filters/OrFilter.php
#       modified:   SP/ElasticSearch/Queries/Boolean.php
#       modified:   SP/ElasticSearch/esFilter.php
#       modified:   SP/ElasticSearch/esQuery.php
#       modified:   SP/ElasticSearch/esQueryBuilder.php
#       modified:   build.xml
#       modified:   tests/SP/ElasticSearch/ESTest.php
#       modified:   tests/SP/ElasticSearch/esQueryTest.php
#

如果您注意到,修改部分中出现的所有内容(除了build.xml)都会出现在新部分中,并且这些都是新文件,因此它们应该是。

提交很顺利,我只是做了一个-am并且没有任何问题,我只是想知道是否有人知道为什么会发生这种情况,这意味着什么,或者它是如何发生的。

提前致谢。

4

2 回答 2

2

请注意两个部分的标题:要提交的更改和未暂存的更改以进行提交

当您使用git add some_file.txt文件的当前状态时(在这种情况下some_file.txt)被暂存以包含在下一次提交中,因此该文件将出现在要提交的更改列表中。如果您在运行之前对该文件进行了进一步的更改,git commit除非您再次运行,否则这些更改将不会被暂存git add,因此该文件也将出现在未暂存的更改列表中。

运行时git commit,您传递了-a标志(缩写--all),该标志会自动暂存所有已修改或删除的文件。这相当于在运行之前对Changes not staged for commit列表git add中的所有文件运行。git commit

于 2013-05-14T23:25:41.557 回答
0

运行git diff以显示未暂存的更改并git diff --cached显示已暂存的更改。

您可能在不知不觉中更改了这些文件中的行尾。Windows 更喜欢以 2 个字节结束行(回车和换行)。Unix 更喜欢以 1 个字节结束行(只是一个换行符)。

于 2013-05-14T23:20:37.083 回答