GitHub新手入门 - 从创建仓库到协作管理

GitHub新手入门 - 从创建仓库到协作管理

GitHub 是开发者的社交平台,同时也是代码托管的强大工具。无论是个人项目、开源协作,还是团队开发,GitHub 都能让你轻松管理代码、版本控制和团队协作。今天,我们将从基础开始,带你了解如何在 GitHub 上创建仓库、管理分支、提交 Pull Request 和解决协作中的问题。


1. 介绍与初步配置

1.1 什么是Git和GitHub?
  • Git 是一个分布式版本控制系统,用来记录文件的修改历史,可以追踪和管理源代码的变化。
  • GitHub 是一个基于 Git 的在线平台,允许开发者存储、共享、协作开发项目。你可以把 GitHub 看作是 Git 的云端版。
1.2 版本控制的基本概念

版本控制用于记录文件或代码的变动历史,它帮助你:

  • 追踪所有更改。
  • 在项目中回退到先前版本。
  • 多人协作时避免冲突,合并不同版本的代码。
1.3 注册和设置GitHub账户
  1. 访问 GitHub官网
  2. 点击右上角的 Sign up,注册一个新的账户。
  3. 按照提示完成账户创建,选择一个用户名并设置密码。
  4. 完成邮箱验证后,你的GitHub账户就创建成功了!
1.4 配置SSH密钥(可选,但推荐)

配置 SSH 密钥可以让你在没有每次输入用户名和密码的情况下推送代码到 GitHub:

  1. 在终端生成 SSH 密钥:

    bash 复制代码
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  2. 将生成的公钥添加到 GitHub:

    • 进入 GitHub 账户设置,找到 SSH and GPG keys
    • 点击 New SSH key,将你的公钥粘贴进去。

2. 创建仓库与克隆到本地

2.1 如何创建一个新仓库
  1. 登录 GitHub 后,点击右上角的 + 按钮,选择 New repository
  2. 填写仓库名称(Repository name),可以选择添加描述(Description)。
  3. 选择仓库的可见性:Public (公开)或 Private(私有)。
  4. 勾选 Initialize this repository with a README,这将创建一个初始的 README 文件来描述项目。
  5. 点击 Create repository 完成创建。
2.2 GitHub的仓库结构和界面概述
  • Code:显示所有代码文件。
  • Issues:用于追踪 bugs、任务和功能请求。
  • Pull requests:查看和管理代码提交请求。
  • Actions:用于持续集成和部署的工作流。
  • Projects:管理项目任务和进度。
  • Wiki:用于项目文档的创建和编辑。
2.3 安装Git(Windows/Linux/macOS)
  • Windows :下载安装 Git for Windows,按提示安装。
  • Linux :在终端输入 sudo apt install git(Ubuntu/Debian)或 sudo yum install git(CentOS)。
  • macOS :输入 brew install git(使用 Homebrew)。
2.4 克隆仓库的命令和过程

使用 GitHub 上仓库页面的 Clone or download 按钮获取仓库的 URL,接着在终端输入以下命令将仓库克隆到本地:

bash 复制代码
git clone https://github.com/username/repository.git

这将创建一个本地仓库副本,你可以开始进行修改。


3. 基本Git操作与分支管理

