【问题标题】:fatal: 'origin' does not appear to be a git repository致命的:'origin' 似乎不是 git 存储库
【发布时间】:2023-04-05 12:36:02
【问题描述】:

我的 Github 帐户上有一个存储库 moodle,我在官方存储库中 forked

然后我将它克隆到我的本地机器上。它工作得很好。我创建了几个分支(在master 分支下)。我做了几次提交,效果很好。

我不知道我是如何得到以下错误的:git push origin master

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

如何在不影响我在 Github 上的存储库的情况下解决错误?

我正在使用Ubuntu 12.10

我的.git/config在做cat $(git rev-parse --show-toplevel)/.git/config之后的内容是:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[branch "master"]
[branch "MOODLE_23_STABLE"]
[branch "MOODLE_24_STABLE"]
[remote "upstream"]
    url = git://git.moodle.org/moodle.git
    fetch = +refs/heads/*:refs/remotes/upstream/*

【问题讨论】:

  • 请打印.git/config的内容并在此处添加
  • @pmod:请查看我更新的问题。
  • 你在本地机器上克隆的文件夹应该包含.git文件夹。
  • @xan cat $(git rev-parse --show-toplevel)/.git/config
  • @pmod:是的,我找到了。请查看我更新的问题。

标签: git github push git-push


【解决方案1】:

$HOME/.gitconfig 是你的 global git 配置。
three levelsconfig files

 cat $(git rev-parse --show-toplevel)/.git/config

(mentioned by bereal) 是您的 local 配置,位于您克隆的 repo 的本地。

你也可以在你的仓库中输入:

git remote -v

并查看其中是否列出了任何名为“origin”的遥控器。

如果没有,如果那个远程(在克隆 repo 时默认创建)丢失,你可以重新添加它:

git remote add origin url/to/your/fork

OP 提到:

执行git remote -v 给出:

upstream git://git.moodle.org/moodle.git (fetch) 
upstream git://git.moodle.org/moodle.git (push)

所以“origin”不见了:对你的分叉的引用。
见“What is the difference between origin and upstream in github

【讨论】:

  • git remote -v 给出:upstream git://git.moodle.org/moodle.git (fetch) upstream git://git.moodle.org/moodle.git (push)
  • @xan 'upstream" 是你 fork 的 repo。你缺少 origin,这是你在 github 上的 fork。见 stackoverflow.com/a/15632224/6309stackoverflow.com/a/9257901/6309
  • 如何将我的 fork 更改为 master?
  • @Wolfpack'08 “fork” 表示存储库(具有多个分支)。更改分支是涉及 git 切换的本地操作:stackoverflow.com/a/57066202/6309。用您自己的话来说,“将 fork 变为 master”对您意味着什么?更改本地克隆存储库(远程 GitHub 分支)中的本地分支?
  • 如果你拥有远程仓库,只需推送到它:git push -u ghy master
【解决方案2】:

当我在 GitHub 上重命名我的存储库时,我遇到了同样的问题。我试图推动我得到错误的地方

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

我不得不更改 URL 使用

git remote set-url origin ssh://git@github.com/username/newRepoName.git

在此之后,所有命令都开始正常工作。您可以使用

检查更改
git remote -v

在我成功更改后,它在 URL 中显示正确的重命名仓库

[aniket@alok Android]$ git remote -v
origin  ssh://git@github.com/aniket91/TicTacToe.git (fetch)
origin  ssh://git@github.com/aniket91/TicTacToe.git (push)

【讨论】:

  • "致命:没有这样的远程'起源'"
【解决方案3】:

您尝试从中提取的另一个分支可能不同步;所以在添加和删除远程之前尝试(如果你试图从主服务器拉)

git pull origin master

对我来说,这个简单的调用解决了这些错误消息:

  • 致命:“master”似乎不是 git 存储库
  • 致命:无法从远程存储库读取。

【讨论】:

    【解决方案4】:

    先尝试创建远程源,可能是因为你更改了远程仓库的名称而丢失了

    git 远程添加源 URL_TO_YOUR_REPO

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题并通过检查解决了它

      git remote -v
      
      git init the repo URL
      
      git remote add origin the repo URL
      
      git push -f origin master
      

      【讨论】:

      • 这个答案有什么新东西?上面提到了git remote add...
      【解决方案6】:

      这并不能回答您的问题,但由于不同的原因,我遇到了类似的错误消息。为了收集信息,请允许我发帖。

      我在网络驱动器上有一个 git repo。我们称这个网络驱动器为 RAID。我在我的本地机器 (LOCAL) 和我的数字处理集群 (CRUNCHER) 上克隆了这个 repo。 为方便起见,我在本地计算机上的 CRUNCHER 上安装了我帐户的用户目录。因此,我可以在 CRUNCHER 上操作文件,而无需在 SSH 终端中进行操作。

      今天,我正在通过本地计算机修改 CRUNCHER 上的 repo 中的文件。在某个时候,我决定提交文件,所以做了一个提交。添加修改后的文件并进行提交按预期工作,但是当我调用 git push 时,我收到了类似于问题中发布的错误消息。

      原因是,我在本地的 CRUNCHER 上的 repo 中调用了push。所以,配置文件中的所有路径都是错误的。

      当我意识到我的错误时,我通过终端登录到 CRUNCHER 并能够推送提交。

      如果我的解释无法理解,或者您觉得我的帖子多余,请随时发表评论。

      【讨论】:

        【解决方案7】:

        当将远程源设置为路径 fs 而不是 中的 ssh 时,我在 git pull origin branchname 上遇到了同样的错误。混帐/配置

        fatal: '/path/to/repo.git' does not appear to be a git repository 
        fatal: The remote end hung up unexpectedly
        

        就是这样(这仅适用于 git 同一服务器上有权访问 git 的用户):

        url = file:///path/to/repo.git/
        

        像这样修复它(这适用于所有有权访问 git 用户(ssh authorizes_keys 或密码)的用户):

        url = git@domain.com:path/to/repo.git
        

        我将它作为目录路径的原因是因为 git 文件在同一台服务器上。

        【讨论】:

        • 确实!如果使用 SSH,则域后的 / 必须是 :。只需使用git remote -v 验证即可。
        【解决方案8】:

        100% 有效。

        首先要确保你的项目根目录中没有隐藏的 git 文件夹,如果有就删除它。然后打开命令外壳并执行以下命令:

        git init -b main
        
        git add .   //This is very important and it adds the files in the local repository and stages them for commit.
        
        git commit -m "First commit"
        
        git remote add origin  <REMOTE_URL>  //REMOTE_URL: the repository address in github.com 
        
        git remote -v  //Verifies the new remote URL
        
        git push origin main
        

        就是这样。您还可以在 GitHub documentation 中阅读更多相关信息

        【讨论】:

          猜你喜欢
          • 2020-06-10
          • 2011-11-11
          • 2015-07-01
          • 2020-01-20
          • 2015-11-21
          • 2012-06-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多