git添加-&燃气轮机;仍然是";“无需承诺”;使用新文件
我正在努力使用Git,我似乎无法添加我的文件。我运行了git添加-&燃气轮机;仍然是";“无需承诺”;使用新文件,git,add,init,Git,Add,Init,我正在努力使用Git,我似乎无法添加我的文件。我运行了ls以显示文件在当前目录中,然后运行了git add.然后运行了git status,其中显示“无需提交” 您的命令看起来是正确的(我已经用这种方式做过很多次了) 初试 git add --all 然后尝试git status。我认为这不会解决问题,但下一步值得一试 下一步,如果您有一个.gitignore文件,请尝试查看它(在您执行的顶层git init) 删除所有导致文件被忽略的列表。例如,是否有一个条目只有* 下一次尝试: git a
ls
以显示文件在当前目录中,然后运行了git add.
然后运行了git status
,其中显示“无需提交”
您的命令看起来是正确的(我已经用这种方式做过很多次了) 初试
git add --all
然后尝试git status
。我认为这不会解决问题,但下一步值得一试
下一步,如果您有一个.gitignore文件,请尝试查看它(在您执行的顶层git init
)
删除所有导致文件被忽略的列表。例如,是否有一个条目只有*
下一次尝试:
git add --force
然后尝试git status
如果这些都不起作用,我注意到您在gitinit
中的输出是“重新初始化”而不是“初始化”,因此可能会出现一些问题。如果您刚刚初始化了它,并且不介意丢失历史记录,请从删除.git目录开始:
rm -rf .git
然后重新执行上面相同的命令。如果这不起作用,则需要有关设置的更多信息。例如,您可能有一个需要编辑的全局.gitignore文件:
~/.gitignore\u global
。在我的例子中,我通过隐藏并立即应用隐藏来解决它:
git stash
git stash apply
这一顺序将使回购协议与以前一模一样。在此之后,执行git add[file]
操作正常
(在suse linux下使用git版本1.7.12.4)由于我多次遇到类似问题,我想补充一点,您应该再次检查您是否正在尝试从项目的根文件夹添加,并且当前是否在项目的根文件夹中,以防其他人遇到此问题,git不添加目录的另一个原因是该目录中可能有一个
.git
目录
在这种情况下,git希望您将其视为。否则,只需删除该.git
(在目录中,而不是根目录中),然后重试
方便的命令:
find . -name '.git' -type d
补充quux00的
.gitignore
答案,我发现由于构建经理(Maven)的临时“构建”目录,我的目录没有被跟踪。Maven在构建我的程序时将“build”添加到.gitignore
,因此我自己的目录(巧合地命名为“build”)没有被跟踪。通过重命名我的“build”目录解决了这个问题。在我的例子中,是由于在当前git目录中嵌套了git目录:
A1.java
B1.java
.git
someDirectory
C1.java
.git
出于某种原因,当我在谷歌驱动器文件流中的目录中有一段时间的repo时,Git对我来说工作得很好。昨天,我遇到了同样的问题
git-add。
不会报告要提交的内容,但是git-add
工作正常。我将目录移动到本地硬盘(从Google drive文件流中删除),然后git add.
获取了我所有的待定更改。请注意,当目录仍在Google Drive文件流中时,将目录设置为“脱机可用”没有任何效果。我刚才遇到过这种情况。就我而言,这是文件(小写/大写)问题。
事情是这样的-我修改了NuGet.config
文件,之后,Visual Studio出于某种原因重新创建了此文件,但名称为NuGet.config
(请注意,不是.config
,而是.config
)
我发现的最简单的修复方法是将该文件删除(实际上是移动)到另一个位置,然后在没有该文件的情况下提交。git status
消息被删除
[deleted] NuGet.config
[deleted] NuGet.Config
然后我把我的文件复制回repo目录并提交,一切都按照一开始的样子进行
长话短说,在我的例子中是文件命名策略冲突。在Windows中,文件名中的大小写字符并不重要,但对于源于UNIX的
git
命令do.我在向现有初始化的git文件夹添加新文件时遇到了类似问题git add
不起作用。对我有效的是GitAdd。我在mac上使用Bash5和Git2.25。我希望这也能帮助其他人…干杯。我发现了一个完全不同的原因,这是很了不起的。
如果您不在Windows中,这可能不会影响您。
如果您在未老化的更改中看到您的文件,.gitignore永远不会是您的问题。
仔细检查一些东西。您的文件是否同时处于暂存和未暂存更改中
git status
Staged changes
modified: source/abc.Ui.Tests
modified: source/def.Ui.Tests/def.UI.Tests.csproj
Unstaged changes
modified: source/abc.UI.Tests
modified: source/def.UI.Tests/def.UI.Tests.csproj
看到区别了吗?很难发现。Windows不关心大小写,但git bash关心大小写
git rm -r source/abc.Ui.Tests
git reset source/abc.UI.Tests
git commit -m "Fixing capitalization"
git checkout source/abc.UI.Tests
git status
working clean tree
请逐个尝试添加git
如果第一个文件夹已暂存。尝试添加下一个文件夹。在我的情况下,我得到一个文件包含一些问题
如果在某些文件中出现问题时直接运行
git add.
,git将忽略所有问题。不是专家,但我就是这么想的:)这似乎有点愚蠢,但可能会节省一些时间:检查文件是否已被跟踪并且没有修改:git ls文件--错误取消匹配
。如果跟踪文件,则此命令不应显示任何错误
我只是花了几分钟来弄明白这个…Fanstatic!谢谢我删除了.git目录,然后执行了git init、git add。对我来说,git add--所有这些都有效。。有什么问题吗/这对我有用。我所做的唯一更改是
gitadd--force
.git add--最新版本的all for me—2018年8月—适用于我。git添加--但武力并没有起作用。如果我在gitignore中有一个不想删除的文件或路径,但我想提交该文件+1,这是个好主意。问问题的人往往不在问题的根源。有趣的是,在本例中,OP没有显示cd
ing进入项目目录
[deleted] NuGet.config
[deleted] NuGet.Config
git status
Staged changes
modified: source/abc.Ui.Tests
modified: source/def.Ui.Tests/def.UI.Tests.csproj
Unstaged changes
modified: source/abc.UI.Tests
modified: source/def.UI.Tests/def.UI.Tests.csproj
git rm -r source/abc.Ui.Tests
git reset source/abc.UI.Tests
git commit -m "Fixing capitalization"
git checkout source/abc.UI.Tests
git status
working clean tree