帮助使用 Git CLI 检查、暂存、提交、分支及同步代码变更。在用户想了解或执行 Git 操作时使用。
Git CLI 技能 — 如何工作是一项面向实际任务的技能,主要用于当用户从命令行询问 Git 时使用此技能: 变化、 中/ 投、 分支、 推/ 推、 隐藏、 历史、 标记、 合并/ 重置、。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
当用户询问有关命令行下的 Git操作时,使用本技能:例如查看变更内容、暂存/提交、分支管理、推送/拉取、储藏(stash)、历史记录、标签(tag)、合并(merge)/变基(rebase),或克隆(clone)等。
git 已加入系统 PATH,并且用户当前位于(或将要在其中运行命令的)一个 Git 仓库中。若不确定,建议先运行 git status,或在技能目录下执行 scripts/is-repo.sh 脚本进行验证。git status、git diff、git log)。除非用户明确要求且已知悉风险,否则不得建议具有破坏性的命令(如 git reset --hard、git clean -fdx、git push --force)。如需恢复操作,请先使用 git reflog 找到目标提交,再建议 reset 或 checkout 等操作。reference/ 目录下的文档(例如 reference/workflows.md、reference/troubleshooting.md)。scripts/ 目录中的脚本,并告知用户如何运行。assets/ 目录中的模板文件。| 任务 | 命令 |
|---|---|
| 状态与差异 | git status · git diff · git diff --staged · git diff --stat |
| 暂存 / 取消暂存 | git add 或 git add . · git restore --staged |
| 提交 | git commit -m "message" |
| 分支 | git branch · git branch -a · git switch -c new · git switch existing |
| 同步远程仓库 | git fetch · git pull · git push -u origin ,之后可直接使用 git push |
| 储藏(Stash) | git stash · git stash list · git stash apply / git stash pop |
| 历史记录 | git log --oneline --decorate --graph -n 20 · git blame |
| 克隆 / 初始化 | git clone · git init · git remote add origin |
| 远程仓库配置 | git remote -v · git remote show origin · git branch -vv |
| 丢弃变更(破坏性操作) | git restore (工作区)· git restore --staged (取消暂存) |
| 修正上次提交 | git commit --amend --no-edit 或 -m "message" |
| 标签(Tag) | git tag · git tag v1.0 · git push origin v1.0 或 --tags |
| 合并 / 变基 | git merge · git rebase · 出现冲突 → 解决 → git add → git commit 或 git rebase --continue |
| 需求 | 位置 |
|---|---|
| 完整命令列表、选项说明及示例 | reference/commands.md |
| 分步工作流(分支、发布、冲突解决等) | reference/workflows.md |
| 常见错误、恢复方法、分离头指针(detached HEAD)、.gitignore 配置 | reference/troubleshooting.md |
| 运行检查类脚本(是否为仓库、状态摘要、分支信息等) | scripts/ —— 须在仓库根目录下运行 |
| 提交信息或 .gitignore 模板 | assets/ |
scripts/is-repo.sh —— 若当前目录为 Git 仓库则退出码为 0,否则为 1。可用于在建议命令前确认上下文。scripts/status-summary.sh —— 输出简略状态 + 当前分支 + 最近一次提交摘要。适用于用户提问“我当前的状态如何?”时。scripts/branch-list.sh —— 列出本地与远程分支及其上游追踪关系。适用于用户询问分支情况或推送目标时。Windows 用户:请在 Git Bash 或 WSL 中运行(例如:bash scripts/status-summary.sh)。
assets/commit-msg-template.txt —— 符合约定式或结构化规范的提交信息模板;当用户询问提交信息格式时建议使用。assets/gitignore-common.txt —— 常用的 .gitignore 规则集合;当用户存在大量未跟踪文件,或请求 .gitignore 示例时建议使用。当用户需要图表辅助理解(例如分支/合并流程图)时,请以文字描述方式说明,或指引其查阅 reference/ 文档;仅当用户明确要求视觉化呈现时,才创建或引用 assets/ 中的图像文件。