当I git clone:fatal:看起来不是git存储库时

当I git clone:fatal:看起来不是git存储库时,git,ssh,Git,Ssh,为什么我在使用git推送、显示、获取和克隆时总是得到“致命:似乎不是git存储库” 我使用回购作为我的基本存储库 git remote add origin user@dev.com:/home/administration/repo git push origin master fatal: '/home/administration/repo' does not appear to be a git repository fatal: Could not read from remote r

为什么我在使用git推送、显示、获取和克隆时总是得到“致命:似乎不是git存储库”

我使用回购作为我的基本存储库

git remote add origin user@dev.com:/home/administration/repo
git push origin master
fatal: '/home/administration/repo' does not appear to be a git repository
fatal: Could not read from remote repository.
我用我的远程url尝试了许多模式

然而,所有的结果都是一样的

步骤:

-Server(user@dev.com/home/administration/)
    $ mkdir repo
    $ cd repo
    $ git init --bare
    Initialized empty Git repository in /home/administration/repo/
    $ ls -a
    .  ..  branches  config  description  HEAD  hooks  info  objects  refs
-local
    $ git clone user@dev.com:/home/administration/repo
    warning: You appear to have cloned an empty repository.(repo directory has been created at local)
    $ cd repo
    $ git remote add origin user@dev.com:/home/administration/repo
    $ git remote -v
    origin  user@dev.com:/home/administration/repo (fetch)
    origin  user@dev.com:/home/administration/repo (push)
我只是删除了vsCode在本地创建的.git目录

然后它就起作用了

我可以复制回购协议

不过,我还是不能按vsCode来推

当我使用vsCode push时,它返回

权限被拒绝,请重试

权限被拒绝,请重试

user@dev.com:权限被拒绝(公钥、gssapi密钥、带麦克风的gssapi、密码)

致命:无法从远程存储库读取

git remote add origin user@dev.com:/home/administration/repo
git push origin master
fatal: '/home/administration/repo' does not appear to be a git repository
fatal: Could not read from remote repository.
请确保您具有正确的访问权限,并且存储库存在

我想这是ssh的密码问题,但我不能在vsCode中键入密码

我尝试@VonC的方法

我的操作系统是Win10

-local
    > ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/username/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/username/.ssh/id_rsa_ubuntu.
    Your public key has been saved in /home/username/.ssh/id_rsa_ubuntu.pub.
    The key fingerprint is:
    SHA256:nNnQckFbuegUs4WD3y+7YqwCaDhfUlX2J17jxF7X3FU xenby@demo.com
    The key's randomart image is:
    +---[RSA 2048]----+
    |       .o++ ..  E|
    |      .  *o+.  ..|
    |     .  = *+ o ..|
    |    .  . Ooo+ * +|
    | . o    Soo..B o.|
    |o + o     . ..o  |
    | + o .   .  . .  |
    |  .   .   +  o   |
    |       ..o .o.   |
    +----[SHA256]-----+
    > cp C:\Users\UserName\.ssh\id_rsa.pub C:\Users\UserName\authorized_keys
-Server
    > mkdir ~/.ssh
-local(Windows doesn't exist "ssh-copy-id",so I use scp)
    > scp authorized_keys user@dev.com:~/.ssh
    user@dev.com's password:
-Server
    > chmod 700 ~/.ssh
    > chmod 600 ~/.ssh/authorized_keys
在我做了这些事情之后,我仍然需要在使用ssh时输入密码user@dev.com....

我的问题是什么?

如本页所述,如果您的私钥受密码保护,则应首先启动ssh代理

但是,如果您可以手动推送,但必须输入用户密码(与密钥密码短语相反),这实际上意味着公钥没有添加到
~user/.ssh/authorized_keys

如果你可以克隆,这不应该是你的问题。如果可以克隆,则不必执行git remote add origin…:克隆过程中已设置了远程源

在本地文件系统中创建本地GIT存储库 从要承载远程Repository位置的目录

  • git init--bare repoName.git
    创建一个名为repoName.git的repo,该repo可以与内部所有必需的文件一起用作远程文件
从您希望连接到远程存储库的目录,使用有效的启用GIT的项目代码

  • git remote add origin”/path/to/my/repoName.git“
    将路径添加到上述创建远程存储库
  • git remote-v
    检查远程本地化路径是否正确
  • git push——设置上游原始主机
    以推送代码,并将upsteam设置为分支主机
  • git-push-origin
    all-later-push语法
在新目录中克隆此存储库 从新目录

  • git clone“path/to/my/repoName.git”newDirName
    将存储库克隆到一个新目录中

您是否将该远程文件创建为git init--bare?目标repo文件夹是否包含.git文件夹?请点击“git config--list”命令并显示结果?和“git show”命令。@DaemonPainter是的,我做了。从我看到的情况来看,URL解析正确,但指向的不是git存储库。正如我之前搜索的那样,有很多响应像你回答我的一样。我无法在服务器上使用根目录,因此我想询问另一个答案。嗯……这似乎是唯一的答案。@Sanji在生成新密钥时,您是否将密码短语设置为空?是的,我没有设置任何密钥。您可以键入GIT_SSH_COMMAND=“SSH-v”,然后从同一CMD会话启动VScode以继承该变量。然后在VSCode中打开Git控制台,并尝试推送:您应该会看到关于ssh连接的日志。仍然会得到相同的响应。权限被拒绝,请重试。权限被拒绝,请重试。user@dev.com:权限被拒绝(公钥、gssapi密钥、带麦克风的gssapi、密码)。致命:无法从远程存储库读取。请确保您具有正确的访问权限,并且存储库存在。谢谢您的回答,但我认为它没有领会我的意思。@Sanji,请您尝试在服务器上设置本地克隆存储库,以确保命令和连接有效吗?我现在不仅可以克隆存储库,但也可以通过git bash推送我的提交。但是,我想使用VScode而不输入密码来推送提交。这个问题现在困扰着我。您是否为git设置了以下配置:
git config--global user.name=“”
git config--global user.email=“”
是的。我可以在提交日志中看到我的user.name。