Git提交-a";未跟踪的文件;?

Git提交-a";未跟踪的文件;?,git,git-commit,Git,Git Commit,当我执行git提交-a时,我看到以下情况: # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch better_tag_show # Changes to be committed: # (use "git reset HEAD <

当我执行
git提交-a
时,我看到以下情况:

  # Please enter the commit message for your changes. Lines starting
  # with '#' will be ignored, and an empty message aborts the commit.
  # On branch better_tag_show
  # Changes to be committed:
  #   (use "git reset HEAD <file>..." to unstage)
  #
  # modified:   ../assets/stylesheets/application.css
  # modified:   ../views/pages/home.html.erb
  # modified:   ../views/tags/show.html.erb
  # modified:   ../../db/seeds.rb
  #
  # Untracked files:
  #   (use "git add <file>..." to include in what will be committed)
  #
  # ../assets/stylesheets/
  # ../views/pages/
正如您所看到的,除了这四个应用了更改的文件之外,没有其他文件

我的问题应该重新表述如下:为什么在跟踪了此提交中的所有更改后,git会警告我未跟踪的文件?

换句话说,git commit消息中未跟踪的警告是否不必要?

git commit-am“msg”
git add file
git commit-m“msg”

如果您有一些从未添加到git tracking的文件,您仍然需要执行
git add file

“git commit-a”命令是两步流程的快捷方式。之后 如果您修改了回购协议已经知道的文件,您仍然需要 告诉回购方,“嘿!我想把这个添加到暂存文件中,然后 最终提交给您。”这是通过发出“git add”来完成的 指挥部。“git commit-a”是将文件暂存并在一个文件中提交 步骤


来源:

顾名思义,“未跟踪文件”是指git未跟踪的文件。它们不在您的暂存区域中,也不是以前任何提交的一部分。如果您希望对它们进行版本控制(或由git管理),可以通过使用“git add”告诉“git”来实现。查看本书中的这一章,它使用了一个很好的视觉效果来提供有关记录git repo更改的良好解释,并解释术语“跟踪”和“未跟踪”。

如果其他人有同样的问题,请尝试运行

git添加。
这将添加当前目录中要跟踪的所有文件(包括未跟踪的文件),然后使用

git commit-a
提交所有跟踪文件

正如@Pacerier所建议的,一个做同样事情的班轮是


git add-A

您应该在命令行中键入

git add --all
这将提交所有未跟踪的文件

编辑:

暂存文件后,它们已准备好提交,因此下一个命令应该是

git commit -am "Your commit message"
  • 首先,您需要添加所有未跟踪的文件。使用以下命令行:

    git add*

  • 然后使用以下命令行提交:

    git提交-a


  • 如果您在处理未跟踪的文件时遇到问题,此三行脚本将对您有所帮助

    git rm -r --cached .
    git add -A
    git commit -am 'fix'
    

    然后只需
    git push

    确保您位于本地git中的正确目录(存储库主文件夹),以便在提交或添加文件之前,它可以找到.git文件夹配置。

    (使用“git add…”包含在将提交的内容中)
    zengr这是不必要的,因为git commit-a将提交对已跟踪文件的所有更改。当文件到现在为止从未添加过时,这是必要的。从
    -a
    的文档中:告诉命令自动暂存已修改和删除的文件,但未告知git的新文件不受影响。为什么说git“警告”你?在我看来,“untracked”files消息是信息性的。这是为了让你看看这些文件是否需要管理和相应的行动。@sateesh好吧,不管你想叫它什么,我仍然不认为这真的有帮助。这是如何提供信息的?我该怎么办?你读过我在“编辑”部分的帖子了吗?我在那里写道,除了上面列出的文件外,其他任何文件都没有修改?如果你觉得这很有用,那就相当于我告诉你,在没有什么可担心的情况下,你的回购树上的任何随机文件夹都不会被跟踪。
    git commit-a
    将提交所有跟踪的文件,而不是跟踪未跟踪的文件
    git add。
    将跟踪当前目录中未跟踪的文件
    git add-a
    将跟踪所有未跟踪的文件。@matteo它是
    git add-a
    ,而不是
    git commit-a
    。据我所知,没有一个开关可以传递到
    git commit
    ,它包含未跟踪的文件。-a现在似乎不推荐使用。还是谢谢你。:)要进一步了解这些命令,可以检查:但是,正如您所说的git commit-a=git add.+git commit为什么不自动将文件添加到跟踪区域??。@Johnny:
    git commit-a
    不等于
    git add.
    +
    git commit
    git add
    步骤只添加在您的
    git status
    中列出为已修改的文件,而不是当前目录中的所有文件。是的,我今天发现了!这将暂存所有文件,而不是提交它们。你仍然需要分开做。这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。-这对我来说很有用,因为我需要取消跟踪我现在忽略的跟踪文件。+1作为progit的参考。请将URL更新为v2和v2
    git rm -r --cached .
    git add -A
    git commit -am 'fix'