我做了一个git commit -m "message",像这样:

> git commit -m "save arezzo files"
# On branch master
# 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:   arezzo.txt
#       modified:   arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")

但是之后,当我做git状态时,它显示了相同的修改文件:

> git status
# On branch master
# 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:   arezzo.txt
#       modified:   arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")

我做错了什么?


当前回答

发生这种情况的原因是,在Git跟踪的另一个文件夹中有一个已经被Git跟踪的文件夹。例如,我有一个项目,我给它添加了一个子文件夹。在我将其中一个放入另一个之前,Git已经跟踪了它们。为了停止跟踪里面的文件,找到它并删除Git文件:

rm -rf .git

在我的例子中,我有一个WordPress应用程序,我在里面添加的文件夹是一个主题。所以我必须转到主题根目录,删除Git文件,这样整个项目就会被父级WordPress应用程序跟踪。

其他回答

您没有添加更改。或者专门添加它们通过

git add filename1 filename2

或者添加所有更改(从项目的根路径)

git add .

或者在承诺时使用简写“-a”:

git commit -a -m "message".

我有一个问题,我在做提交-修改后,甚至发布了一个git添加。但它还是不能工作。原来我做了一些.vimrc自定义,我的编辑器不能正常工作。修复这些错误以使vim返回正确的代码就解决了这个问题。

如果你有一个子文件夹,它是从其他git-Repository中克隆出来的,首先你必须删除$。get $ file from child-Repository Rm -rf .git 然后你可以切换到父文件夹,使用git add -A。

我把Git源代码控制下的一个子项目复制到另一个项目中,忘记删除. Git文件夹。当我去提交时,我得到了与上面相同的消息,直到我删除了。git文件夹才能清除它。

这有点傻,但值得检查一下你的文件夹下是否有一个不能提交的。git文件夹。

我发现这个问题出现时,我已经做了一个git添加。在下面我的.gitignore文件所在的子目录中(可以说是我的存储库的主目录)。尝试将目录更改到最上面的目录并运行git add。后面跟着git commit -m“我的提交消息”。