在尝试远程添加Git仓库时收到“致命的:不是git仓库”
我正在按照本教程向Git自我介绍:
- 让jekyll在almostfreespeech.net上运行
一切工作正常,直到回购被添加到我的本地机器的部分:
git remote add nfsn ssh://USERNAME@NFSNSERVER/home/private/git/REPONAME.git
(用正确的名称replaceUSERNAME,NFSNSERVER和REPOAME后)我收到错误:
fatal: Not a git repository (or any of the parent directories): .git
你能帮我渡过这一步吗?
你有没有初始化一个本地的Git仓库,这个远程应该添加到哪里?
你的本地目录是否有.git
文件夹?
尝试git init
。
如果在当前工作目录不在Git存储库中时尝试使用Git命令,则会出现此错误。 这是因为,默认情况下,Git会查找一个.git
版本库目录(位于项目根目录?),正如我回答“Git不会显示日志,除非我在项目目录中”所指出的那样:
根据官方的Linux Kernel Git文档 ,
GIT_DIR
情况下,GIT_DIR
是[环境variables]设置为查找.git
目录(在当前工作目录中?):如果设置了
GIT_DIR
环境variables,那么它指定了一个使用的path,而不是默认的.git
作为存储库的基础。
你要么需要cd
到版本库/工作拷贝,要么你没有初始化或克隆版本库,在这种情况下,你需要在你想要放置回购的目录中初始化一个回购:
git init
或克隆存储库
git clone <remote-url> cd <repository>
注意:这不是OP的常见问题的答案,这是OP的问题,但对这个错误消息可能出现的不同的问题。 我不想为了写下这个答案而提出新的问题,告诉我是否应该这样做:P
我遇到了这种情况,很可能是由于某些特定的崩溃导致的,即使.git
确实存在,我也会得到这个错误。
smar@aaeru ~/P/Nominatim> git status fatal: Not a git repository (or any of the parent directories): .git smar@aaeru ~/P/Nominatim [128]> ls .git COMMIT_EDITMSG config* FETCH_HEAD HEAD index logs/ modules/ objects/ ORIG_HEAD packed-refs
由于我没有任何需要保存的东西,我只是用虚假的方式去做,而且…
smar@aaeru ~/P/Nominatim [128]> git init Reinitialized existing Git repository in /home/smar/Projektit/Nominatim/.git/
仍然不工作,例如git log
返回fatal: bad default revision 'HEAD'
。 远程在那里虽然,所以我做了git fetch --all
,然后只是git reset --hard origin/master
让自己回到以前的状态回购。
请注意,如果有一些未提交的更改,可以使用git status
, git diff
等等来查看它们。 然后只是在运行重置之前, git diff yourfile > patch
。
至less对我来说reflog( git reflog
)完全消失了。 因此,如果您进行重置,并且您想要阻止某些更改,我不确定您是否可以在重置后重新取回。 因此,请确保您所做的所有更改都不会丢失备份,最终只需在尝试之前复制克隆即可。
在命令行/ CLI中,如果当前目录不是存储库,将会出现此错误。 所以,你必须先把CD放入回购。
在我移动文件系统上的git项目的位置后,发生了这个问题。 当我运行一些git命令时,发生错误,例如:
$ git status fatal: Not a git repository: /home/rospasta/path_old/gitprojecta/.git/modules/.travis
我在/home/rospasta/path_old/gitprojecta/.travis/.git
find了项目的旧位置的绝对path。 手动更新新位置的path解决了我的问题。
所以我的问题可能会或可能不是一个混帐问题,但HTH。
可能太晚了,但另一个解决scheme,可能会帮助未来的游客。 首先删除旧的.git
目录 –
rm .git
然后再次初始化git回购
git init
看起来你不会去你的特定文件夹。 例如,如果我正在处理名为bugsBunny的项目,并将其保存在文件夹d:/ work:code中,则首先必须使用cd d:/ work / code / bugsBunny转到该文件夹,然后可以继续使用你的git命令。
在我的情况下,我使用龟SVN,并犯了错误,同时也使用Visual Studio GIT函数。 这使得Visual Studiolocking.git文件夹中的HEAD文件,所以VS或者龟都不能访问repo,并且我从这两个应用程序中得到了“致命的:不是git repo …”的错误。
解:
- 进入.git文件夹并将“HEAD.lock”重命名为“HEAD”
- 决定一个GITpipe理员应用程序,不要触摸另一个
在我的情况下,我有同样的问题,而我尝试任何使用Windows CMD的git – 命令(例如git状态)。 所以我所做的是在环境variables的窗口https://windows.github.com/中安装git之后,在“PATH”variables中添加git的类path。; 通常git会安装在C:/ user /“username”/ appdata / local / git / bin这个环境variables的PATH中
在cmd上还有一件事要去你的git仓库或cd到你的窗口上的克隆的地方,通常他们将被存储在github下的文件cd / Document / Github / yourproject之后,你可以有任何的git命令
谢谢
下面的错误好像Gits没有在当前目录中find.git文件,所以抛出错误信息。
因此,切换到目录到git的代码库,然后运行这个命令。
- $ git checkout
转到你的源文件夹存储本地回购,例如我的发现在C:/ GitSource,在文件夹中点击鼠标右键,在这里单击git bash,然后git状态….
即使我有同样的问题。 我写了一个shell脚本,通过使用crontab在17:55的一个工作日内将所有的代码备份到我的git仓库。 通过看到cron的日志,我发现了上述问题。
上面的问题只有当你试图执行从非gir目录(即从其他目录不是工作副本)的git命令。 在你正在执行的git命令中修复这个添加的-C <git dir>
,这样git status
git -C /dir/to/git status
和git add -A
将会是git -C /dir/to/git -A
$ git status fatal: Not a git repository:
只需在你的cmd或git shell或任何其他terminal中input以下内容:
$ git init
我的问题是,对于我的操作系统的一些打嗝,我的本地存储库的任何命令结束“致命的:不是一个git存储库(或任何父目录):.git”,包括fsck命令。
问题是空的HEAD文件 。
我能够find我在.git / refs / heads中工作的实际分支名称,然后我这样做了:
echo 'ref: refs/heads/ML_#94_FILTER_TYPES_AND_SPECIAL_CHARS' > .git/HEAD
有效。
对我而言,这与我的.git/
path中的格式不正确的所有权有关。 root
拥有.git/HEAD
和.git/index
,防止jenkins
用户运行该作业。
GIT_DIR应该取消设置: unset GIT_DIR
在我的情况下,我发现在Windows中的git从驱动器盘符变得区分大小写。
在windows cli命令升级git二进制后,用于工作停止。 例如脚本中的path是D :\ bla \ file.txt,而git命令只接受d :\ bla \ file.txt
git工作正常,所有突然它开始显示这个fatal: Not a git repository (or any of the parent directories): .git
消息。
对于我不知道在.git文件夹中损坏了什么,我做了git clone ** newfolder
,并将整个.git文件夹复制到我在git开始显示错误消息之前进行更改的损坏/旧文件夹。
一切恢复正常,git也认出了我的改变/未上演的文件。
为此,您需要input一个从bitbucket命令中缺less的命令
请尝试git init。