skip to content
Astro Cactus

使用 GitHub 的最简实践工作流程

/ 9 min read

使用 GitHub 的最简实践工作流程

Git 简介

什么是 Git?

Git 是一个分布式版本控制系统,它可以跟踪文件的变化,让多人协作开发变得更加高效。无论是个人项目还是团队协作,Git 都能帮助你管理代码的版本历史。

为什么使用 Git?

  • 版本控制:记录项目的完整历史,随时可以回到之前的版本
  • 协作开发:多人可以同时在不同分支上工作,不会互相干扰
  • 代码备份:代码存储在远程仓库,不用担心本地数据丢失
  • 项目管理:通过分支、标签等功能,更好地组织和管理项目

Git 基础配置

在开始使用 Git 之前,需要进行一些基本配置:

Terminal window
# 设置用户名和邮箱
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
# 设置默认分支
git config --global init.defaultBranch main
# 查看当前配置
git config --list

Git 核心概念

在开始工作流程之前,我们需要了解一些关键概念:

仓库(Repository)

  • 远程仓库(Remote Repository):托管在 GitHub 上的共享代码仓库,简称为 “remote”
  • 本地仓库(Local Repository):远程仓库在你本地机器上的副本,包含:
    • 本地 Git 数据库:存储所有版本信息和提交历史
    • 工作目录:你实际编辑文件的地方

分支(Branch)

  • 主分支(Main Branch):仓库的主要分支,通常命名为 “main”(早期版本称为 “master”)
  • 特性分支(Feature Branch):为开发新功能或修复问题而创建的临时分支

工作区域

  • 工作区(Working Directory):你实际编辑文件的地方
  • 暂存区(Staging Area):准备提交的文件存放区域
  • 本地仓库(Local Repository):存储提交历史的地方

Git 常用命令速查表

命令说明
git clone <url>克隆远程仓库到本地
git status查看当前仓库状态
git add <file>将文件添加到暂存区
git commit -m "消息"提交暂存区的更改
git push将本地提交推送到远程仓库
git pull从远程仓库拉取最新更改
git branch查看分支列表
git log查看提交历史
git checkout -b <branch>创建并切换到新分支
git branch -d <branch>删除本地分支
git merge <branch>合并指定分支到当前分支
git rebase <branch>变基指定分支到当前分支

Git 最简实践工作流程

下面是一个适合初学者的 Git 工作流程,按照这些步骤操作可以帮助你有效地管理代码:

1. 克隆仓库

首先,将远程仓库复制到本地:

Terminal window
git clone https://github.com/username/repository.git
cd repository

2. 创建特性分支

在开始修改代码前,创建一个新的特性分支:

Terminal window
git checkout -b my-feature

提示:分支名应该简洁明了,反映你要做的工作,如 fix-login-bugadd-search-feature

3. 修改代码

在你的特性分支上,使用编辑器修改代码,添加新功能或修复问题。

4. 查看更改

查看你所做的更改:

Terminal window
git status # 查看哪些文件被修改
git diff # 查看具体修改内容

5. 添加更改到暂存区

将修改的文件添加到暂存区:

Terminal window
git add <filename> # 添加特定文件
# 或
git add . # 添加所有更改

6. 提交更改

将暂存区的更改提交到本地仓库:

Terminal window
git commit -m "简明扼要的提交信息"

提示:写好提交信息很重要!描述你做了什么,为什么做这些更改。

7. 推送到远程仓库

将你的特性分支推送到远程仓库:

Terminal window
git push origin my-feature

8. 保持与主分支同步

在你开发期间,主分支可能已经有了新的更新。定期同步主分支的更改:

Terminal window
# 切换到主分支
git checkout main
# 拉取最新更改
git pull origin main
# 切回特性分支
git checkout my-feature
# 将主分支的更改合并到特性分支
git rebase main
# 如果出现冲突,需要手动解决后继续 rebase
git add .
git rebase --continue
# 提交到远程仓库
git push -f origin my-feature

9. 创建拉取请求(Pull Request)

当你的功能开发完成后,在 GitHub 网站上创建一个拉取请求(PR):

  1. 访问你的 GitHub 仓库页面
  2. 点击 “Pull requests” 标签
  3. 点击 “New pull request” 按钮
  4. 选择你的特性分支和目标分支(通常是 main)
  5. 填写 PR 标题和描述
  6. 点击 “Create pull request”

10. 代码审查与合并

团队成员会审查你的代码,提出修改建议。根据反馈进行必要的修改,然后:

  1. 在本地修改代码
  2. 提交并推送更改
  3. PR 会自动更新

当 PR 被批准后,可以合并到主分支:

  1. 在 GitHub 上点击 “Merge pull request”
  2. 选择合并方式(通常推荐 “Squash and merge”)
  3. 确认合并

11. 清理分支

PR 合并后,清理不再需要的分支:

Terminal window
# 切换到主分支
git checkout main
# 拉取最新的主分支(包含你刚合并的更改)
git pull origin main
# 删除本地特性分支
git branch -d my-feature
# 删除远程特性分支(可选)
git push origin --delete my-feature

常见问题与解决方案

解决合并冲突

当 Git 无法自动合并更改时,会出现冲突:

  1. 打开冲突文件,寻找 <<<<<<<, =======, >>>>>>> 标记
  2. 编辑文件解决冲突
  3. 保存文件
  4. 使用 git add 标记为已解决
  5. 继续合并或变基操作

撤销更改

Terminal window
# 撤销工作区的更改
git checkout -- <file>
# 撤销暂存区的更改
git reset HEAD <file>
# 撤销最近的提交
git reset --soft HEAD~1

查看提交历史

Terminal window
git log

参考资料

总结

这个 Git 工作流程虽然看起来步骤较多,但每个步骤都有其重要性,可以帮助你更有效地使用 Git 和 GitHub 进行版本控制和团队协作。随着实践的增加,这些步骤会变成你的第二天性。

记住,Git 是一个强大的工具,本指南只是介绍了最基本的工作流程。随着你的熟练程度提高,可以探索更多高级功能,如交互式变基、Cherry-picking、Stashing 等。

祝你的 Git 之旅愉快!如有任何问题,欢迎在评论区留言。