我遇到无法将文件添加到存储库的问题。
我在Windows上的Aptana Studio中使用GIT进行一些Ruby开发。
我设法将一些文件推送到GitHub,但是在此之后,一切都停止了工作。例如,我的主目录中有一个新的子文件夹,其中包含2个ruby文件。如果我叫“ git add。”,然后叫“ git status”,它总是说“工作目录干净”,没有任何可提交的内容。
我已经尝试过“ git add folder / myfile.rb”,但还是没有。
任何人有什么主意我可以尝试吗?
我遇到无法将文件添加到存储库的问题。
我在Windows上的Aptana Studio中使用GIT进行一些Ruby开发。
我设法将一些文件推送到GitHub,但是在此之后,一切都停止了工作。例如,我的主目录中有一个新的子文件夹,其中包含2个ruby文件。如果我叫“ git add。”,然后叫“ git status”,它总是说“工作目录干净”,没有任何可提交的内容。
我已经尝试过“ git add folder / myfile.rb”,但还是没有。
任何人有什么主意我可以尝试吗?
Answers:
我发现自己和发布者处于类似的情况:
如果我叫“ git add。”,然后叫“ git status”,它总是说“工作目录干净”,没有任何可提交的内容。
但是我有一个不同于这里的解决方案。自从我第一次来这个以来,我希望可以节省一些时间。
从上面的答案以及我在其他地方看到的内容,通常可以解决此问题:
.gitignore和中的排除规则.git/info/exclude.gitkeep占位符的空白文件,以便git跟踪文件夹。就我而言,我最初试图在现有存储库周围创建一个git存储库(不知道它在那里)。.git不久前,我已经从该子仓库中删除了该文件夹,但是我没有意识到为时已晚,并且git已经将其作为子模块进行了跟踪。您可以在此处详细了解它们的行为方式以及如何删除它们,但是
git rm --cached path_to_submodule。git rm --cached name_of_former_submodule就可以自动获取路径。
为其他用户添加可能的解决方案:
确保您没有在Windows中更改文件夹名称的大小写:
我有一个类似的问题,其中一个名为SetupGit的控件文件夹托管在GitHub上,所有开发都在Windows计算机上完成。
有时我将文件夹更改为setup(小写S)。从那时起,当我将新文件添加到setup文件夹时,它们存储在该setup文件夹中,而不是该Setup文件夹中,但是我想是因为我在Windows计算机上进行开发Setup,因此git / github中的现有文件夹未更改为setup。
结果是我setup在GitHub中看不到所有文件。我怀疑如果我在* nix机器上克隆项目,我会看到两个文件夹,Setup和setup。
因此,请确保您没有更改Windows计算机上包含文件夹的大小写,如果您有的话,我建议您:
setup-tempgit add -Agit commit -m "Whatever"git add -Agit commit -m "Whatever"如果文件被排除,.gitignore并且您仍要添加它,则可以通过以下方式强制使用:
git add -f path/to/file.ext
.gitignore很不确定为什么!),这解决了我的问题!
仔细检查您的.gitignore文件,以确保Git能够看到该文件。同样,有一个文件.git/info/exclude从文件中“排除”文件/目录,就像.gitignore文件一样。
我只是遇到了这个问题,问题是我在目录中而不是顶级目录中。一旦我移到最高级别,它就起作用了。
git add ..或进行任何必要的设置以达到我的更改所依据的水平,并且它也将起作用。这只是一个棘手的问题(我的用户错误)。
标准程序如何:
git add folder
git commit
这将使用一个命令添加文件夹及其所有文件。
请注意,git无法存储空文件夹。
如果提交不起作用,那么您应该检查的第一个地方可能是.gitignore。
我仍然是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 submodule add vscode-java
提示:如果错误添加了此路径,则可以使用git rm --cached vscode-java将其从索引中删除
有关更多信息,请参见“ git帮助子模块”。
为了解决这个问题,我的恢复git add --all用git rm --cached -r -f -- "d:\Stack Overflow\vscode_git\vscode-java" rm 'vscode-java':
然后,只需打开实际的repo文件夹,
git再次按预期工作。当然,可以删除父文件夹的“ .git”文件夹,然后:
我遇到了同样的问题,这是因为有一个程序在使用某些文件,而git抛出错误,在这种情况下Visual Studio已锁定该文件。
在这种情况下,请检查全局.gitignore文件中的规则,并确保您的文件夹不适合这些规则。
这是我的工作方式:
我开始于
git init
目录中包含我要包括的所有文件/文件夹。
我跑了
git add --all
git add .
git commit -m "uploaded fixed sources 3"
git push origin master
然后
我在原点之外创建了另一个目录,移至该目录,然后使用github页面上的http://../../.git文件克隆了现有的git repo。
一旦它克隆了源文件(除了readme.md就是其他文件),我将所有文件从旧目录复制到新目录中,
cp -rf ../../* .
然后,我再次添加,然后提交并推送了这些编辑。
git add --all
git add .
git commit -m "uploaded fixed sources 4"
git push origin master
不要问我为什么,但是这次他们上传到github站点并显示为您可以在.zip压缩包中访问的文件。