Git push: "фатальне" походження "не схоже на сховище 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 ініціалізований, а потім спробуйте ще раз.
Хіманшу Криплані

Відповіді:


215

Спочатку перевірте, чи встановлено ваше походження за допомогою запуску

git remote -v

Це повинно показати вам усі віддалені / витяжні програми для проекту.

Якщо це повертається без виводу, перейдіть до останнього блоку коду.

Перевірте віддалене ім’я / адресу

Якщо це повернеться, що показує, що у вас встановлений пульт дистанційного керування, перевірте, чи відповідає назва пульта віддаленому, який ви використовуєте у своїх командах.

$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
Карол-Теодор Пелу

Я читав це питання, чи можете ви також допомогти з новою помилкою натискання репозиторію?
StaticVariable

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-адресу ... Наприклад: Для бітбукета очікуйте git@bitbucket.org .... Якщо його gitbucket.org. внесіть необхідні зміни .. ЗБЕРЕГТИ Спробуйте натиснути знову.


1

Це працює для мене.

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

додайте URL-адресу сховища до початкового коду в локальній робочій директорії


0

Схожа помилка з’являється під час витягування змін із джерела. Якщо ви намагаєтеся в Intellij через параметри меню, витяг може не працювати безпосередньо.

Перейдіть до терміналу і введіть цю команду, і це повинно вийти: git pull origin master


0

У мене було те саме питання. Перевіривши свій конфігураційний файл, я помітив, що 'fetch = + refs / heads / : 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.