Skip to content

Git 本地开发分支常见操作指南

场景说明

假设:

  • huabei:团队开发分支
  • dev:自己本地开发分支

日常开发中,经常会遇到:

  • 别人往 huabei 提交了代码
  • 自己在 dev 上开发
  • 需要同步最新代码
  • 不想丢失自己的修改
  • 不想产生多余 merge commit

一、查看当前分支

bash
git branch

当前分支前面会有 *

例如:

bash
* dev
  huabei

二、同步远程最新代码

先更新团队分支:

bash
git checkout huabei
git pull

这样本地 huabei 就是最新的。


三、把 huabei 最新代码同步到 dev


方式 1:merge(最稳)

bash
git checkout dev
git merge huabei

特点

  • 保留双方提交历史
  • 安全
  • 容易理解
  • 会产生 merge commit

提交记录效果

text
A---B---C
     \    \
      D----E----M

M 就是 merge commit。


方式 2:rebase(推荐个人开发分支)

bash
git checkout dev
git rebase huabei

特点

  • 提交历史干净
  • 不会产生 merge commit
  • 更适合个人开发分支

提交记录效果

text
A---B---C---D'---E'

看起来像:

你的开发是基于最新代码进行的。


四、merge 和 rebase 区别

对比mergerebase
是否产生 merge commit不会
是否改写历史不会
是否安全
提交记录分叉线性
推荐场景团队协作个人开发

五、如何查看是否同步成功


方法 1:查看差异(推荐)

查看 dev 是否已经包含 huabei

bash
git diff dev..huabei

结果

无输出:

text
说明 dev 已同步 huabei

有输出:

text
说明还有代码没同步

方法 2:查看提交图

bash
git log --oneline --graph --all

可以看到:

  • merge 记录
  • rebase 后的线性记录

方法 3:查看某个 commit 是否存在

先看 huabei 最新提交:

bash
git log huabei --oneline -1

例如:

text
abc123 修复首页bug

查看 dev 是否包含:

bash
git branch --contains abc123

输出包含:

bash
dev

说明已经同步。


六、开发中最常见的问题


1. merge 后出现冲突

Git 提示:

bash
CONFLICT (content)

查看冲突文件:

bash
git status

文件会出现:

js
<<<<<<< HEAD
自己的代码
=======
别人的代码
>>>>>>> huabei

手动修改后:

bash
git add .
git commit

完成冲突处理。


2. rebase 冲突处理

解决冲突后:

bash
git add .
git rebase --continue

取消 rebase:

bash
git rebase --abort

3. 本地代码未提交,不敢同步

先临时保存:

bash
git stash

同步完成后恢复:

bash
git stash pop

七、推荐开发流程(最佳实践)


日常开发推荐

1. 更新团队分支

bash
git checkout huabei
git pull

2. 切回自己开发分支

bash
git checkout dev

3. 同步最新代码(推荐 rebase)

bash
git rebase huabei

4. 开始开发

bash
git add .
git commit -m "功能开发"

八、不推荐的危险操作


reset --hard

bash
git reset --hard huabei

会:

  • 覆盖当前分支
  • 丢失未保存代码

除非明确知道后果,否则不要使用。


九、推荐命令速查

更新团队分支

bash
git checkout huabei
git pull

merge 同步

bash
git checkout dev
git merge huabei

rebase 同步(推荐)

bash
git checkout dev
git rebase huabei

查看是否同步成功

bash
git diff dev..huabei

查看提交图

bash
git log --oneline --graph --all

暂存当前修改

bash
git stash

恢复:

bash
git stash pop
最近更新