Как принять git push для любого пути репо, даже если он не существует на моем сервере? - PullRequest
1 голос
/ 15 октября 2019

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

Однако я бы хотел уклониться от чего-то подобного

git remote add origin https://user@mygitserver.com/user/new-repo.git
git push -u origin master

а затем на сервере, если new-repo.git не существует под user на моем сервере, он создаст его и продолжит нормально получать объекты.

Итак, как этого можно достичь наGit-сервер?

1 Ответ

1 голос
/ 15 октября 2019

Если вы используете 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 наваша 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. Вы можете обратиться к официальному документ для более.

...