将本地 GIT 存储库添加到 Gogs Docker 容器

Adding a Local GIT Repository to a Gogs Docker Container

我使用 Docker 安装了 Gogs。随后我创建了一个这样的本地存储库(实际上 repository 有多个分支,等等,但我只是让这个例子保持简单):

mkdir repository
cd repository
git init
touch README.md
git add README.md
git commmit -m "How do I get this into Gogs"

我现在如何迁移/推送到 Gogs?

要将变更集推送到 gogs,您需要在 gogs 上创建一个 repo,然后添加一个使用容器启动时公开的端口的远程。如果您不确定,运行 以下内容并记下 HostPort 条目。假设容器名为 gogs:

docker inspect  --format "{{json .HostConfig.PortBindings}}" gogs

以下是设置 ssh 远程源的步骤。 使用 3000/tcp 的 HostPort 条目访问的 gogs web ui 添加你的 public 密钥。如果您按照 gogs docker 说明进行操作,这可能是:http://localhost:10080 如果 gogs 未在本地 运行ning,请将 localhost 替换为 gogs 主机名。

将以下主机条目添加到 ~/.ssh/config 以更轻松地指定备用 ssh 端口:

Host gogs
    # if gogs is not running locally, add the remote hostname here
    Hostname localhost
    User git
    # the following should match what is listed for HostPort 22/tcp
    port 10022

使用 ssh gogs 测试 ssh 主机条目。如果有效,您应该会看到:

PTY allocation request failed on channel 0
Hi there, You've successfully authenticated, but Gogs does not provide shell access.
If this is unexpected, please log in with password and setup Gogs under another user.
Connection to localhost closed.

将以下内容添加为您的遥控器:

git remote add origin gogs:yourusername/your-repo.git

请注意,您正在用 gogs ssh 主机条目替换 git@localhost

您现在应该可以推送到您的 gogs 存储库了。