注意: “ source”似乎不是 git 存储库

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

I then cloned it on my local machine. It worked fine. I created several branches (under the master branch). I made several commits and it worked fine.

当我这样做时,我不知道我是如何得到以下错误的: 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

做完 cat $(git rev-parse --show-toplevel)/.git/config之后,我的 .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/*
329268 次浏览

$HOME/.gitconfig is your 全球性的 config for git.
配置文件三层

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

(提到 by 真实) is your local config, local to the repo you have cloned.

你也可以在回购协议中输入:

git remote -v

看看是否有任何远程名为“起源”列在其中。

如果没有,如果那个远程(在克隆一个回购时默认创建)丢失,你可以再次添加它:

git remote add origin url/to/your/fork

《观察家报告》提到:

git remote -v给出的建议是:

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

因此缺少“ origin”: 对 your fork 的引用。
请参阅「 在 github 中 ABC0和 upstream的区别是什么

enter image description here

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

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

我必须使用

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)

This does not answer your question, but I faced a similar error message but due to a different reason. Allow me to make my post for the sake of information collection.

我在一个网络硬盘上有个 Git 回购。我们将这个网络驱动器称为 RAID。我在我的本地机器(LOCAL)和数字计算集群(CRUNCHER)上克隆了这个回购。 为了方便起见,我在本地计算机上的 CRUNCHER 上挂载了我的帐户的用户目录。因此,我可以操作文件上的 CRUNCHER 而不需要做的工作在一个 SSH 终端。

今天,我正在通过我的本地机器修改 CRUNCHER 上的回购文件。在某个时候我决定提交文件,所以 a 做了提交。添加修改后的文件并执行提交按照我的预期工作,但是当我调用 git push时,我得到了一个与问题中发布的错误消息相似的错误消息。

原因是,我调用 push从内部的回购在克朗彻在本地。因此,配置文件中的所有路径都是完全错误的。

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

Feel free to comment if my explanation can't be understood, or you find my post superfluous.

我在 Git 拉原点分支名上将远程原点设置为路径 财政司司长而不是 . git/config中的 时出现了相同的错误:

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 user的用户(ssh authority _ keys 或 password)) :

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

the reason I had it as a directory path was because the 饭桶 files are on the same server.

您尝试从中提取的另一个分支可能不同步; 因此在添加和删除远程之前,请尝试(如果您尝试从 master 中提取)

git pull origin master

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

  • 注意: “ master”看起来不像是一个 git 存储库
  • 无法从远程存储库读取。

首先尝试创建远程起源,可能是由于您更改了远程回购的名称而丢失了

Git remote 添加起源 URL _ TO _ Your _ REPO

我也有同样的问题,通过检查解决了

git remote -v


git init the repo URL


git remote add origin the repo URL


git push -f origin master

百分百成功。

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

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

and that's it. You can also read more about this in GitHub 文档

我的问题与我克隆回购的方式有关。Github 在用户名前面加了一个冒号,例如:

git@github.companyname.com:usernmame/reponame.git

命令 git remote -v显示如下:

origin git@github.companyname.com:usernmame/reponame.git (fetch)
origin git@github.companyname.com:usernmame/reponame.git (push)

一切都符合 Github 告诉我的,所以我很困惑,为什么当我试图向上游推进一个新的分支时,会出现跟踪错误:

fatal: 'reponame' does not appear to be a git repository

然后我意识到这是因为我的原点指向了错误的上游,因为 URL 中的冒号

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

现在我可以推新树枝了。

更新

我发现,在这样做之后,我不再能够推动任何变化。我必须用冒号将原点重新设置为 URL,以便推送工作。

git remote set-url origin git@github.companyname.com:usernmame/reponame.git

所以我要说,这是一个解决方案,而不是一个适当的解决方案。