GitHub是全球最大的代码托管平台,超过1亿开发者使用它进行版本控制和团队协作。无论你是个人开发者还是团队成员,掌握GitHub和Git都是必备技能。本文将从零开始系统讲解Git基础命令、GitHub使用技巧和团队协作最佳实践。

一、Git基础认知

什么是Git?

Git是一个分布式版本控制系统,由Linux之父Linus Torvalds创建。它能追踪代码的每一次修改,支持多人协作开发,是现代软件开发的基石。

Git vs GitHub

  • Git:版本控制工具,本地使用
  • GitHub:代码托管平台,基于Git,提供云端存储和协作功能

二、Git安装与配置

安装Git

  • Windows:下载Git for Windows安装包
  • Mac:使用Homebrew:brew install git
  • Linuxsudo apt-get install git

首次配置

git config –global user.name “你的名字”
git config –global user.email “your@email.com”

三、Git核心概念

工作区、暂存区、仓库

  • 工作区:你正在编辑的文件
  • 暂存区:临时存放即将提交的修改
  • 本地仓库:保存所有提交记录
  • 远程仓库:GitHub上的云端仓库

四、Git基础命令

1. 初始化仓库

cd your-project
git init // 在当前目录创建Git仓库

2. 查看状态

git status // 查看文件修改状态

3. 添加文件到暂存区

git add file.txt // 添加单个文件
git add . // 添加所有修改的文件

4. 提交更改

git commit -m “提交说明” // 提交暂存区的文件到仓库

5. 查看提交历史

git log // 查看完整提交历史
git log –oneline // 简洁模式
git log –graph // 图形化显示分支

6. 查看差异

git diff // 查看工作区与暂存区的差异
git diff HEAD // 查看工作区与最新提交的差异

五、分支管理

分支概念

分支允许你在不影响主代码的情况下开发新功能或修复bug。

分支命令

git branch // 查看所有分支
git branch feature-login // 创建新分支
git checkout feature-login // 切换到该分支
git checkout -b feature-login // 创建并切换(常用)
git branch -d feature-login // 删除分支

合并分支

git checkout main // 切换到主分支
git merge feature-login // 将feature-login合并到main

解决冲突

当两个分支修改了同一文件的同一位置时会产生冲突。

  1. Git会标记冲突文件
  2. 手动编辑文件,保留需要的内容
  3. git add .标记冲突已解决
  4. git commit完成合并

六、远程仓库操作

1. 克隆远程仓库

git clone https://github.com/username/repo.git

2. 查看远程仓库

git remote -v // 查看远程仓库地址

3. 添加远程仓库

git remote add origin https://github.com/username/repo.git

4. 推送到远程

git push origin main // 推送main分支到远程
git push -u origin main // 首次推送,设置upstream

5. 拉取远程更新

git pull origin main // 拉取远程main分支并合并
git fetch origin // 仅拉取不合并

七、GitHub使用指南

1. 创建仓库

  1. 登录GitHub
  2. 点击右上角”+”,选择”New repository”
  3. 填写仓库名、描述
  4. 选择公开(Public)或私有(Private)
  5. 点击”Create repository”

2. Pull Request(PR)工作流

Pull Request是GitHub团队协作的核心

流程

  1. Fork目标仓库(如果不是协作者)
  2. 克隆到本地:git clone your-fork-url
  3. 创建新分支:git checkout -b fix-bug
  4. 修改代码并提交
  5. 推送到GitHub:git push origin fix-bug
  6. 在GitHub网页上点击”Create Pull Request”
  7. 等待代码审查(Code Review)
  8. 审查通过后,管理员合并PR

3. Issue管理

Issue用于跟踪bug、功能请求和任务。

  • 创建Issue:描述问题或需求
  • 分配给团队成员
  • 添加标签(bug、enhancement、question等)
  • 在commit message中引用Issue:git commit -m "fix #123"

4. GitHub Actions(CI/CD)

自动化工作流,如自动测试、部署。

# .github/workflows/test.yml
name: Run Tests
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      – uses: actions/checkout@v2
      – name: Run tests
        run: npm test

八、常用场景实战

场景1:撤销修改

git checkout — file.txt // 撤销工作区修改
git reset HEAD file.txt // 撤销暂存区修改
git reset –hard HEAD~1 // 撤销最近一次提交(危险操作!)

场景2:暂存工作进度

git stash // 暂存当前修改
git stash pop // 恢复暂存的修改
git stash list // 查看所有stash

场景3:修改commit message

git commit –amend -m “新的提交说明” // 修改最近一次提交的message

场景4:合并多个commit

git rebase -i HEAD~3 // 交互式合并最近3个commit

九、团队协作最佳实践

1. 分支命名规范

  • feature/功能名:新功能开发
  • bugfix/问题描述:bug修复
  • hotfix/紧急修复:线上紧急问题
  • refactor/重构内容:代码重构

2. Commit Message规范

type(scope): subject

类型:
– feat: 新功能
– fix: bug修复
– docs: 文档修改
– style: 代码格式调整
– refactor: 重构
– test: 测试相关
– chore: 构建工具或辅助工具的变动

示例:
feat(login): 添加记住密码功能
fix(api): 修复用户信息接口返回null的问题

3. 代码审查(Code Review)

  • 小而频繁的PR优于大而复杂的PR
  • PR描述清楚修改内容和原因
  • 及时回复审查意见
  • 使用GitHub的Review功能留评论

十、常见问题

Q1: 如何忽略某些文件?

创建.gitignore文件:

node_modules/
.env
*.log
.DS_Store

Q2: 误删文件如何恢复?

git checkout HEAD file.txt // 从最近一次提交恢复文件

Q3: 如何删除远程分支?

git push origin –delete branch-name

总结

Git和GitHub是现代开发者的必备技能。掌握基础命令、理解分支管理、熟悉团队协作流程,你就能自如应对各种开发场景。记住:多练习、多实践,Git会成为你最可靠的开发伙伴。


参考来源

年底送送送!新用户扫码添加 客服微信,即可 免费 领取此项目教程哦!

扫码添加客服微信

添加客服,轻松获取资源!