创建仓库
This commit is contained in:
86
Git/Git 常用命令总结与检索手册.md
Normal file
86
Git/Git 常用命令总结与检索手册.md
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
tags:
|
||||
aliases:
|
||||
- 📜 Git 常用命令总结与检索手册
|
||||
date created: 星期一, 十二月 8日 2025, 12:27:54 凌晨
|
||||
date modified: 星期一, 十二月 8日 2025, 12:35:01 凌晨
|
||||
---
|
||||
|
||||
# 📜 Git 常用命令总结与检索手册
|
||||
|
||||
## I. 初始化与基础操作 (Initialization & Basics)
|
||||
|
||||
| 目的 | 命令 | 描述 |
|
||||
| :--------------- | :------------------------------------------------ | :---------------------------------------------------------------------------------------------- |
|
||||
| **创建新仓库** | `git init` | 在当前目录初始化一个空的 Git 仓库。 |
|
||||
| **克隆远程仓库** | `git clone <url>` | 将远程仓库(如 Gitea)完整地克隆到本地。 |
|
||||
| **设置用户信息** | `git config --global user.name "Your Name"` | 设置全局用户名,用于 Commit 记录。 |
|
||||
| | `git config --global user.email "your@email.com"` | 设置全局邮箱,用于 Commit 记录。 |
|
||||
| **检查状态** | `git status` | 查看工作区 (Working Directory) 和暂存区 (Staging Area) 的状态,哪些文件已修改、已暂存、未追踪。 |
|
||||
|
||||
## II. 日常工作流 (Daily Workflow - C/A/C/P)
|
||||
|
||||
日常工作遵循 **C**heckout / **A**dd / **C**ommit / **P**ush 流程。
|
||||
|
||||
| 目的 | 命令 | 描述 |
|
||||
| :--------------- | :----------------------------------------- | :--------------------------------------------------------- |
|
||||
| **暂存文件** | `git add <file>` | 将文件从工作区添加到暂存区。 |
|
||||
| | `git add .` | 暂存所有修改和新增文件(不包含删除)。 |
|
||||
| **提交到本地库** | `git commit -m "Commit Message"` | 将暂存区内容提交到本地仓库,必须包含清晰的提交信息。 |
|
||||
| **提交多行信息** | `git commit -m "Subject" -m "Body line 1"` | 创建包含多行 `body` 的提交信息。 |
|
||||
| **推送到远程库** | `git push origin <branch>` | 将本地分支的提交推送到远程仓库。 |
|
||||
| | `git push -u origin <branch>` | **初次推送**时使用,设置本地分支追踪远程分支。 |
|
||||
| **拉取最新代码** | `git pull origin <branch>` | **(Fetch + Merge)** 拉取远程分支并自动合并到当前本地分支。 |
|
||||
| **拉取并清理** | `git fetch --prune` / `git fetch -p` | 拉取远程更新,并删除本地已失效的远程跟踪引用。 |
|
||||
|
||||
## III. 分支管理 (Branch Management)
|
||||
|
||||
| 目的 | 命令 | 描述 |
|
||||
| :----------------- | :-------------------------------- | :----------------------------------------------- |
|
||||
| **查看本地分支** | `git branch` | 列出本地所有分支,当前分支前有 `*` 标记。 |
|
||||
| **查看远程分支** | `git branch -r` | 列出所有远程跟踪分支。 |
|
||||
| **创建新分支** | `git branch <name>` | 基于当前分支创建一个新分支。 |
|
||||
| **创建并切换** | `git checkout -b <name>` | 创建新分支并立即切换到该分支(用于新功能开发)。 |
|
||||
| **切换分支** | `git checkout <name>` | 切换到已存在的分支。 |
|
||||
| **删除已合并分支** | `git branch -d <name>` | 安全地删除本地已合并的分支。 |
|
||||
| **强制删除分支** | `git branch -D <name>` | 强制删除本地未合并的分支(请谨慎使用)。 |
|
||||
| **删除远程分支** | `git push origin --delete <name>` | 删除远程仓库上的分支。 |
|
||||
|
||||
## IV. 代码历史与撤销 (History & Undo)
|
||||
|
||||
| 目的 | 命令 | 描述 |
|
||||
| :----------------- | :------------------------ | :----------------------------------------------------------- |
|
||||
| **查看提交历史** | `git log` | 查看完整的提交历史。 |
|
||||
| **简洁历史** | `git log --oneline` | 以一行方式显示提交历史(常用)。 |
|
||||
| **查看差异** | `git diff` | 查看工作区和暂存区之间的差异。 |
|
||||
| | `git diff --staged` | 查看暂存区和本地仓库 HEAD 之间的差异。 |
|
||||
| **撤销暂存** | `git reset HEAD <file>` | 将文件从暂存区移回工作区(取消 `git add`)。 |
|
||||
| **撤销工作区修改** | `git restore <file>` | 丢弃工作区中对某个文件的所有修改(危险操作)。 |
|
||||
| **重置到某一提交** | `git reset --soft <hash>` | 重置 HEAD 到指定提交,保留工作区和暂存区的修改。 |
|
||||
| | `git reset --hard <hash>` | **危险操作:** 彻底重置 HEAD、暂存区和工作区,丢弃所有修改。 |
|
||||
| **合并提交** | `git rebase -i <ref>` | 交互式地合并、修改、删除历史提交(用于清理历史)。 |
|
||||
|
||||
## V. 合并与集成 (Merge & Rebase)
|
||||
|
||||
| 目的 | 命令 | 描述 |
|
||||
| :---------------- | :--------------------------------------------------------------- | :----------------------------------------------------------- |
|
||||
| **合并分支** | `git merge <branch>` | 将指定分支的更改合并到当前分支。 |
|
||||
| **变基 (Rebase)** | `git rebase <branch>` | 将当前分支的提交移动到目标分支的最新提交之后,保持线性历史。 |
|
||||
| **解决冲突** | `git status` -> **编辑文件** -> `git add <file>` -> `git commit` | 标准的冲突解决流程。 |
|
||||
| **放弃 Rebase** | `git rebase --abort` | 取消正在进行的 `rebase` 操作,回到开始前的状态。 |
|
||||
|
||||
## VI. 协作工具 (Collaboration Tools)
|
||||
|
||||
| 目的 | 命令 | 描述 |
|
||||
| :--------------- | :---------------------------------------------------- | :---------------------------------------------------- |
|
||||
| **查看远程库** | `git remote -v` | 查看当前配置的远程仓库地址和名称(通常是 `origin`)。 |
|
||||
| **设置上游分支** | `git branch --set-upstream-to=origin/<remote_branch>` | 为本地分支设置远程跟踪分支。 |
|
||||
| **推送标签** | `git tag <tag-name>` -> `git push origin --tags` | 创建本地标签并推送到远程仓库。 |
|
||||
|
||||
---
|
||||
|
||||
> **最佳实践提醒:**
|
||||
> 1. **频繁提交 (Commit)**:保持提交的原子性和描述的清晰性。
|
||||
> 2. **拉取最新 (Pull)**:在创建新分支和开始工作前,务必 `git pull origin develop`。
|
||||
> 3. **使用分支**:永远在 `feature/` 分支上工作。
|
||||
> 4. **SSH 密钥**:确保您的 SSH 密钥正确配置,以避免重复输入密码。
|
||||
81
Git/一个给AI用的Commit信息约束文件.md
Normal file
81
Git/一个给AI用的Commit信息约束文件.md
Normal file
@@ -0,0 +1,81 @@
|
||||
---
|
||||
tags: []
|
||||
aliases:
|
||||
- AI Git 协作与提交规范 (Context for AI)
|
||||
date created: 星期四, 十二月 4日 2025, 8:24:48 晚上
|
||||
date modified: 星期四, 十二月 4日 2025, 8:28:44 晚上
|
||||
---
|
||||
|
||||
# AI Git 协作与提交规范 (Context for AI)
|
||||
|
||||
本文件定义了 RadarSimulator 项目的 Git 协作规则。作为 AI 助手,在生成提交信息、分支名称或 PR 描述时,**必须严格遵守**以下约束。
|
||||
|
||||
## 1. 分支命名规范 (Branch Naming)
|
||||
|
||||
- **开发基准分支**: `develop` (禁止直接推送)
|
||||
- **生产分支**: `main` (禁止直接推送)
|
||||
- **工作分支 (Feature Branch)**:
|
||||
|
||||
* 格式: `feature/<description-in-kebab-case>`
|
||||
|
||||
* 要求: 全小写,使用连字符分隔,推荐关联 Issue。
|
||||
|
||||
* 示例: `feature/add-tsc-timer`, `feature/fix-udp-buffer-overflow`
|
||||
|
||||
## 2. 提交信息规范 (Commit Message)
|
||||
|
||||
必须遵循 **Conventional Commits** 标准。
|
||||
|
||||
### 2.1 格式模板
|
||||
|
||||
```text
|
||||
<type>(<scope>): <subject> (#<IssueID>)
|
||||
[body] (可选)
|
||||
```
|
||||
|
||||
### 2.2 字段约束
|
||||
|
||||
1. **`<type>` (枚举,严格限制):**
|
||||
|
||||
* `feat`: 新功能 (Features)
|
||||
|
||||
* `fix`: Bug 修复 (Bug Fixes)
|
||||
|
||||
* `docs`: 文档变更 (Documentation)
|
||||
|
||||
* `style`: 格式调整 (不影响代码逻辑,如空格、分号)
|
||||
|
||||
* `refactor`: 代码重构 (即不是新增功能,也不是修改 bug)
|
||||
|
||||
* `test`: 增加测试或修改现有测试
|
||||
|
||||
* `chore`: 构建过程或辅助工具的变动 (如 CMake, Docker, gitignore)
|
||||
|
||||
1. **`<scope>` (可选):**
|
||||
|
||||
* 描述修改的模块。
|
||||
|
||||
* 常见值: `core`, `tools`, `sim`, `ci`, `parser`, `common`.
|
||||
|
||||
1. **`<subject>` (必需):**
|
||||
|
||||
* **语言**: **中文**。
|
||||
|
||||
* 时态: 使用现在时 (如 " 添加…", " 修复…")。
|
||||
|
||||
* 格式: 结尾**不要**加句号。
|
||||
|
||||
1. **`(#<IssueID>)` (可选):**
|
||||
|
||||
* 如果有 ID,请关联 Issue ID。如果用户未提供,请主动询问并提示用户填写。
|
||||
|
||||
### 2.3 示例
|
||||
|
||||
* `feat(core): 实现基于 TSC 的高精度计时器 (#128)`
|
||||
* `fix(tools): 修正接收端缓冲区溢出问题 (#129)`
|
||||
* `chore(ci): 移除 Dockerfile 冗余步骤 (#130)`
|
||||
|
||||
## 3\. 工作流约束 (Workflow Constraints)
|
||||
|
||||
1. **原子性提交 (Atomic Commits)**: 不要将不相关的修改混入同一个 Commit。AI 在分析 Diff 时,若发现多个不相关的改动,应建议拆分为多个 Commits。
|
||||
2. **Pull Request 标题**: 必须与 Commit Message 格式保持一致。
|
||||
Reference in New Issue
Block a user