一、Git 的核心概念(先理解模型)

Git 的工作结构可以理解为 4 层:

远程仓库 (Remote)
        ↑↓
本地仓库 (Repository)
        ↑
暂存区 (Stage)
        ↑
工作区 (Workspace)

解释:

  • 工作区:你写代码的地方
  • 暂存区:准备提交的代码
  • 本地仓库:你的版本历史
  • 远程仓库:团队共享仓库

二、Git 开发基本流程

完整流程:

clone代码
↓
创建分支
↓
写代码
↓
git add
↓
git commit
↓
git push
↓
发起合并请求
↓
代码评审
↓
合并到主分支

三、第一次使用 Git

配置身份:

git config --global user.name "yourname"
git config --global user.email "your@email.com"

查看配置:

git config --list

四、获取项目代码

从服务器下载项目:

git clone git@server:project.git

目录结构:

project/
 ├─ .git
 ├─ src
 ├─ include
 └─ README.md

进入项目:

cd project

五、创建开发分支(重要)

一般不直接在 mainmaster 上开发。

创建分支:

git checkout -b feature_uart

等价:

git branch feature_uart
git checkout feature_uart

查看分支:

git branch

六、日常开发流程

1 写代码

修改文件:

src/uart.c

2 查看修改

git status

输出:

modified: src/uart.c

3 添加到暂存区

git add src/uart.c

或者:

git add .

4 提交版本

git commit -m "add uart driver"

生成一个 commit。


七、提交到远程仓库

第一次 push:

git push origin feature_uart

以后:

git push

远程就会有:

feature_uart

八、代码合入流程(团队开发)

通常流程:

开发分支
↓
push
↓
Merge Request / Pull Request
↓
Code Review
↓
合并到 main

九、同步最新代码

团队成员会更新主分支。

获取更新:

git pull

或者:

git fetch

区别:

git pull = fetch + merge

十、合并分支

切换到主分支:

git checkout main

合并:

git merge feature_uart

十一、解决冲突

冲突例子:

<<<<<<< HEAD
old code
=======
new code
>>>>>>> feature_uart

手动修改。

然后:

git add .
git commit

十二、删除分支

开发完成:

删除本地分支:

git branch -d feature_uart

删除远程分支:

git push origin --delete feature_uart

十三、查看历史

查看提交:

git log

简洁模式:

git log --oneline

图形模式:

git log --graph --oneline --all

十四、撤销操作(非常常用)

撤销修改

git restore file.c

撤销 add

git reset HEAD file.c

撤销 commit

git reset --soft HEAD~1

十五、查看代码差异

查看修改:

git diff

查看暂存区:

git diff --cached

十六、常见开发场景

场景1:开发新功能

流程:

git checkout main
git pull
git checkout -b feature_xxx
开发代码
git add
git commit
git push
发起合并

场景2:修复 bug

main
 └─ bugfix_xxx

流程:

git checkout main
git checkout -b bugfix_uart
修复问题
git commit
git push
合并

场景3:同步团队代码

git checkout main
git pull

场景4:暂存未完成工作

临时保存:

git stash

恢复:

git stash pop

十七、分支管理模型(推荐)

很多团队使用 Git Flow

main        稳定版本
develop     开发主线
feature     功能开发
release     发布版本
hotfix      紧急修复

结构:

main
 └─ develop
      ├─ feature_uart
      ├─ feature_spi
      └─ feature_i2c

十八、提交信息规范

好的 commit:

fix: uart buffer overflow
feat: add spi driver
docs: update README
refactor: optimize memory usage

十九、Git 常用命令总结

查看状态:

git status

提交:

git add .
git commit -m "msg"

同步:

git pull

上传:

git push

分支:

git branch
git checkout -b new_branch

二十、工作中真实开发流程

嵌入式项目示例:

firmware
 ├─ bsp
 ├─ driver
 ├─ app
 └─ middleware

开发流程:

拉代码
↓
创建feature分支
↓
开发
↓
commit
↓
push
↓
代码评审
↓
合并
↓
发布版本

二十一、几个重要原则

不要直接改 main

必须:

feature branch

commit 要小而清晰

不要:

一次提交100个文件

经常 pull

避免冲突。


总结

Git 在工作中的完整流程:

clone
↓
创建分支
↓
开发
↓
add
↓
commit
↓
push
↓
merge request
↓
code review
↓
merge

Git 本质解决三个问题:

版本管理
团队协作
代码历史

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