两种完整的 Git 分支协作流程:「本地新建仓库推送到远程」和「克隆远程仓库开发分支」,覆盖从分支创建、开发、推送、合并到清理的全环节,每个步骤都附带可执行命令和场景说明,新手可直接照做。

前置准备

  1. 已配置 Git 用户名 / 邮箱(git config --global user.name/email);

  2. 已在 GitHub 上创建空仓库(如 https://github.com/你的账号/test-repo.git);

  3. 理解核心分支规范:main(主分支,生产环境)、dev(开发分支,日常开发)、feature/*(功能分支,单个功能)。


一、流程一:本地新建仓库 → 推送到远程(分支版)

适用于「本地先写代码,后关联远程仓库」的场景,全程按分支规范操作。

步骤 1:本地初始化仓库并创建主分支

运行

# 1. 创建本地项目文件夹并进入
mkdir test-repo && cd test-repo

# 2. 初始化 Git 仓库(默认创建 main 分支)
git init

# 3. 新增初始文件(如 README.md),完成首次提交(main 分支)
echo "# 测试仓库" > README.md
git add .
git commit -m "main: 初始化仓库,添加 README"

步骤 2:创建开发分支 dev(核心协作分支)

运行

# 1. 创建并切换到 dev 分支(从 main 分支派生)
git switch -c dev  # 等价于 git checkout -b dev

# 2. 在 dev 分支新增开发文件,提交(模拟基础开发)
echo "开发分支初始化" > dev-note.md
git add .
git commit -m "dev: 初始化开发分支,添加开发笔记"

步骤 3:关联远程仓库并推送主分支 + 开发分支

运行

# 1. 关联 GitHub 远程仓库(别名 origin)
git remote add origin https://github.com/你的账号/test-repo.git

# 2. 推送 main 分支到远程(首次推送加 -u 建立关联)
git push -u origin main

# 3. 推送 dev 分支到远程(建立关联,后续可直接 git push)
git push -u origin dev

步骤 4:创建功能分支开发(核心:隔离开发)

运行

# 1. 从 dev 分支创建功能分支(如开发登录功能)
git switch -c feature/login dev

# 2. 在功能分支开发代码,多次提交
echo "登录接口代码" > login.py
git add .
git commit -m "feature/login: 新增登录接口基础逻辑"

# 3. 继续开发,补充提交(模拟迭代)
echo "添加手机号验证" >> login.py
git add .
git commit -m "feature/login: 完善登录接口,添加手机号验证"

步骤 5:推送功能分支到远程(协作 / 备份)

运行

# 推送 feature/login 到远程,建立关联
git push -u origin feature/login

步骤 6:合并功能分支到 dev(功能完成)

运行

# 1. 切回 dev 分支,拉取远程最新 dev 代码(避免冲突)
git switch dev
git pull origin dev  # 多人协作时必做,同步他人修改

# 2. 合并 feature/login 到 dev 分支
git merge feature/login -m "dev: 合并登录功能分支"

# 3. 推送合并后的 dev 分支到远程
git push origin dev

步骤 7:合并 dev 到 main(功能上线)

运行

# 1. 切回 main 分支,拉取远程最新 main 代码
git switch main
git pull origin main

# 2. 合并 dev 分支到 main(仅功能测试通过后执行)
git merge dev -m "main: 合并 dev 分支,上线登录功能"

# 3. 推送 main 分支到远程(生产环境更新)
git push origin main

步骤 8:清理无用分支(本地 + 远程)

运行

# 1. 删除本地 feature/login 分支(已合并,-d 安全删除)
git branch -d feature/login

# 2. 删除远程 feature/login 分支(清理远程冗余)
git push origin --delete feature/login

# (可选)若 dev 分支需长期维护,无需删除;仅清理功能分支

二、流程二:克隆远程仓库 → 开发分支(更常用)

适用于「先克隆远程空仓库,再按分支开发」的场景(团队协作主流方式)。

步骤 1:克隆远程仓库到本地

运行

# 克隆远程仓库(自动关联 origin,默认拉取 main 分支)
git clone https://github.com/你的账号/test-repo.git
cd test-repo

步骤 2:创建并推送 dev 分支到远程(初始化开发分支)

运行

# 1. 从 main 分支创建 dev 分支并切换
git switch -c dev

# 2. 推送 dev 分支到远程(让团队共享开发分支)
git push -u origin dev

步骤 3:拉取远程 dev 分支(多人协作时)

如果是团队成员,克隆仓库后需先拉取远程 dev 分支:

运行

# 1. 拉取远程所有分支信息(更新本地缓存)
git fetch origin

# 2. 创建并切换到本地 dev 分支,关联远程 dev
git switch -c dev origin/dev

步骤 4:创建功能分支开发(和流程一一致)

运行

# 从 dev 分支创建 feature/pay 分支(开发支付功能)
git switch -c feature/pay dev

# 开发+提交
echo "支付接口代码" > pay.py
git add .
git commit -m "feature/pay: 新增支付接口"

# 推送功能分支到远程(供同事审核/协作)
git push -u origin feature/pay

步骤 5:通过 Pull Request(PR)合并分支(GitHub 网页版)

团队协作中,不建议本地直接合并,优先用 GitHub PR 规范合并:

  1. 打开 GitHub 仓库页面 → 点击「Pull requests」→「New pull request」;
  2. 「base: dev」(目标分支)→「compare: feature/pay」(待合并分支);
  3. 填写 PR 描述(如「支付功能开发完成,包含微信 / 支付宝接口」);
  4. 审核通过后,点击「Merge pull request」合并到 dev 分支;
  5. 本地拉取合并后的 dev 代码:

    运行

    git switch dev
    git pull origin dev
    

步骤 6:合并 dev 到 main(上线)+ 清理分支

运行

# 1. 切回 main 分支,拉取最新代码
git switch main
git pull origin main

# 2. 合并 dev 到 main
git merge dev -m "main: 上线支付功能"
git push origin main

# 3. 清理分支
git branch -d feature/pay  # 本地删除
git push origin --delete feature/pay  # 远程删除

核心补充:分支操作关键命令速查

操作 命令
查看所有分支 git branch -a(本地 + 远程)
切换分支 git switch 分支名(git 2.23+)
创建并切换分支 git switch -c 新分支名 基准分支
拉取远程分支到本地 git switch -c 本地分支名 origin/远程分支名
合并分支 git merge 待合并分支 -m "合并备注"
删除本地分支 git branch -d 分支名(已合并)/ -D(强制)
删除远程分支 git push origin --delete 分支名

流程总结(核心原则)

  1. 分支隔离:永远不在 main 分支直接开发,功能都在 feature/* 分支开发;

  2. 合并规范feature/* → dev → main,逐级合并,避免跨级直接合到 main;

  3. 推送前拉取:合并 / 推送前必执行 git pull,同步远程最新代码,减少冲突;

  4. 及时清理:功能合并后立即删除本地 / 远程功能分支,避免分支泛滥;

  5. 备注规范:提交备注带分支前缀(如 feature/login: 修复XX Bug),便于追溯。

三、安全合并远程修改(推荐,无数据丢失)

步骤 1:拉取远程 vip/zs 分支的最新代码并合并

运行

# 拉取远程 vip 仓库的 zs 分支到本地,并自动合并
git pull vip zs --allow-unrelated-histories
# 补充:--allow-unrelated-histories 是为了防止「本地和远程 zs 分支无公共提交历史」导致的合并失败
  • 无冲突情况:Git 会自动创建「合并提交」,把远程和本地的内容整合,输出类似:

    Merge made by the 'recursive' strategy.
    
  • 有冲突情况:Git 会提示 Automatic merge failed; fix conflicts and then commit the result.,解决冲突步骤:

    1. 执行 git status 查看冲突文件(标记为 both modified);

    2. 打开冲突文件,删除 Git 标记的 <<<<<<</=======/>>>>>>,手动保留需要的内容;

    3. 提交解决后的代码:
      git add 冲突文件名
      git commit -m "合并远程vip/zs分支,解决XX文件冲突"
      

步骤 2:重新推送本地 zs 分支到远程 vip

合并完成后,本地 zs 分支就包含了远程的所有提交,此时推送会成功:

运行

git push -u vip zs

强制推送(谨慎,会覆盖远程代码)

如果你确认远程 vip/zs 分支的「新提交」是无用的(比如是误提交、测试内容),且你有权覆盖远程内容(该仓库仅你使用),可执行强制推送(会丢失远程 zs 分支中你本地没有的提交,团队仓库绝对禁止使用!):

运行

# 强制推送本地 zs 分支覆盖远程 vip/zs 分支
git push -f -u vip zs

⚠️ 警告:强制推送会直接替换远程 zs 分支的所有提交记录,若有其他开发者提交过代码,会导致他们的修改丢失,仅适用于个人专属仓库。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