Git commit over SSH не распознает удаленный репозиторий

1267
MeesterTeem

У меня есть 2 машины, клиент и сервер. Я хочу отправлять git-репозитории с клиента на сервер, используя удаленную передачу. Я выполнил эти команды в следующем порядке на сервере:

mkdir /mnt && cd /mnt mkdir test.git && cd test.git sudo git init --bare 

Я выполнил эти команды на клиенте:

mkdir /mnt && cd /mnt mkdir test.git && cd test.git sudo git init sudo git remote add testy ssh://user@server/mnt/test.git sudo vim testing.txt sudo git add testing.txt sudo git commit -m "testing" sudo git push testy master 

Это приводит к ошибке на клиентском компьютере: fatal: '/mnt/test.git' does not appear to be a git repository. fatal: The remote end hung up unexpectedly.

Есть несколько похожих вопросов, но ни один из них не решает мою проблему. Я пробовал их решения дословно, но безуспешно. Это не дубликат, потому что эти ответы не решают проблему. Любые предложения, чтобы исправить эти проблемы?

2
вам не хватает разделителя `:` между хостом и путем в `sudo git remote add testy ssh: // user @ server: / mnt / test.git` Jakuje 8 лет назад 0
вы полностью злоупотребляете `sudo`, фактически нарушая все разрешения (и не замечая этого, потому что вы их переопределяете). вы должны * только * использовать `sudo` для команд, которые требуют специальных привилегий (например, создание каталога` / mnt / test.git`); на самом деле, в вашем примере каждое использование `sudo` излишне и, следовательно, скорее всего, плохо. umläute 8 лет назад 0
Если я поставил двоеточие так, чтобы у меня было `sudo git remote, добавьте testy ssh: // user @ server: / mnt / test.git`, я получу ошибку:` hostname server :: не может быть решена`. MeesterTeem 8 лет назад 0

1 ответ на вопрос

1
l0b0

Я предполагаю, user@serverчто не имеет права на чтение / запись / выполнение /mnt/test.git:

$ sudo sh -c 'cd $(mktemp -d) && git init --bare' Initialized empty Git repository in /tmp/tmp.TNLcXTZQcN/ $ cd $(mktemp -d) $ git remote add /tmp/tmp.TNLcXTZQcN fatal: Not a git repository (or any parent up to mount point /tmp) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). 
Я использовал `chown`, чтобы предоставить пользователю доступ к каталогу. Теперь я получаю: `fatal: не репозиторий git (или какой-либо из родительских каталогов): .git` Есть еще предложения? MeesterTeem 8 лет назад 0
Запустите chown рекурсивно, чтобы убедиться, что пользователь может читать / записывать все необходимые файлы: `sudo chown -R user / mnt / test.git`. umläute 8 лет назад 0
Я наконец все получил, где был принят толчок, но файл, который я добавил в качестве теста, похоже, не отправляется. Это вероятно все еще проблема с разрешениями на запись? MeesterTeem 8 лет назад 0
@MeesterTeem Пустой репозиторий по определению не имеет извлеченных копий файлов, если вы это имеете в виду. l0b0 8 лет назад 0
Кажется, тогда возникает большая проблема ... голое хранилище не проверяет файлы, поэтому вы не можете загружать в него содержимое. У непроигранного репо проверена ветка master, так что вы тоже не можете его подтолкнуть! Какой в ​​этом смысл? И почему каждое руководство по настройке удаленного развертывания файлов использует пустое, если они не могут получить файлы? MeesterTeem 8 лет назад 0
Нет, вы * можете * подтолкнуть контент к нему. И вы * можете * получить файлы из него, клонировав их в не-пустой репозиторий. Это просто не будет проверено на сервере. Дело в том, например, для хостинга. l0b0 8 лет назад 0

Похожие вопросы