首页 > 其他分享 >github学习大纲

github学习大纲

时间:2024-11-27 17:11:04浏览次数:7  
标签:Git PR GitHub 大纲 仓库 代码 学习 github git

作为后端开发者,学习 GitHub 的内容主要集中在如何使用 Git 进行版本控制,如何通过 GitHub 进行代码托管、团队协作以及开源项目的管理等方面。以下是后端开发者在 GitHub 上需要掌握的核心内容:


1. Git 基础知识

Git 是 GitHub 的基础,理解和掌握 Git 的基本操作对使用 GitHub 至关重要。需要掌握以下 Git 基本概念与命令:

  • 版本控制基础
    • Git 是什么,为什么要用版本控制
    • Git 工作区、暂存区、版本库的区别
  • 常用 Git 命令
    • git init:初始化 Git 仓库
    • git clone <repo>:克隆远程仓库
    • git add <file>:将文件添加到暂存区
    • git commit -m "message":提交文件到本地仓库
    • git push:推送本地提交到远程仓库
    • git pull:拉取远程仓库的更新
    • git fetch:获取远程更新,但不自动合并
    • git branchgit checkoutgit merge:管理分支
    • git log:查看提交记录
    • git diff:查看差异
    • git rebase:重新基于某个提交操作
    • git reset:撤销提交
    • git stash:暂存当前工作进度
    • git tag:创建标签

掌握这些命令后,你能高效地管理自己的代码库,并与其他开发者协作。


2. GitHub 仓库管理

在 GitHub 上管理项目仓库的基本操作,涵盖如何创建、维护和组织一个远程仓库:

  • 创建和管理仓库
    • 创建一个新的仓库
    • 如何使用 GitHub 提供的 Web UI 创建和管理文件(如 README.md 文件)
    • 使用 .gitignore 文件来忽略不需要提交的文件
    • 管理仓库的权限与可见性(Public / Private)
    • 添加协作者(或团队)并设置权限
  • Fork 与 Clone
    • Fork:将别人的项目复制到自己的 GitHub 账户中,便于贡献代码或修改
    • Clone:将远程仓库复制到本地进行开发
  • 远程与本地仓库同步
    • git remote:查看和管理远程仓库
    • 使用 git pushgit pull 来同步本地与远程仓库的代码
    • 设置上游仓库(upstream)并使用 git fetch 合并更新

3. GitHub 工作流

理解 GitHub 上的协作流程是后端开发者必备的技能,特别是当你参与团队开发或者开源项目时:

  • 分支管理
    • 通过分支管理不同的功能、修复和版本。
    • 在团队中常用的工作流(Git Flow、GitHub Flow):
      • Git Flow:常用于较为复杂的项目,使用 developmaster 分支进行版本控制,支持多种发布模式。
      • GitHub Flow:适用于持续集成和持续交付的轻量级流程,所有开发都从 main 分支创建独立的功能分支(feature branch),完成后直接提交 Pull Request(PR)。
  • Pull Request (PR)
    • 提交 PR 是 GitHub 最常用的代码审查和合并方式。需要掌握:
      • 创建和描述一个 PR
      • 为 PR 分配审查人(reviewers)
      • 使用 GitHub 提供的工具查看差异、讨论代码
      • 合并 PR 到主分支(Merge)
      • 解决 PR 中的冲突
  • Rebase vs Merge
    • git rebase 用于将某一分支的修改整合到目标分支,保持历史记录的清晰。
    • git merge 用于将分支合并,可能产生合并冲突。

4. 团队协作与代码审查

GitHub 强大的协作功能有助于团队管理和代码审查:

  • Issues:用于管理任务、缺陷或功能请求
    • 创建、分配、标记优先级
    • 使用标签(labels)分类
    • 通过 #issue_number 在 PR 或 commit 中引用问题
  • Milestones:用于按阶段跟踪项目进度
  • GitHub Projects:通过看板管理任务和项目进度
  • Actions & CI/CD
    • GitHub Actions 提供了自动化工作流功能,支持自动构建、测试和部署代码。
    • 作为后端开发者,应该学习如何创建 CI/CD 流水线,确保代码提交后自动运行测试、构建和部署。
  • Code Review
    • 参与代码审查过程,理解如何给出建设性的反馈,使用 GitHub 的评论和 inline 评论功能。

5. GitHub 上的自动化和工具

  • GitHub Actions:用于创建自动化工作流,支持自动化测试、构建和部署。
    • 学习如何编写 .yml 配置文件来定义 Actions。
    • 例如,使用 GitHub Actions 配置后端项目的单元测试、集成测试等。
  • Webhooks:触发器机制,能够在某些事件发生时通知其他应用。适用于自动化部署或与其他服务集成。

6. 开源项目管理

作为后端开发者,可能会参与或维护开源项目。GitHub 是开源项目管理的主流平台:

  • 创建开源项目
    • 如何创建并管理一个公共开源项目(包括许可协议,如 MIT、Apache 等)
    • 使用 README.md 文件介绍项目、配置安装说明、贡献指南
  • 贡献开源项目
    • 学习如何 fork、clone、提交 PR 等,为开源项目做贡献。
    • 提交有效的 PR:清晰的提交信息,简洁的代码修改。
    • 尊重项目的贡献规范,如代码风格、提交规范等。

