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 находятся на одном сервере.