1

我正在尝试为我创建一种简单的方法来创建并将存储库推送到我自己的服务器。目前,我必须先--bare在我的服务器上创建一个存储库,然后才能推送到它。

但是,我希望能够做这样的事情

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

然后在服务器上,如果在我的服务器new-repo.git下不存在user,它将创建它并继续正常接收对象。

那么,如何在 git 服务器上实现呢?

4

1 回答 1

1

如果你使用 gitlab 作为 git-server,试试这个:

推送创建一个新项目

在 GitLab 10.5 中引入。

当您在本地创建新存储库时,无需去 GitLab 手动创建新项目然后在本地克隆存储库,您可以直接将其推送到 GitLab 以创建新项目,而无需离开终端。如果您有权访问关联的命名空间,GitLab 将自动在该 GitLab 命名空间下创建一个新项目,默认情况下其可见性设置为 Private(您可以稍后在项目的设置中更改它)。

这可以通过使用 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,我建议你试一试。

你可以在你的 ubuntu 上部署一个gitlab-cedocker 容器,这很容易。

PS:我认为 gitlab 通过破解 ssh 来自动创建 repo。所以你可以通过结合来做到这一点: git clone --bare my_project my_project.git cp -Rf my_project/.git my_project.gitscp -r my_project.git user@git.example.com:/srv/git。更多内容可以参考官方文档

于 2019-10-15T04:02:19.460 回答