Git commit -a“未跟踪文件”?

时间:2011-12-12 06:12:38

标签: git

当我执行git commit -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 -a之后发生的事情。

# On branch master
nothing to commit (working directory clean)

正如您所看到的,除了那些已应用更改的文件之外,没有其他内容。

我的问题应该改写如下:为什么当跟踪此提交中的所有更改时,git会警告我未跟踪的文件?

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

7 个答案:

答案 0 :(得分:79)

对于遇到相同问题的其他人,请尝试运行

git add . 这将添加当前目录的所有文件以进行跟踪(包括未跟踪),然后使用

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

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

git add -A

答案 1 :(得分:27)

git commit -am "msg"git add filegit commit -m "msg"

不同

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

  

“git commit -a”命令是两步过程的快捷方式。后   你修改了一个已经由repo知道的文件,你仍然需要   告诉回购,“嘿!我想将此添加到暂存文件和   最终把它交给你。“这是通过发出”git add“来完成的。   命令。 “git commit -a”正在暂存文件并将其提交到一个文件中   步骤

来源:"git commit -a" and "git add"

答案 2 :(得分:7)

  1. 首先,您需要添加所有未跟踪的文件。使用此命令行:

    class Dog : public Pet { /* other class members */ virtual void display(); // This virtual function is implemented in Dog.cpp. };

  2. 然后使用此命令行提交:

    git add *

答案 3 :(得分:6)

您应该输入命令行

git add --all

这将提交所有未跟踪的文件

答案 4 :(得分:1)

顾名思义,“未跟踪文件”是git未跟踪的文件。它们不在您的临时区域,并且不属于任何先前的提交。如果你想让它们被版本化(或由git管理)你可以通过使用'git add'来告诉'git'。请查看Recording Changes to the Repository一书中的Progit一章,该书使用了一个很好的视觉效果来提供关于记录git repo变化的良好解释,并解释术语'已跟踪'和'未跟踪'

答案 5 :(得分:0)

如果您遇到未跟踪文件的问题,此3行脚本将为您提供帮助。

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

然后只git push

答案 6 :(得分:0)

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