Git:未添加任何内容来提交但存在未跟踪的文件


77

我是Git的新手,并且是第一次使用。如果有人可以帮助我,我将不胜感激。我试着在论坛上找到答案,但是有很多命令要问,不确定要使用哪个命令。

在生产服务器上,如果执行git pull,则会出现以下错误:

未跟踪的文件:(使用“ git add ...”包括将提交的文件)

Optimization/language/languageUpdate.php
email_test.php
nothing added to commit but untracked files present (use "git add" to track)
Please move or remove them before you can merge.

我不太确定如何使其工作。如果我删除它们,将从哪里删除它。感谢您的回复。

Answers:


70

您在这里有两个选择。您可以未跟踪的文件添加到您的Git存储库中(如警告消息所示),或者如果您希望Git忽略它们,则可以这些文件添加到您的.gitignore文件中。

要添加文件,请使用git add

git add Optimization/language/languageUpdate.php
git add email_test.php

要忽略文件,请将以下行添加到中.gitignore

/Optimization/language/languageUpdate.php
/email_test.php

任一种选择均应使git pull以后成功。


好的,如果我添加它们,它将添加到服务器还是本地?
user4943236

棘手的问题。如果使用git add,那么Git存储库将跟踪文件。这意味着它们将出现在本地远程的任何分支中。如果您不希望发生这种情况,请使用该.gitignore选项。如果您确实不需要这些文件,则可以将其删除。
Tim Biegeleisen 2015年

谢谢,这样做之后,它说:错误:您对以下文件的本地更改将被merge覆盖:Optimization / language / update.php请在合并之前提交更改或存储它们。
user4943236

您添加了一个新文件,Git将其检测为更改。因此,您将必须通过执行此操作git commit -m 'Added update PHP script'
Tim Biegeleisen 2015年

1
我个人喜欢这个站点,尽管那里有很多教程。精通Git不仅仅是选择正确的教程,还只是获得使用它的经验。您今天已经做到了:-)
Tim Biegeleisen

61

另外,除了手动添加每个文件之外,我们还可以执行以下操作:

git add --all

要么

git add -A

这还将删除所有不存在或未删除的文件(当前工作目录中已跟踪的文件现在不存在)。

如果您只想添加已跟踪并已更改的文件,则需要

git add -u

git add .&和有git add --all什么区别?


我尝试过同样的事情,但显示“警告:无法访问<path>:权限被拒绝” ....
vishwaraj

有人认为这是一种不好的做法,因为您刚刚添加了哪些文件?你不知道 您的Bash命令历史记录永远不会作为您操作的有用日志。你会盲目地在你的.gitignore的有效性为依托,你可能会不小心犯构建工件,如Makefile文件时,他们实际上是自动生成的(如在一些项目的情况下)
斯科特私法

@Crossfit_and_Beer我有点同意您的看法,但是如果您的gitignore损坏了,则主要是要解决此问题,而不是在使用损坏的gitignore时不方便地添加每个文件或从缓存中删除每个文件。git status是您的朋友,请仔细检查。
Viv

或者您可以git add .确保添加.
Eoin

14

请按照此过程

首先安装git bash并在git上创建一个存储库

1)转到要在其中推送文件的工作目录,并通过以下方式创建.git文件夹

$ git init

2)将文件添加到新的本地存储库中。

$ git add .

注意:在同一个文件夹中时,如果放置路径或不放置会产生歧义的点,请确保在命令后放置点

3)提交您在本地存储库中暂存的文件。

$ git commit -m "First commit"**

4)之后转到git仓库并复制远程URL

$ git remote add origin *remote repository URL

5)

$ git remote -v

注意:这将要求user.email和user.name只是按照配置

6)

$ git push origin master

这会将整个提交的代码推送到存储库中的FILE.git

我认为我们做到了


1
这解决了我的问题,我使用它git reset --hard master来重置“扭曲进度”,并执行此解决方案,并且它起作用了。谢谢!!
Michael Harley

0

遵循所有步骤。

步骤1:初始化git

$ git init

步骤2:检查文件是否存在。

$git ls

步骤3:添加文件

$git add filename

步骤4:添加评论以显示

$git commit -m "your comment"

第5步:链接到您的存储库

$git remote add origin  "copy repository link  and paste here"

步骤6:推动Git

$ git push -u origin master

0

如果您已经尝试使用git add .命令添加所有未跟踪的文件,请确保您不在根项目的子文件夹下。

git add . 将所有文件暂存在当前子文件夹下。


0

万一有人在乎错误nothing added to commit but untracked files present (use "git add" to track)而不是在乎Please move or remove them before you can merge.。您可能会在Git上看到答案-是否添加文件?

在这里,您至少找到2个很好的候选问题的候选者:您位于子文件夹或父文件夹中,但不在实际的repo文件夹中。如果您在目录中的级别太高,则肯定会引发该消息“没有添加任何内容……”,有关详细信息,请参见链接中的我的答案。我不知道当您在子文件夹中时是否会出现相同的消息,但这很有可能。这可能适合您的解释。


-1

仅以下命令,每个文件都应添加

git add .

提交所有使用的文件

git commit

也许最初的发布者确实不希望git存储库中的每个文件。
stdunbar
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.