Fatal: "origin" не является репозиторием git

У меня есть репозиторий moodle в моей учетной записи Github, из которого я 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/*

Ответ 1

$HOME/.gitconfig - это глобальная конфигурация для git.
Существуют три уровня файлы конфигурации.

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

(упомянутый bereal) - это ваша локальная конфигурация, локальная для вашего репо, которое вы клонировали.

вы также можете ввести из своего репо:

git remote -v

И посмотрите, есть ли в нем какой-либо удаленный с именем "origin".

Если нет, если этот удаленный (который создается по умолчанию при клонировании репо) отсутствует, вы можете добавить его еще раз:

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" отсутствует: ссылка на вашу вилку.
См. "В чем разница между origin и upstream в github"

enter image description here

Ответ 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://[email protected]/username/newRepoName.git

После этого все команды начали работать нормально. Вы можете проверить это изменение, используя

git remote -v

В моем случае после успешного изменения он показал правильное переименованное репо в URL

[[email protected] Android]$ git remote -v
origin  ssh://[email protected]/aniket91/TicTacToe.git (fetch)
origin  ssh://[email protected]/aniket91/TicTacToe.git (push)

Ответ 3

Возможно, другая ветка, из которой вы пытаетесь вытащить, не синхронизирована; поэтому перед добавлением и удалением удаленной попытки (если вы пытаетесь извлечь из мастера)

git pull origin master

для меня этот простой вызов разрешил эти сообщения об ошибках:

  • fatal: 'master' не является репозиторием git
  • fatal: Не удалось прочитать из удаленного репозитория.

Ответ 4

Это не отвечает на ваш вопрос, но я столкнулся с аналогичным сообщением об ошибке, но по другой причине. Позвольте мне сделать свой пост ради сбора информации.

У меня есть репозиторий git на сетевом диске. Позвольте назвать этот сетевой диск RAID. Я клонировал это репо на своей локальной машине (LOCAL) и на моем кластере с хрустом числа (CRUNCHER). Для удобства я установил каталог пользователя моей учетной записи на CRUNCHER на моем локальном компьютере. Таким образом, я могу манипулировать файлами на CRUNCHER без необходимости выполнять работу в терминале SSH.

Сегодня я модифицировал файлы в репо на CRUNCHER через мою локальную машину. В какой-то момент я решил записать файлы, так что сделал фиксацию. Добавление измененных файлов и выполнение транзакции работало так, как я ожидал, но когда я позвонил git push, я получил сообщение об ошибке, подобное сообщению, опубликованному в вопросе.

Причина заключалась в том, что я вызвал push из репо на CRUNCHER по локальному. Таким образом, все пути в файле конфигурации были неправильными.

Когда я осознал свою ошибку, я вошел в CRUNCHER через Terminal и смог нажать фиксацию.

Не стесняйтесь комментировать, если мое объяснение не может быть понято, или вы найдете мой пост лишним.

Ответ 5

У меня была такая же ошибка при git pull origin branchname при установке удаленного источника в качестве пути fs, а не ssh в .git/конфигурации

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 или password)):

url = [email protected]:path/to/repo.git

причина, по которой я имел это в качестве пути к каталогу, заключалась в том, что файлы git находятся на одном сервере.