Как принять git push на любой путь репо, даже если он не существует на моем сервере?
Я пытаюсь создать для меня простой способ создания и отправки репозиториев на мой собственный сервер. В настоящее время мне нужно создать--bare
репозиторий на моем сервере, прежде чем я смогу на него нажать.
Однако я бы хотел уклониться от чего-то вроде этого
git remote add origin https://user@mygitserver.com/user/new-repo.git
git push -u origin master
а затем на сервере, если new-repo.git
не существует под user
на моем сервере он создаст его и продолжает нормально получать объекты.
Итак, как этого можно достичь на сервере git?
1 ответ
Если вы используете gitlab в качестве git-сервера, попробуйте следующее:
Нажмите, чтобы создать новый проект
Представлено в GitLab 10.5.
Когда вы создаете новый репозиторий локально, вместо того, чтобы переходить в GitLab для создания нового проекта вручную, а затем клонировать репозиторий локально, вы можете напрямую отправить его в GitLab для создания нового проекта, не выходя из терминала. Если у вас есть права доступа к связанному пространству имен, GitLab автоматически создаст новый проект в этом пространстве имен GitLab с его видимостью, установленной по умолчанию на Частный (позже вы можете изменить его в настройках проекта).
Это можно сделать с помощью SSH или HTTPS:
## Git push using SSH
git push --set-upstream git@gitlab.example.com:namespace/nonexistent-project.git master
## Git push using HTTPS
git push --set-upstream https://gitlab.example.com/namespace/nonexistent-project.git master
Если вы не используете gitlab, я предлагаю вам попробовать.
Вы можете развернуть gitlab-ce
docker на вашем ubuntu, это довольно просто.
PS: Я думаю, что gitlab создает автоматическое репо, взломав ssh. Итак, вы можете сделать это, просто комбинируя:git clone --bare my_project my_project.git
cp -Rf my_project/.git my_project.git
а также scp -r my_project.git user@git.example.com:/srv/git
. Вы можете обратиться к официальной документации для получения дополнительной информации.