mcpField
G
git-logbuch

git-logbuch

github.com/dischen87其他09 次安装今天更新
代码仓库

关于 git-logbuch

git-logbuch 是一项德语技能,以船上日志为比喻讲解项目 Git 工作流。内容包括安全提交、与 Albatros 的 Forgejo 托管库同步,以及发布或更新项目文件。

主要功能

  1. 01克隆项目仓库
  2. 02在 main 上记录小步提交
  3. 03提交前安全选择文件
  4. 04通过 Albatros Forgejo 推送与拉取
  5. 05使用 Light 发布静态文件
  6. 06更新 Pilot 服务器副本

适用场景

  1. 01记录项目变更历史
  2. 02将仓库备份到 Albatros
  3. 03使用 Light 发布网站修改
  4. 04检查或更新服务器仓库

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dischen87/albatros-skills --skill git-logbuch

安装后在 Claude Code 中输入/git-logbuch确认已加载。

详细介绍

Git:船上的日志簿,港口里还有一份副本

这个比喻

每艘船上都有一本日志簿。每条记录都会写明:谁、何时、做了什么,以及为什么。出了问题,就往前翻,看看问题是从哪里开始的。

  • **Repo:**项目的日志簿,里面有所有文件。
  • **Commit:**一条记录。它记下一个小而完整的步骤,并附上一句说明。
  • 港口:code.aufwind.sh,Albatros 的 Git 服务。它的工作方式类似 GitHub,名为 Forgejo。日志簿会在这里存一份副本。就算电脑掉进水里,东西也不会丢。
  • **Push:**把新记录送到港口。**Pull:**从港口取回最新记录。

**这样使用这个比喻:**在第一条回复中,先告诉对方这个比喻,再提问或展示命令,即使对方一上来就想要解决方案。

表达方式

  • **不要只提问:**如果缺少项目或信息,仍要给出具体步骤,或先把文件写成草稿并标注假设([假设:…])。最后再询问缺少的内容。
  • 使用“你”的称呼。先讲完这个比喻,再使用 Commit、Push 和 Pull;之后每次使用时,都要结合这个比喻来讲。
  • 对方在浏览器中使用自己的 Albatros 账户登录港口。只有搬进自己的房子时才需要 GitHub 账户(技能 landung)。
  • 绝不提交对方不了解的内容。每次记录前,都要展示将要放入的内容。

三条规则

  1. **只在 main 上操作。**一本日志簿,一条主线。分支留给以后和大型改造时再用。
  2. 只逐个添加自己的文件:git add <datei>。绝不使用 git add .、git add -A 或 git commit -a。这些命令会把未完成的工作和 .env 之类的机密一起扫进日志簿。
  3. **绝不使用 git push --force。**如果推送被拒绝,先运行 git pull --rebase,再运行 git push。

流程

1. 工具
  • git --version 会显示是否已安装 Git。在 Mac 上,电脑第一次运行时会询问是否安装开发者工具。选择是。
  • 技能 ssh-schluessel 中的房门钥匙也能打开港口。~/.ssh/config 中的 Host aufwind.sh 配置对两扇门都有效。
  • 设置一次日志簿使用的名称:
    git config --global user.name "Vorname Nachname"
    git config --global user.email "[email protected]"
    
2. 取回日志簿

Albatros 已经在港口为你创建了日志簿,并放入了模板。地址中会使用 konto_status:

git clone [email protected]:{name}/projekt.git
cd projekt

日志簿是私有的:只有你能看到。之后检查 .gitignore,至少包含以下几行:.env、.env.*、!.env.example、node_modules/、dist/。

3. 第一条记录

对方自己做一个小改动,例如在 README.md 中修改一行。然后一起运行:

git status                     # Was hat sich geändert?
git add README.md              # Genau diese Datei aufnehmen
git diff --cached              # Was kommt ins Logbuch?
git commit -m "README: Ziel des Projekts in einem Satz"
git pull --rebase && git push  # In den Hafen schicken

好的说明会在 60 个字符以内写明做了什么以及为什么,例如:“联系方式:补充电话号码”。不好的说明包括“更新”“修复”“杂项”。

再添加第二条记录,让对方熟悉这个流程。然后在浏览器中展示:https://code.aufwind.sh/{name}/projekt。两条记录都会存放在港口。

4. 服务器上的日志簿

使用 Light 时没有服务器:推送本身就是发布。Albatros 会将 main 中的 seite/ 目录显示在 https://{name}.aufwind.sh 上,大约需要 30 秒。如果没有 seite/,Albatros 会改用 public/,否则就使用整个 Repo,所以要把页面放在 seite/ 中。大小最多 100 MB,Albatros 不会显示链接(Symlinks)。在浏览器中重新加载页面,改动就会显示出来。接着进行第 5 步。

**使用 Pilot 时:**你的服务器在 ~/projekt 中有自己的副本。Albatros 在设置时已创建该副本,并配置了一个只能读取你港口内容的密钥。如果日志簿中还带有传送带(.github/workflows/deploy.yml),每次推送时,它都会自动取回新记录(技能 pipeline)。检查:

ssh {name}@aufwind.sh 'git -C ~/projekt log --oneline -3'

如果没有新记录,就手动从港口取回:ssh {name}@aufwind.sh 'git -C ~/projekt pull --ff-only'。如果整个目录都不存在:ssh {name}@aufwind.sh 'git clone [email protected]:{name}/projekt.git ~/projekt'。

5. 检查任务

用 flugschule-04-git-logbuch 执行 mission_pruefen。检查会确认 main 上的日志至少有两条记录:Pilot 在服务器的 ~/projekt 中,Light 在港口中。

遇到问题时

  • **在港口遇到 Permission denied (publickey):**密钥尚未配置,或者缺少 ~/.ssh/config 中的条目(技能 ssh-schluessel)。
  • **推送被拒绝(rejected):**港口中有更新的记录。执行 git pull --rebase,然后执行 git push。
  • **Rebase 时发生冲突:**两条记录修改了同一行。在 <<<<<<< 和 >>>>>>> 之间的文件内容中共同决定保留什么,然后执行 git add <datei>、git rebase --continue 和 git push。
  • **git status 中有他人尚未提交的更改:**不要动,也不要带上。只暂存自己的文件。
  • **日志中出现秘密信息:**仅删除还不够,它仍留在旧记录中。立即使用技能 sicherheit:在服务提供商处重新生成该秘密信息。
  • 恢复文件的早期版本:git log --oneline <datei> 会显示记录,git restore --source <eintrag> <datei> 会将其恢复。然后新增一条记录。

收尾消息

此步骤的最后一条消息以一句关于“日志在船上,港口里有一份副本”的话开头,再次点明核心内容。接着说明已完成的工作、结果所在位置、尚未解决的事项,以及接下来要做什么。

评论

支持 Markdown