7. 安全性和最佳实践

GitHub 上管理后端代码时,注意以下安全性和最佳实践:

  • 使用 SSH 密钥:通过 SSH 密钥进行身份验证而非每次输入用户名和密码。
  • 保护敏感信息:避免将 API 密钥、数据库凭证等敏感信息提交到代码库。可以使用 .gitignore 忽略配置文件,或者使用 GitHub 的 Secrets 管理敏感信息。
  • 使用两步验证(2FA):增加账户安全性。
  • 依赖管理:使用 GitHub 的 Dependabot 功能来自动检测并更新依赖库中的安全漏洞。

学习资源

通过不断使用 Git 和 GitHub,你将能够更高效地进行代码版本管理,优化团队协作流程,同时为开源项目贡献力量。

标签:Git,PR,GitHub,大纲,仓库,代码,学习,github,git
From: https://www.cnblogs.com/cat-cat/p/18572681

相关文章

  • 这些机器学习基础知识搞懂了,机器学习哪有学不会的
    有无标签:按照求解的方法不同,有监督学习算法可以进一步分为生成模型与判别模型。1.有监督学习:分类问题回归问题2.无监督学习:聚类数据降维问题3.无监督学习机器学习三要素:模型:条件概率分布,决策函数策略:损失函数,最大似然函数,最小二乘算法:梯度下降......
  • vue-admin-template学习
    vue-admin-template权限篇参考网址-https://juejin.cn/post/6844903478880370701思路:-不同权限对应不同的路由-侧边栏也需要根据不同的权限,异步生成实现逻辑-用户名和密码校验是否正确 -正确返回token,存储到cookie(记住用户登录状态) -带着token向后端......
  • TypeScript入门学习
    基础类型-布尔值 -letisDone:boolean=false; -数字-TypeScript里的所有数字都是浮点数,这些浮点数的类型是number。除了支持十进制,还支持二进制、八进制、十六进制-以下示例,结果都是2023letdecLiteral:number=2023;//十进制......
  • C++学习——函数返回数组
    首先不推荐函数返回数组,在C++中,函数不能直接返回一个本地数组,因为数组是分配在栈上的,当函数返回时,其栈帧会被销毁,因此返回的数组指针将会指向一个已释放的内存区域,这是未定义行为。不过,有几种方法可以用来从函数返回数组:文章目录1.返回指向数组的指针2.使用标准库容......
  • 基础算法——前缀和、差分 学习笔记
    前缀和及差分前缀和一维前缀和定义一维前缀和,就是数组前若干项的和。我们对于前缀和数组的定义非常广泛,例如定义\(S(x)\)表示数组\(A(x)\)的前缀和,定义\(A(l,r)\)表示\(A(l)+A(l+1)+\dots+A(r)\),\(S(x)=A(0,x)\);\(S(x)=A(1,x)\);\(S(x)=A(1,x-1)\);\(S(x)......
  • 基础算法——异或哈希算法 学习笔记
    异或哈希算法思想我们关注一个区间内出现了什么数字。因此,我们对每一个数字赋一个随机权值,然后对这个权值进行一系列操作,例如前缀\(\operatorname{xor}\)等。对于两个序列,通过Hash的方式判断即可。同时,也可用于满足某些条件的子序列数量的问题。我们可以通过Hash的方......
  • 0基础 学习 通过docker实现域名绑定访问网站
    dockerpullnginx#下载nginx镜像dockerimages#查看镜像dockerimagels#查看镜像dockerpullnginx:1.26.0#下载镜像完整代码dockerpull镜像名:版本号dockerpullnginx#简洁版下载镜像(最新)dockerrmi+IMAGEid或者镜像名:版本号#删除镜像id可以只输入前三......
  • 如何构建和发布 npm 包到 GitHub Package Registry?
    如何构建和发布npm包到GitHubPackageRegistry?发表于 2023/12/19  更新于 2023/12/23作者 小王爷4分钟阅读本文将指导您在GitHubPackages上构建和发布npm到GPR。npm:全称NodePackageManager,NodeJs包管理和分发的工具。GPR:全称GitHubPackageRegi......
  • 985研一学习日记 - 2024.11.26
    一个人内耗,说明他活在过去;一个人焦虑,说明他活在未来。只有当一个人平静时,他才活在现在。日常1、起床6:002、健身1.5h3、LeetCode刷了0题今天没刷题,这几天应该都不咋会刷题了4、复盘22:30不复盘等于白学!!!学习和感想JUC并发编程1.JUC线程池概述和架构通过线程池......
  • 后端学习路线
    引言相信很多同学,尤其是刚进入大学的计算机萌新,对学习会感到非常困惑。作为过来人,可以很明确地告诉大家,如果你按部就班的跟着老师上课,那么你几乎什么都学不到。计算机主要是靠自学,然后多参加一些比赛,像ACM、蓝桥杯之类的,当然这些都是算法类的,如果你想提高的自己的项目编程能力......