3.1 添加文件到暂存区(git add

当你修改文件后,Git 不会自动将更改加入版本控制,需使用 git add 命令来将更改添加到暂存区:

bash 复制代码
git add .

这个命令将所有修改过的文件添加到暂存区。

3.2 提交更改(git commit

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

bash 复制代码
git commit -m "提交说明"

-m 后面是你对该次提交的简短说明。

3.3 推送更改到远程仓库(git push

将本地仓库的提交推送到 GitHub 仓库:

bash 复制代码
git push origin main

这将会把你的更改上传到远程仓库的 main 分支。

3.4 从远程仓库拉取最新更改(git pull

当其他人也在同一个仓库中做了更改时,你需要使用 git pull 拉取最新的更改:

bash 复制代码
git pull origin main
3.5 创建分支(git branch

分支用于开发新特性或修复 bug,而不影响主代码。你可以使用以下命令创建一个新分支:

bash 复制代码
git branch new-branch
3.6 切换分支(git checkout

切换到你要操作的分支:

bash 复制代码
git checkout new-branch
3.7 合并分支(git merge

合并其他分支的更改到当前分支:

bash 复制代码
git merge new-branch
3.8 解决冲突

当多个分支修改同一部分内容时,可能会发生冲突。Git 会标记出冲突的部分,你需要手动解决并重新提交。


4. 提交和管理 Issue

在 GitHub 上,Issue 是用于记录、讨论和跟踪任务、bug 或功能请求的重要工具。无论是个人项目还是团队协作,管理 Issue 是确保开发进度和问题解决的关键。

4.1 创建一个 Issue

Issue 是管理项目中待办事项的常用方法。你可以在 GitHub 上创建 Issue 来记录任务、bug、功能请求或其他需要讨论的问题。

  1. 进入你的仓库:打开 GitHub,进入你要提交 Issue 的项目仓库。
  2. 点击 "Issues" 标签 :在仓库页面上方的导航栏中找到并点击 Issues
  3. 点击 "New issue" :在 Issue 页面,点击右侧的 New issue 按钮,开始创建新问题。
  4. 填写标题和描述
    • 标题:简洁明了地描述问题或任务。
    • 描述:详细描述问题的背景、重现步骤、预期行为、实际行为等。你可以使用 GitHub 的 Markdown 语法格式化文本,使内容更易读。
    • 可选:你可以附上截图或日志,帮助更好地理解问题。
  5. 点击 "Submit new issue" :填写完成后,点击 Submit new issue 提交。
4.2 使用标签、分配人员和项目板管理 Issue

管理 Issue 时,使用标签、分配人员和项目板可以帮助团队有效地组织和跟踪问题的进展。

  • 标签 (Labels)

    • 标签是 Issue 的分类标识,可以让你快速识别问题的类型或优先级。例如:
      • bug:表示一个错误或问题。
      • enhancement:表示一个功能增强或优化请求。
      • help wanted:表示需要帮助的任务。
      • good first issue:适合新手开发者的任务。
    • 要为 Issue 添加标签,进入 Issue 页面,右侧会有一个标签管理区域,点击标签进行选择。
  • 分配人员 (Assignees)

    • 你可以将 Issue 分配给仓库中的某个成员,指派他们处理该任务。分配人员通常是负责修复 bug 或完成任务的开发者。
    • 在 Issue 页面右侧的 Assignees 区域,点击 Assign yourself(分配给自己)或者选择其他团队成员进行分配。
  • 项目板 (Projects)

    • 使用项目板可以将 Issue 按照任务或功能区分到不同的项目板,以便更好地跟踪任务的进展。
    • 点击 Issue 页面右侧的 Projects,选择一个已有的项目板或者创建一个新的项目板。
    • 项目板通常按 To doIn progressDone 等不同阶段分组,方便开发团队集中管理。
  • 里程碑 (Milestones)

    • 如果你有多个 Issue 与某个特定版本或阶段相关,可以为它们设置 里程碑。这有助于追踪项目进度并确保按时交付。
    • 在 Issue 页面右侧的 Milestone 区域,选择或创建一个适合的里程碑。
4.3 关闭和跟进 Issue

随着项目的进展,Issue 会被解决或关闭。在 GitHub 中,有几种方法可以管理和跟进 Issue。

  • 关闭 Issue

    • 当 Issue 被解决或任务完成时,点击 Issue 页面右上角的 Close issue 按钮来关闭它。关闭后的 Issue 不会再出现在待办事项中。
    • 如果你解决了一个 bug 或实现了一个功能,也可以在提交 Pull Request 时自动关闭相关的 Issue(例如,在提交信息中添加 Fixes #issue_number)。
  • 重新打开 Issue

    • 如果问题没有得到解决,或者 Issue 被关闭后仍然存在问题,可以随时重新打开它。点击关闭的 Issue 页面中的 Reopen issue 按钮,将其恢复为活动状态。
  • 评论和更新 Issue

    • 在 Issue 页面,你可以随时发表评论,更新任务进度或讨论问题。如果你是 Issue 的创建者或者已被分配的开发者,可以在评论区回复其他开发者的反馈或提出自己的意见。
    • 评论是团队沟通的关键,保持良好的沟通可以加速问题解决。
  • 关联其他 Issue 或 Pull Request

    • 如果一个 Issue 与另一个 Issue 或 Pull Request 相关联,你可以在描述或评论中使用 #issue_number 来引用它。这能帮助团队成员快速了解任务之间的关系。
  • 订阅 Issue 更新

    • 如果你希望跟进某个 Issue 的进展,可以选择订阅它。在 Issue 页面右上角点击 Subscribe,这样每当 Issue 状态发生变化时,你将收到通知。

通过这些功能,你可以有效管理 GitHub 上的 Issue,确保项目按时完成,协作更加顺畅。


5. 提交 Pull Request (PR)

Pull Request (PR) 是 GitHub 上协作开发的核心机制,它允许开发者将自己的代码更改提交给主仓库进行审查和合并。通过 PR,其他开发者能够查看你的更改,提供反馈,并确保代码质量符合项目要求。

5.1 什么是 Pull Request?

Pull Request 是一种请求,旨在让你所做的更改被其他开发者审查、讨论,并最终合并到主分支(通常是 mainmaster)。PR 是团队协作的核心,通过它,开发者可以集中管理和审查代码,确保质量和功能符合需求。

简单来说,PR 就像是向团队提出的"代码合并申请",提交后其他人可以审查、评论或提出修改建议,直到代码准备好被合并到主分支。

5.2 创建一个 Pull Request

创建一个 PR 的过程非常简单,它有助于将你的更改提到团队面前进行审查。以下是创建 PR 的步骤:

  1. 切换到你所做更改的分支

    • 在本地仓库中,你可能已经在一个新的分支上做了更改(通常从 mainmaster 分支派生)。
    • 确保你的更改已经推送到 GitHub 上的相应分支。
  2. 点击 "Compare & pull request"

    • 在 GitHub 上的仓库页面中,切换到你所做更改的分支。
    • GitHub 通常会在你切换到分支后显示一个按钮:"Compare & pull request"。点击这个按钮进入 PR 创建页面。
  3. 填写标题和描述

    • 标题:简洁明了地说明 PR 的目的,例如 "Fix bug in login page" 或 "Add new feature for user profile"。
    • 描述:详细说明你所做的更改,包括哪些文件被修改、修复了什么问题、添加了哪些新功能等。你可以提供额外的背景信息,帮助审查者理解你的更改。
    • 在描述中,如果有需要,可以引用相关的 Issue(例如:Closes #45,意味着合并该 PR 后将自动关闭 Issue #45)。
  4. 点击 "Create pull request"

    • 完成标题和描述后,点击页面底部的 Create pull request 按钮提交你的 PR。

现在,你的更改已经作为一个 PR 提交给项目维护者进行审查了。

5.3 代码审查与合并 Pull Request

提交 PR 后,团队成员或项目维护者将会进行代码审查。他们会查看你的代码更改,提出建议或修复意见,并检查代码是否符合项目规范和质量要求。代码审查的过程通常包括以下几个步骤:

  1. 查看代码

    • 审查者会查看你提交的代码,检查其正确性、效率、可维护性等方面。
    • 他们可能会检查你是否遵循了项目的编码规范,是否有冗余的代码或潜在的 bug。
  2. 提出反馈

    • 如果审查者发现问题,他们会在 PR 的评论区域提出反馈,可能是代码风格问题、逻辑错误,或者是一些优化建议。
    • 你可以在评论中与审查者讨论解决方案,修改你的代码并更新 PR。
  3. 修复反馈问题

    • 如果审查者要求你修改代码,你可以在本地做出更改并推送到远程分支。GitHub 会自动将这些新更改添加到已有的 PR 中。
    • 一旦修改完成,再次提交 PR,审查者会重新审查这些更改。
  4. 合并 PR

    • 当所有问题都解决且代码审查通过时,项目维护者会将 PR 合并到主分支中。通常会使用 Merge pull request 按钮。
    • 合并操作后,PR 会关闭,并且更改会被应用到主分支。这个过程中,通常会执行 Merge commitSquash and merge,取决于项目的 Git 流程。
5.4 使用 Draft PRs 和 变更请求

GitHub 提供了 Draft PRs变更请求 (Change requests) 功能,使得代码审查和协作更加灵活。

  • Draft PRs

    • 如果你的代码还在进行中,或者你想要早期获取团队反馈,但尚未准备好正式合并,可以选择创建一个 Draft PR。Draft PR 是一种"草稿"状态,意味着代码审查人员不会立即合并该 PR。
    • 创建时,你可以在 PR 页面中选择 Create draft pull request。这使得审查者可以提前看到代码并提供反馈,但该 PR 不会立即合并。
  • 变更请求 (Change Requests)

    • 当审查者对 PR 提出了修改建议并要求做出改动时,GitHub 会将该审查标记为"变更请求"。这意味着你需要对代码做出更改并推送到原来的分支。
    • 你可以在 PR 页面右侧看到变更请求的具体内容。完成修改后,提交新的代码更改,审查者会重新查看。

使用 Draft PR 和变更请求功能,团队可以更早地开始讨论代码,更灵活地管理审查和合并流程。


6. 管理你的仓库

在 GitHub 上管理仓库的设置和权限非常重要,尤其是当你与团队合作时。通过设置,你可以自定义仓库的各项功能并确保数据的安全性。

  1. 仓库设置

    • 进入仓库页面,点击右上角的 Settings 标签,进入仓库的设置页面。这里你可以配置许多选项,比如:
      • Repository name:修改仓库名称。
      • Description:修改仓库的简短描述。
      • Default branch :设置默认分支(通常为 mainmaster)。
      • GitHub Pages:如果你的项目是网站,可以启用 GitHub Pages 部署功能。
      • Webhooks:配置 Webhooks,用于在仓库发生事件(如推送、PR 合并)时触发外部应用程序或服务。
  2. 权限管理

    • 协作者 :你可以邀请其他开发者加入你的仓库,成为协作者 ,使他们能够访问和修改仓库内容。协作者可以拥有不同的权限等级:
      • Read:只读权限,允许查看仓库的内容,但不能推送更改。
      • Write:写权限,允许对仓库进行推送和修改。
      • Admin:管理员权限,允许管理仓库的所有设置,包括添加或移除协作者、删除仓库等。
    • 要邀请协作者,进入仓库的 Settings 页,选择 Manage access ,然后点击 Invite a collaborator,输入他们的 GitHub 用户名并选择合适的权限。
  3. 分支保护

    • 通过仓库设置,你还可以启用 Branch protection rules,确保主分支(或其他重要分支)不会被直接推送或破坏。你可以设置强制代码审查,要求在合并 PR 前至少有一个审核者批准,或者禁止直接推送到保护的分支。
相关推荐
杨杨杨大侠41 分钟前
第5章:实现Spring Boot集成
java·github·eventbus
杨杨杨大侠1 小时前
第6章:高级特性与性能优化
java·github·eventbus
澈轩1 小时前
Git 用得好,下班走得早
git
HelloGitHub1 小时前
这款开源调研系统越来越“懂事”了
前端·开源·github
ruanCat1 小时前
配置 github workflow 工作流文件,实现仓库自动更新 github page 站点
github
绝无仅有2 小时前
面试总结之Nginx 经验常见问题汇总第二篇
后端·面试·github
绝无仅有3 小时前
面试实战总结之Nginx配置经验第一篇
后端·面试·github
掘金安东尼3 小时前
Chrome 17 岁了——我们的浏览器简史
前端·javascript·github
人间造梦工厂3 小时前
Git Bash 别名
git
画个太阳作晴天7 小时前
解决 Android Studio 中 build 目录已被 Git 跟踪后的忽略问题
git