fatal: 'origin', схоже, не є сховищем git


97

У мене є сховище 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/*

Будь ласка, роздрукуйте вміст .git / config і додайте сюди
pmod

@pmod: Будь ласка, перегляньте моє оновлене запитання.
xan

Папка, в якій ви клонували на локальній машині, повинна містити папку .git.
pmod

@xancat $(git rev-parse --show-toplevel)/.git/config
bereal

@pmod: Так, я знайшов. Будь ласка, перегляньте моє оновлене запитання.
xan

Відповіді:


116

$HOME/.gitconfig- це ваша глобальна конфігурація для git.
Є три рівні з конфігураційних файлів .

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

( Згадуються по bereal ) Ваш локальний конфиг, локальний по відношенню до репо ви клонували.

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

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' відсутній: посилання на вашу вилку.
Див. " Яка різниця між originі upstreamв github "

введіть тут опис зображення


Doing git remote -vдає: upstream git://git.moodle.org/moodle.git (fetch) upstream git://git.moodle.org/moodle.git (push)
xan

.. @xan «вгору» є репо ви роздвоєний Ви пропускаєте походження, яке є вашою виделкою на GitHub Див stackoverflow.com/a/15632224/6309 і stackoverflow.com/a/9257901/6309
VonC

Як змінити вилку на головну?
Wolfpack'08

@ Wolfpack'08 "вилка" означає сховище (з декількома гілками). Перехід на гілку - це локальна операція, яка включає git switch: stackoverflow.com/a/57066202/6309 . Вашими словами, що для вас означає "зміна вилки на майстер"? Змінюєте свою локальну гілку у вашому локальному клонованому сховищі (вашої віддаленої вилки GitHub)?
VonC

1
Якщо у вас є GHY віддаленого репо, просто натисніть на нього: git push -u ghy master.
VonC

22

З тією ж проблемою я зіткнувся, коли перейменував своє сховище на 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://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)

14

Можливо, інша гілка, з якої ви намагаєтеся витягнути, не синхронізована; тому перед додаванням та видаленням віддаленого спробуйте (якщо ви намагаєтеся витягти з майстра)

git pull origin master

для мене той простий дзвінок вирішив ці повідомлення про помилки:

  • fatal: 'master', схоже, не є сховищем git
  • fatal: Не вдалося прочитати з віддаленого сховища.

3

Спробуйте спершу створити віддалене джерело, можливо, його немає, оскільки ви змінили назву віддаленого репо

git віддалено додати вихідну URL_TO_YOUR_REPO


2

Це не відповідає на ваше запитання, але я зіткнувся з подібним повідомленням про помилку, але з іншої причини. Дозвольте мені зробити свій допис заради збору інформації.

У мене є git repo на мережевому диску. Давайте назвемо цей мережевий диск RAID. Я клонував це репо на моїй локальній машині (LOCAL) і на моєму кластерному кластері (CRUNCHER). Для зручності я змонтував каталог користувачів свого облікового запису на CRUNCHER на моєму локальному комп'ютері. Отже, я можу обробляти файли на CRUNCHER без необхідності виконувати роботу в SSH-терміналі.

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

Причиною було те, що я зателефонував pushз репо на CRUNCHER на LOCAL. Отже, усі шляхи у файлі конфігурації були неправильними.

Коли я зрозумів свою провину, я увійшов до CRUNCHER через Термінал і зміг здійснити фіксацію.

Не соромтеся коментувати, якщо моє пояснення неможливо зрозуміти, або ви вважаєте моє повідомлення зайвим.


1

У мене була та ж помилка на git pull origin філія ім'я при встановленні віддаленого джерела як шлях fs, а не ssh в .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 авторизує_клавіші або пароль)):

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

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


Справді! /Домен після того, як повинно бути :при використанні SSH. Просто підтвердьте за допомогою git remote -v.
Noam Manos
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.