我遇到无法将文件添加到存储库的问题。
我在Windows上使用GIT,在Aptana Studio中进行一些Ruby开发。
我已经设法将一些文件推送到GitHub,但在此之后,一切都停止了工作。我的主目录中有一个新的子文件夹,里面有2个ruby文件。如果我调用“git add。”,然后调用“git status”并继续说“工作目录清理”并且没有任何提交。
我尝试过“git add folder / myfile.rb”,但仍然没有。
任何人都知道我可以尝试什么?
答案 0 :(得分:117)
我发现自己处于与海报类似的情况:
如果我打电话给“git add。”,然后是“git status”,它会继续说 “工作目录清理”并没有任何提交。
但我有一个不同于此处的解决方案。自从我第一次来到这里,我希望能有一些时间来拯救他人。
从上面的答案以及我在其他地方看到的情况来看,这个问题的常见修复方法是:
.gitignore
和.git/info/exclude
.gitkeep
的空白文件放置为占位符,以便git跟踪该文件夹。在我的情况下,我最初试图围绕现有的仓库创建一个git仓库(不知道它在那里)。我刚刚从这个子仓库中删除了.git
文件夹,但我没有意识到为时已晚,git已经将其作为子模块进行跟踪。您可以详细了解这些行为以及如何删除它们here,但
git rm --cached path_to_submodule
。答案 1 :(得分:20)
为其他用户添加可能的解决方案:
确保您没有更改Windows中文件夹名称的大小写:
我遇到了类似的问题,其中一个名为Setup
的文件夹由Git控制并托管在GitHub上,所有开发都是在Windows机器上完成的。
在某些时候,我将文件夹更改为setup
(小写字母S)。从那时起,当我将新文件添加到安装文件夹时,它们存储在setup
文件夹而不是Setup
文件夹中,但我猜是因为我在Windows机器上开发了现有的{{1 git / github中的文件夹未更改为Setup
。
结果是我无法在GitHub中的setup
中看到所有文件。我怀疑如果我在* nix机器上克隆项目,我会看到两个文件夹,setup
和Setup
。
因此,请确保您没有更改Windows计算机上包含文件夹的大小写,如果您有,那么我建议:
setup
setup-temp
git add -A
git commit -m "Whatever"
git add -A
答案 2 :(得分:18)
如果文件被.gitignore
排除,并且您想要添加它,则可以强制执行:
git add -f path/to/file.ext
答案 3 :(得分:13)
仔细检查您的.gitignore
文件,确保Git能够看到该文件。同样,有一个文件.git/info/exclude
“排除”项目中的文件/目录,就像.gitignore
文件一样。
答案 4 :(得分:11)
很奇怪,但是我整夜都和git一起战斗来添加文件。原来它已经添加了。由于我的帐户无法访问该文件,并且我的IDE未通过SSH报告此错误,因此Git没有收到我的更改,因为更改未被保存。
简而言之,请检查以确保您尚未将其添加到存储库中。
答案 5 :(得分:8)
最好的办法是复制你的文件夹。删除原始。从github克隆项目,将新文件复制到新的克隆文件夹,然后重试。
答案 6 :(得分:3)
我在文件夹中的第一个程序遇到此问题。我做了“git add”然后“git commit”。 “git status”给出了所描述的错误,即“没有提交,工作目录清理”
我最终从程序文件夹中删除了.git文件。然后我做了一个新的git init,git add和git commit,它起作用了。
答案 7 :(得分:3)
标准程序如何:
git add folder
git commit
这将使用一个命令添加文件夹及其所有文件 请注意,git无法存储空文件夹。
如果提交不起作用,您应该检查的第一个地方可能是.gitignore
。
答案 8 :(得分:2)
在我的情况下,问题是启用了SafeCrLf选项。我在窗户上有乌龟git。禁用该选项后,添加文件不再是问题。
答案 9 :(得分:2)
Here您可以找到同一问题的答案:
基本上在这种情况下问题是global_git ignore
答案 10 :(得分:2)
来自我的愚蠢解决方案,但我认为它并没有添加和推送新文件,因为github.com没有显示我刚刚推送的文件。我忘记了我添加的文件位于不同的分支上。文件推得很好。我不得不从我的主分支切换到github中的新分支来查看它们。在那一个上失去了几分钟:))
答案 11 :(得分:1)
将第一个文件添加到从 GitHub 克隆的空存储库是不可能的(对我而言)。您需要按照GitHub建议创建的README链接。在在线创建第一个文件之后,您可以使用git正常工作。
这发生在2016年11月17日。
答案 12 :(得分:1)
您可以递归删除git初始化的仓库$cd repo added $git rm -rf git
您可以创建一个单独的分支,并将子模块链接到master分支。子模块上的文档非常有用文档[https://git-scm.com/book/zh/v2/Git-Tools-Submodules]>
另请参阅[https://stackoverflow.com/questions/36236484/maintaining-a-git-repo-inside-another-git-repo]中的一些解决方案
答案 13 :(得分:1)
我仍然是git的初学者,这只是我犯的一个愚蠢错误,一句话很长。我不在@gaoagong报告的子文件夹中,而是在父文件夹中。奇怪的是,我没有从答案中得到想法,而是当我测试git add --all
时出现了这个想法,请参见下面的详细内容。
详细示例。 实际回购:
我在父级别上错误打开的“父”文件夹(在我的情况下为vscode_git):
我已经克隆了一个存储库,但是我在该存储库上方有一个父文件夹,而是打开了它,然后我尝试使用git add 'd:\Stack Overflow\vscode_git\vscode-java\.github\ISSUE_TEMPLATE.md'
添加该子文件夹的存储库文件,该文件什么也不做,没有警告消息,随后git status
说:
未添加任何内容来提交但存在未跟踪的文件(使用“ git add”进行跟踪)
运行git add --all
给了我黄色的笔记:
警告:添加嵌入式git存储库:vscode-java嵌入式存储库,并且不知道如何获取它。
提示:如果要添加子模块,请使用: git子模块添加vscode-java
提示:如果您错误地添加了此路径,则可以使用以下命令将其从索引中删除 git rm-缓存vscode-java
有关更多信息,请参见“ git帮助子模块”。git
要解决此问题,我将git add --all
还原为git rm --cached -r -f -- "d:\Stack Overflow\vscode_git\vscode-java" rm 'vscode-java'
:
然后,只需打开实际的repo文件夹,
git再次按预期工作。当然可以删除父文件夹的“ .git”文件夹,然后:
答案 14 :(得分:0)
我想如果您在 git bash 中注销前一个项目,然后尝试将这些文件添加到新项目中。它会正常工作
答案 15 :(得分:0)
这就是我的工作方式:
我从...开始
client.helpers.bulk()
包含我要包含的所有文件/文件夹的目录内。
我跑了
git init
之后
我在原点之外创建了另一个目录,移入该目录,然后使用github页面上设置的http://../../.git文件克隆了现有的git repo。 / p>
一旦它克隆了源文件(除了readme.md之外),我就使用
将所有文件从旧目录复制到了新目录中。
git add --all
git add .
git commit -m "uploaded fixed sources 3"
git push origin master
然后我再次添加,然后提交并推送这些编辑。
cp -rf ../../* .
不要问我为什么,但是这次他们上传到github网站,并显示为文件,您可以在.zip压缩包中访问。
答案 16 :(得分:0)
在这种情况下,请检查全局.gitignore文件中的规则,并确保您的文件夹不适合这些规则。
答案 17 :(得分:0)
当我在Uppercase/Lowercase
之间重命名文件时,发生了类似的事情。因此,临时文件重命名可能会解决问题。
答案 18 :(得分:0)
我已经尝试了以上所有方法,但是没有任何效果。后来,我以 admin 的身份运行命令提示符,然后重试了所有阶段,即 暂存->提交->远程添加->推送。 它像魔术一样工作。这些更改反映在所需的远程存储库中。
希望它会有所帮助:)保持冷静并保持编码。
P.S。我是新手,请尝试从错误中学习。
答案 19 :(得分:0)
问题 git不会添加更改的文件。 使用git bash,我更改了用双引号分隔文件夹名称的文件夹。 请正确显示文件夹内容,但是git不会添加更改的文件。
解决方案 我使用单引号分隔了文件夹名称。
例如 CD“文件夹名称” git状态 没什么可做的,工作中的树很干净 CD .. ls '文件夹名称' CD'文件夹名称' git状态 修改:ModifiedFileName.bat
答案 20 :(得分:0)
我有一个类似的问题。
问题是在Windows上的索引中,文件的添加情况与未暂存区域中的情况不同。例如,在索引中,文件名为xx.txt
,在未暂存区域中,文件名为Xx.txt
。
从索引(xx.txt
)中删除了大小写不正确的文件。然后,我就可以使用正确的大小写(Xx.txt
)添加文件了。
答案 21 :(得分:0)
我遇到一个问题,其中一个文件夹中的文件不会添加到Github源代码管理中。为了解决这个问题,我删除了在该文件夹下创建的.git文件夹。
答案 22 :(得分:0)
我遇到了同样的问题,这是因为有一个程序使用了某个文件,而在这种情况下Visual Studio锁定了该文件,git抛出了一个错误。
答案 23 :(得分:0)
我在Visual Studio上遇到此问题,对我有用的是: 1-右键单击git无法识别的添加文件。 2-选择“将排除的文件添加到源代码管理”
答案 24 :(得分:0)
我最近在运行Windows 7的计算机上遇到此问题。我正在使用git命令窗口界面。解决方案是,在执行git add时,请注意文件名和目录名是否区分大小写。尽管当大小写与Windows文件系统文件和目录名称的大小写不完全匹配时git不会抱怨,但是git也不会添加文件。没有什么可提交的。一旦我输入了完全正确的大小写文件名,它们就会被添加并列在要按我的意图提交的更改下。
答案 25 :(得分:0)
我从SiteGround Git克隆到我的Mac上的一个回购源也遇到了同样的问题。新克隆的存储库包含git status
说需要添加到提交中的已更改文件的列表,但是尝试添加或检出它们中的任何一个根本不起作用。
由于某些原因,文件名中的大小写有所更改(例如.jpg-> .JPG)。解决方案是简单地git mv
将操作系统使用的文件名更改为git使用的名称,例如:
git mv File_That_Wont_Add.txt File_THAT_WONT_Add.txt
答案 26 :(得分:0)
我知道这是一个非常老的问题,但是我也知道它可能也会发生在某人身上,原来我正在使用一个名为AUX.JS的文件,并且这是Windows的保留文件名,这产生了以下错误
致命:无法统计'src / hoc / Aux.js':没有此类文件或目录
因此您可以删除文件或重命名文件,然后它将起作用。
最后的结论,除了所有其他有效答案外,如果您在Windows机器中注意“ git add”命令的输出,它还可以提供其他信息。
答案 27 :(得分:0)
另一个问题可能是文件权限。
尝试发行:
HTTP 404
答案 28 :(得分:0)
我搜索了一会儿,最后发现我已经阻止了SSH端口,这导致git add命令停止工作。我最后使用https使用以下命令更改原点:git remote set-url origin [url-to-git-repo]