使用 git 进行开发:Cgit

来自 Alpine Linux
此材料建议合并...

应与 使用 git 进行开发:开发者仓库 合并。一眼难以分辨哪些是 (i) 关于使用 cgit 的通用信息(适用于任何项目),哪些是 (ii) 特定于与 Alpine 开发者仓库协调的信息。我们是否可以合并这些页面,或者将信息分为 (i) 和 (ii)?(讨论

此材料建议合并...

应与 Git 合并。所有基本的 cgit 信息都应提取并合并。所有 Alpine 开发信息都应移至其他位置(讨论


拥有 SSH 访问权限的开发者可以在 cgit 上发布他们的仓库,地址为 git.alpinelinux.org

创建仓库

在您的本地计算机或您有权访问的某个位置创建一个目录。如果您已经有一个现有的 git 仓库,请跳过此部分。

mkdir myrepo cd myrepo

初始化 git 并创建首次提交

echo "testing" > test.txt git init git add . git commit -m 'initial commit'

创建裸仓库

将其克隆到裸仓库

cd .. git clone --bare myrepo myrepo.git

设置描述

echo "My git/cgit test repo" > myrepo.git/description

为 cgit 设置 section 和您的名字。

cat <<EOF >> myrepo.git/cgitrc > section=Developer Your_alias > owner=Your_full_name > EOF

注意:需要 'description' 文件和 'cgitrc' 文件才能使 cgit 发布关于您的仓库的信息。

上传到 git.alpinelinux.org

将内容复制到您在 git.alpinelinux.org 上的 ~/cgit 目录。

scp -r myrepo.git git.alpinelinux.org:cgit/

清理

我们不再需要本地的 aports.git 目录。

rm -rf myrepo.git

最后一步

现在 pingncopa或 IRC 中 #alpine-devel 上的其他人,他们具有在 git.alpinelinux.org 上创建符号链接的相应权限,您的仓库将显示出来。一旦符号链接被创建,所有进一步的仓库都将在 git.alpinelinux.org 上发布。


添加您的个人仓库

到目前为止,git 对您的仓库一无所知。

cd myrepo git remote add origin ssh://git.alpinelinux.org/gitroot/username/myrepo.git

添加上游源以合并

如果您上传的项目是现有仓库(例如 aports)的克隆,请添加原始源作为 git 远程仓库(“upstream” 可以是您想分配给远程仓库的任何名称)

git remote add upstream git://git.alpinelinux.org/aports

然后,将您的本地副本与上游同步,然后推送您的更改(如果/当发生合并冲突时,可能需要修复合并冲突)

git pull upstream master git push

快速方法

cd .. git clone --bare acf-mystuff acf-mystuff.git echo "My acf-mystuff repo" > acf-mystuff.git/description echo "section=Developer user" > acf-mystuff.git/cgitrc scp -r acf-mystuff.git user@dev.alpinelinux.org:cgit/