108

当我做 agit 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 commit 消息中未跟踪的警告是否不必要

4

7 回答 7

118

对于其他有同样问题的人,请尝试运行

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

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

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

git add -A

于 2014-03-25T22:26:08.813 回答
32

git commit -am "msg"git add file和不同git commit -m "msg"

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

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

来源:“git commit -a”和“git add”

于 2011-12-12T06:40:29.153 回答
17

您应该在命令行中输入

git add --all

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

编辑:

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

git commit -am "Your commit message"
于 2016-05-16T07:11:45.257 回答
13

如果您在处理未跟踪的文件时遇到问题,这个 3 行脚本将为您提供帮助。

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

然后就git push

于 2019-04-28T07:42:33.333 回答
8
  1. 首先,您需要添加所有未跟踪的文件。使用这个命令行:

    git add *

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

    git commit -a

于 2017-04-03T02:52:48.630 回答
5

顾名思义,“未跟踪文件”是 git 未跟踪的文件。它们不在您的暂存区,也不是任何先前提交的一部分。如果您希望它们被版本化(或由 git 管理),您可以通过使用 'git add' 告诉 'git' 来实现。查看Progit book中的“ Recording Changes to the Repository ”这一章,它使用了一个很好的视觉效果来提供关于记录 git repo 更改以及解释术语“已跟踪”和“未跟踪”的良好解释。

于 2011-12-12T06:53:59.497 回答
0

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

于 2019-09-04T02:08:05.180 回答