C语言中文社区git仓库:https://gitee.com/cyyzwsq/C-Coding.git
区域 | 作用 | 常用命令 |
---|---|---|
工作区 (Workspace) | 本地文件系统可见的目录 | git status |
暂存区 (Index) | 临时存储变更,准备提交 | git add <file> |
本地仓库 (Repository) | 存储完整提交历史 | git commit |
远程仓库 (Remote) | 云端共享仓库(如GitHub/GitLab) | git push, git pull |
▶️ 关键流程:修改文件 →
git add
添加至暂存区 →git commit
提交到本地仓库 →git push
同步远程。
# Windows:官网下载安装包
# macOS:brew install git
# Linux:sudo apt install git
git config --global user.name "Your Name" # 设置全局用户名
git config --global user.email "email@example.com" # 设置邮箱
git config --global core.editor "code --wait" # 设置VS Code为默认编辑器
新建仓库:
git init
(当前目录初始化为仓库)
git clone <url>
(克隆远程仓库)
文件生命周期管理:
git add . # 添加所有修改到暂存区
git commit -m "Fix login bug" # 提交到本地仓库
git rm --cached file.log # 停止跟踪文件(保留本地)
git mv old.txt new.txt # 文件重命名
场景 | 命令 |
---|---|
创建分支 | git branch feature-auth |
切换分支 | git checkout main |
创建并切换 | git checkout -b hotfix |
删除已合并分支 | git branch -d hotfix |
强制删除未合并分支 | git branch -D experimental |
git merge feature # 将feature分支合并到当前分支
<<<<<<<
/=======
/>>>>>>>
的文件 → git add
→ git commit
。git checkout feature
git rebase main # 将feature的提交“移植”到main最新提交之后
⚠️ 注意:仅限私有分支使用,公共分支避免变基以免破坏协作历史。
git remote add origin https://github.com/user/repo.git # 关联远程仓库
git push -u origin main # 首次推送并设置上游分支
git pull origin main # 拉取远程更新(= fetch + merge)
git push --force-with-lease # 安全强制推送(避免覆盖他人提交)
git tag v1.0.0 # 创建轻量标签
git tag -a v2.0 -m "Release notes" # 创建含注释的标签
git push origin --tags # 推送所有标签到远程
git stash -u # 保存未跟踪文件在内的所有修改
git stash list # 查看保存列表
git stash pop # 恢复最近一次保存并删除记录
git bisect start # 启动二分查找
git bisect bad # 标记当前版本有Bug
git bisect good v1.0 # 标记过去正常版本
# Git自动切换中间提交 → 测试后标记good/bad → 定位问题提交
git worktree add ../debug-branch debug # 创建独立目录调试分支
git worktree list # 查看所有工作树
git worktree remove ../debug-branch # 完成后删除
示例:提交前自动格式化代码
创建.git/hooks/pre-commit
:
#!/bin/sh
npx prettier --write . # 使用Prettier格式化
git add . # 重新添加格式化后的文件
赋予执行权限:chmod +x .git/hooks/pre-commit
。
分支策略选择
develop
/release
/hotfix
分支)main
+ 功能分支)提交规范
feat:
, fix:
, docs:
, chore:
(遵循Conventional Commits).gitignore配置 忽略日志、依赖目录等非源码文件:
*.log
node_modules/
.env
dist/
场景 | 命令 |
---|---|
丢弃工作区修改 | git checkout -- file.txt |
撤销暂存区文件 | git reset HEAD file.txt |
回退到历史提交(保留工作区) | git reset --soft HEAD~1 |
彻底重置到某提交(危险!) | git reset --hard <commit-id> |
恢复误删分支 | git reflog → 查找提交ID → git branch recovery <id> |
结语 Git的分布式设计赋予开发者极大的灵活性,但高效协作需遵循规范流程。建议:
clone
→add
→commit
→push
)起步