Git 分支管理与远程仓库协作完整工作流程,适用新手Github协作,打通协作整个流程

Git 分支管理与远程仓库协作完整指南

本文将介绍如何使用 Git 进行本地克隆,分支管理、远程仓库连接、代码推送以及分支合并的完整流程。

📋 目录

  1. 克隆仓库到本地
  2. 检查远程仓库连接
  3. 创建并推送远程分支
  4. 修改文件并提交
  5. 推送到远程仓库
  6. 合并分支到主分支

1. 克隆仓库到本地

1.1克隆命令

git clone https://github.com/<your-org-or-username>/<your-repo>.git

1.2 克隆步骤

步骤1: 在自己需要克隆的仓库主页中复制链接,如图所示:
在这里插入图片描述
步骤2:github clone后面的仓库链接换成自己所复制的仓库链接,例如:

git clone https://github.com/zlsbksdxl/DRL-MCPO.git

步骤3:git命令粘贴到终端,在自己存储该项目的目录下按回车执行命令(前提是已经安装好Git)

在这里插入图片描述


2. 检查远程仓库连接

接着,确认本地仓库是否已连接到远程 GitHub 仓库。

2.1 查看当前远程连接

通过一下命令查看当前是否连接上了远程仓库

git remote -v

输出示例:

origin  https://github.com/yorkeyao/Awesome-Aerial-Embodied-AI.git (fetch)
origin  https://github.com/yorkeyao/Awesome-Aerial-Embodied-AI.git (push)

2.2 如果需要修改远程仓库地址

# 修改 origin 的地址
git remote set-url origin <your-repository-address>

# 例如:
git remote set-url origin https://github.com/<your-org-or-username>/<your-repo>.git

2.3 添加新的远程仓库

如果想保留原作者的仓库(upstream)以便同步更新:

# 添加上游仓库
git remote add upstream https://github.com/<your-org-or-username>/<your-repo>.git

# 查看所有远程连接
git remote -v

3. 创建并推送远程分支

3.1 查看当前分支

使用以下命令可以查看当前在本地的哪个分支,例如我目前在本地的zmk分支

git branch

在这里插入图片描述

3.2 创建远程分支

实际上,创建远程分支就是将本地分支推送到远程

# -u 参数会建立本地分支与远程分支的追踪关系
git push -u origin <本地分支名>

# 例如:推送 zmk 分支到远程
git push -u origin zmk

参数说明:

  • git push: 推送命令
  • origin: 远程仓库名(默认)
  • zmk: 本地分支名
  • -u (或 --set-upstream): 建立追踪关系,以后只需 git push 即可

3.3 验证远程分支

# 查看远程分支列表
git branch -r

# 查看所有分支(本地+远程)
git branch -a

4. 修改文件并提交

4.1 查看文件修改状态

git status

输出示例:

On branch zmk
Changes not staged for commit:
  modified:   README.md

4.2 添加修改到暂存区

# 添加单个文件
git add README.md

# 或添加所有修改的文件
git add .

4.3 提交修改

git commit -m "添加20篇协同感知相关论文到 Perception 部分"

提交信息编写建议:

  • 使用清晰、简洁的描述
  • 说明"做了什么"而不是"怎么做的"
  • 可以使用中文或英文
  • 重要修改可以添加详细说明

4.4 查看提交历史

# 简洁查看
git log --oneline

# 详细查看
git log

5. 推送到远程仓库

5.1 首次推送(已建立追踪关系)

git push origin zmk

输出示例:

Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 2.45 KiB | 2.45 MiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To https://github.com/yorkeyao/Awesome-Aerial-Embodied-AI.git
   abc1234..def5678  zmk -> zmk

5.2 后续推送(简化命令)

因为已经用 -u 建立了追踪关系,以后只需:

git push

快速提交推送流程

# 一次性完成:添加 → 提交 → 推送
git add .
git commit -m "更新说明"
git push

6. 合并分支到主分支

将本地分支更新到远程分支之后,如果觉得修改完成,需要将远程功能分支合并到主分支,有两种方式可以将功能分支合并到主分支:

方式一:通过 GitHub Pull Request(推荐)⭐

这是最安全、最常用的方式,适合团队协作。

步骤:
  1. 访问仓库页面

  2. 创建 Pull Request

  • 点击 “Pull requests” 标签

在这里插入图片描述

  • 点击 “New pull request” 按钮

在这里插入图片描述

  • 选择分支:
    • base: main (目标分支)
    • compare: zmk (你的功能分支)
  1. 填写 PR 信息

    标题:添加协同感知相关论文
    
    描述:
    - 添加了 20 篇协同感知相关论文
    - 包括多智能体协同检测、语义分割等任务
    - 重新组织了 Perception 部分的表格结构
    
  2. 审查与合并

    • 点击 “Create pull request”
    • 检查文件变更
    • 确认无误后点击 “Merge pull request”
    • 选择合并方式:
      • Merge commit: 保留所有提交历史
      • Squash and merge: 合并为一个提交(推荐)
      • Rebase and merge: 线性历史
  3. 删除功能分支(可选)

    • 合并后可以安全删除远程分支

方式二:通过命令行直接合并

适合个人项目或紧急修复。

步骤:
  1. 切换到主分支

    git checkout main
    
  2. 拉取最新代码

    git pull origin main
    
  3. 合并功能分支

    git merge zmk
    
  4. 推送到远程

    git push origin main
    
  5. 删除本地功能分支(可选)

    git branch -d zmk
    
  6. 删除远程功能分支(可选)

    git push origin --delete zmk
    

📝 完整工作流程示例

以下是一个完整的开发流程示例:

# 1. 克隆仓库
git clone https://github.com/yorkeyao/Awesome-Aerial-Embodied-AI.git
cd Awesome-Aerial-Embodied-AI

# 2. 创建并切换到功能分支
git checkout -b feature-add-papers

# 3. 修改文件(例如:编辑 README.md)
# ... 在编辑器中修改文件 ...

# 4. 查看修改状态
git status

# 5. 添加修改到暂存区
git add README.md

# 6. 提交修改
git commit -m "添加协同感知相关论文"

# 7. 推送到远程(首次)
git push -u origin feature-add-papers

# 8. 在 GitHub 创建 Pull Request

# 9. 合并后拉取最新的主分支
git checkout main
git pull origin main

# 10. 删除功能分支
git branch -d feature-add-papers
git push origin --delete feature-add-papers

⚠️ 常见问题与解决

1. 推送被拒绝(远程有新提交)

# 错误信息
! [rejected]        main -> main (fetch first)

# 解决方法
git pull origin main --rebase
git push origin main

2. 合并冲突

# 查看冲突文件
git status

# 手动解决冲突后
git add <已解决的文件>
git commit -m "解决合并冲突"

3. 误提交敏感信息

# 撤销最后一次提交(保留修改)
git reset HEAD~1

# 撤销最后一次提交(丢弃修改)
git reset --hard HEAD~1

# 如果已推送到远程(慎用)
git push origin main --force

🔗 相关资源

Happy Coding! 🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在卢森堡看书的星落

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值