Git push: «fatal 'origin' не похоже на репозиторий git - fatal Не удалось прочитать из удаленного репозитория».


119

Я знаю, что подобные вопросы уже задавались.

Но я считаю, что моя проблема связана с ошибкой, которую я сделал ранее, и поэтому отличается: позвольте мне объяснить.

Все шло гладко, как умел:

  • git add . все файлы из моего локального репозитория.
  • git commit -m "message here" добавлять сообщения в мои коммиты.
  • git push origin master чтобы загрузить мои файлы на GitHub.
  • git push heroku master чтобы загрузить мои файлы в Heroku.

Однако в какой-то момент я создал новую ветку, вызываемую локально, add-calendar-modelна случай, если следующие шаги разработки приложения пойдут на юг ...

... что именно и произошло.

Однако, несмотря на множество попыток, мне не удалось получить исходный код - то есть код, который был до того, как я создал новую ветку - из masterветки в мой локальный репозиторий.

Итак, я решил вручную удалить все файлы из моего локального репозитория и git cloneмоей masterветки из GitHub.

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

Каждый раз, когда я пытаюсь запустить git push origin add-calendar-modelили git push origin master, я получаю следующую ошибку:

fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Как вы уже догадались, мне не очень комфортно работать с Git и GitHub, и я должен признать, что понятия не имею, как это исправить.

Любая идея?


У меня была аналогичная ошибка, но моя проблема заключалась в том, что я инициализировал git в родительском каталоге текущей папки, которую я пробовал. На всякий случай, если кто-то все еще сталкивается, можете посмотреть, где инициализирован git, а затем повторить попытку.
Химаншу Криплани

Ответы:


218

Сначала убедитесь, что ваше происхождение установлено, запустив

git remote -v

Это должно показать вам все пульты push / fetch для проекта.

Если это возвращается без вывода, перейдите к последнему блоку кода.

Проверить удаленное имя / адрес

Если это возвращается, показывая, что у вас установлены пульты дистанционного управления, убедитесь, что имя пульта дистанционного управления соответствует тому, который вы используете в своих командах.

$git remote -v
myOrigin ssh://git@example.com:1234/myRepo.git (fetch)
myOrigin ssh://git@example.com:1234/myRepo.git (push)

# this will fail because `origin` is not set
$git push origin master

# you need to use
$git push myOrigin master

Если вы хотите переименовать пульт или изменить его URL-адрес, вам нужно сначала удалить старый пульт, а затем добавить правильный.

Удалите старый пульт

$git remote remove myOrigin

Добавить отсутствующий пульт

Затем вы можете добавить правильный пульт, используя

$git remote add origin ssh://git@example.com:1234/myRepo.git

# this will now work as expected
$git push origin master

У меня это сработало без ssh://передgit@example.com:1234/myRepo.git
Кэрол-Теодор Пелу

Я читал этот вопрос, не могли бы вы также помочь с ошибкой push нового репозитория?
StaticVariable 03

12

Как сказал Мэтт Кларк выше

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

git remote add origin <"clone">

Где «клон» просто входит в репозиторий GitHub, копирует «URL-адрес клона HTTPS» и вставляет его в GitBash.


3

Убедитесь, что файл конфигурации на .git правильный ... Проверьте URL и убедитесь, что вы используете правильный протокол для ваших ключей ... ProjectWorkspace / .git / config

  ~Wrong url for git@bitbucket
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = gitbucket.org:Prezyack/project-one-hello.git
    fetch = +refs/heads/*:refs/remotes/origin/*

 ~Wrong URL for SSH...
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = https://emmap1@bitbucket.org/emmap1/bitbucketspacestation.git
[branch "master"]
    remote = origin
    merge = refs/heads/master

Мы смотрим на URL ... например: для bitbucket ожидайте git@bitbucket.org .... Если это gitbucket.org. внесите необходимые изменения .. СОХРАНИТЬ Попробуйте нажать еще раз.


2

Меня устраивает.

git remote add origin https://github.com/repo.git
git push origin master

добавить URL-адрес репозитория в источник в локальном рабочем каталоге


0

Аналогичная ошибка появляется при извлечении изменений из источника. Если вы пытаетесь использовать Intellij из параметров меню, извлечение может не работать напрямую.

Перейдите в терминал и введите эту команду, и это должно сработать: git pull origin master


0

Я была такая же проблема. Когда я проверил свой файл конфигурации, я заметил, что 'fetch = + refs / Head / : refs / remotes / origin / ' находится в той же строке, что и 'url = Z: /GIT/REPOS/SEL.git', как показано:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = Z:/GIT/REPOS/SEL.git     fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1109x563+32+32 216 255

Сначала я не думал, что это имеет значение, но, увидев сообщение Магере, я переместил строку, и это устранило проблему:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = Z:/GIT/REPOS/SEL.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1109x563+32+32 216 255

0

если вы добавляете свой удаленный репозиторий с помощью git clone, выполните следующие действия: -

git clone <repo_url> затем

git init

git add * * означает добавить все файлы

git commit -m 'your commit'

git remote -vчтобы проверить, запущена ли ветка или нет, если нет, то ничего не отображается, тогда мы добавляем или извлекаем репозиторий. " сначала получить" . Вам нужно бежать git pull origin <branch> или git pull -r origin <branch>до следующего толчка .

затем

git remote add origin <git url>
 git pull -r origin master
git push -u origin master```

0

Вот так я обновил главную ветку

$ git remote -v
$ git remote rm origin
$ git commit -m "your commit"
$ git remote add origin https://github.com/user/repo.git
$ git push -f origin master

1
Попробуйте добавить к своему ответу объяснения, которые касаются вопроса и помогают читателю понять его. В настоящее время он просто читается как анекдот и даже не работает в общем случае (например https://github.com/, корень веб-сайта и репозиторий git)
Kache

-3

Иногда у вас нет локального REF для возврата этой ветки к источнику.
Пытаться

git push origin master:master

Это явно указывает, на какую ветку нажать (и из)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.