人们使用GitHub来构建一些世界上最先进的技术。无论您是可视化数据还是构建新游戏,GitHub上都有一个完整的社区和一组工具可以帮助您更好地完成任务。
现在,有了GitHub学习实验室,你就有了成为全明星开发者的助手。
从管理通知到合并请求,GitHub学习实验室的“GitHub简介”课程将指导您在不到一小时的时间内完成所需的所有工作。看到一个你不懂的词了吗?我们包括了一个表情符号📖 在一些关键术语旁边。点击它查看它的定义。
你将学到什么
我们将回答常见问题,如:
什么是GitHub?
如何使用GitHub?
什么是问题和请求?
如何创建分支和提交?
如何使用GitHub页面?
完成后,您将能够:
在问题中沟通
管理通知
创建分支
作出承诺
使用拉取请求引入更改
将网页部署到GitHub页面
你将要做什么
已完成的源存储库
部署到GitHub页面的交互式幻灯片。
先决条件
没有。本课程是您在GitHub的第一天的精彩介绍。
使用的项目
这将使用以下开源项目。考虑探索这些回购协议?,甚至可能作出贡献!
reveal.js:使用HTML创建演示文稿的框架
Jekyll:一个简单的、博客感知的静态站点生成器。
观众、听众
新的开发人员、新的GitHub用户、Git新用户、学生、经理、团队
本课程的学习途径之后会继续翻译添加。
Git手册
现在您可能想知道什么是Git,以及为什么它在编写代码时很重要。我们已经为您介绍了这篇关于Git版本控制的短文。
什么是版本控制系统?
版本控制系统(VCS)在人员和团队协作完成项目时跟踪更改的历史。随着项目的发展,团队可以运行测试、修复错误和贡献新的代码,并确信任何版本都可以随时恢复。开发人员可以查看项目历史记录以了解:
做了哪些改变?
是谁做的改变?
这些变化是什么时候发生的?
为什么需要改变?
什么是分布式版本控制系统?
Git是一个分布式版本控制系统(DVCS)的例子,通常用于开源和商业软件开发。DVCSs允许对项目的每个文件、分支和迭代进行完全访问,并允许每个用户访问所有更改的完整和自包含的历史记录。与曾经流行的集中式版本控制系统不同,像Git这样的DVCSs不需要与中央存储库建立持续的连接。开发人员可以在任何地方工作,也可以在任何时区异步协作。
如果没有版本控制,团队成员将面临冗余任务、较慢的时间线和单个项目的多个副本。为了消除不必要的工作,Git和其他vcs为每个贡献者提供了一个统一和一致的项目视图,展示了已经在进行的工作。看到变更的透明历史、变更者、变更对项目开发的贡献,有助于团队成员在独立工作的同时保持一致。
为什么是Git?
根据最新的堆栈溢出开发者调查,超过70%的开发者使用Git,使其成为世界上使用最多的vc。Git通常用于开源和商业软件开发,对个人、团队和企业都有显著的好处。
Git允许开发人员在一个地方查看他们的更改、决策和任何项目进展的整个时间线。从他们访问项目历史的那一刻起,开发人员就拥有了理解项目并开始贡献的所有上下文。
开发人员在每个时区工作。有了像Git这样的DVCS,协作可以随时发生,同时保持源代码的完整性。通过使用分支,开发人员可以安全地提出对生产代码的更改。
使用Git的企业可以打破团队之间的沟通障碍,让他们专注于做最好的工作。此外,Git使跨业务的专家能够在重大项目上进行协作。
什么是仓库(repository)?
存储库或Git项目包含与项目关联的整个文件和文件夹集合,以及每个文件的修订历史记录。文件历史记录在时间上显示为快照,称为提交,提交以链表关系的形式存在,可以组织为多个开发行,称为分支。因为Git是一个DVCS,所以存储库是自包含的单元,拥有存储库副本的任何人都可以访问整个代码库及其历史记录。使用命令行或其他易于使用的界面,git存储库还允许:与历史记录交互、克隆、创建分支、提交、合并、跨代码版本比较更改等等。
在存储库中工作可以保持开发项目的组织和保护。鼓励开发人员修复错误或创建新功能,而不必担心中断主线开发工作。Git通过使用主题分支(topic branchs)来促进这一点:历史中提交的轻量级指针,在不再需要时可以轻松创建和弃用。
通过GitHub这样的平台,Git还为项目透明度和协作提供了更多的机会。公共存储库帮助团队共同构建尽可能最好的最终产品。
基本Git命令
为了使用Git,开发人员使用特定的命令来复制、创建、更改和组合代码。这些命令可以直接从命令行执行,也可以使用GitHub Desktop或Git Kraken等应用程序执行。下面是一些使用Git的常用命令:
git init
初始化一个全新的git存储库并开始跟踪现有目录。它在现有目录中添加一个隐藏的子文件夹,其中包含版本控制所需的内部数据结构。
git clone
创建远程存在的项目的本地副本。克隆包括项目的所有文件、历史记录和分支。
git add
stages更改。Git跟踪对开发人员代码库的更改,但有必要对这些更改进行暂存和快照,以便将它们包含在项目的历史记录中。这个命令执行登台,这是两步过程的第一部分。暂存的任何更改都将成为下一个快照的一部分和项目历史的一部分。分段和提交使开发人员可以完全控制项目的历史,而不必更改他们的代码和工作方式。
git commit
将快照保存到项目历史记录中,并完成更改跟踪过程。简而言之,提交的功能类似于拍照。使用git add
暂存的任何内容都将成为git commit
快照的一部分。
git status
将更改的状态显示为未跟踪、已修改或已暂存。
git branch
显示正在本地处理的分支。
git merge
将开发线合并在一起。此命令通常用于合并对两个不同分支所做的更改。例如,当开发人员希望将功能分支的更改合并到主分支以进行部署时,开发人员将进行合并。
git pull
使用其远程对应项的更新更新本地开发线。如果开发人员的团队成员已提交到远程分支,并且他们希望在本地环境中反映这些更改,则使用此命令。
git push
使用本地对分支所做的任何提交更新远程存储库。
从Git命令的完整参考指南中了解更多信息。
GitHub如何适应
GitHub是一个Git托管存储库,它为开发人员提供了通过命令行功能、问题(线程讨论)、拉取请求、代码审查或在GitHub市场中使用免费和购买应用程序集合来发布更好代码的工具。GitHub流这样的协作层、1500万开发人员组成的社区和数百个集成的生态系统改变了软件的构建方式。
GitHub的工作原理
GitHub将协作直接构建到开发过程中。工作被组织到存储库中,开发人员可以在其中概述需求或方向,并为团队成员设定期望值。然后,使用GitHub流,开发人员只需创建一个分支来处理更新,提交更改来保存它们,打开一个pull请求来提议和讨论更改,并在每个人都在同一页上时合并pull请求。
GitHub流(The GitHub flow)
GitHub流是一个轻量级的、基于分支的工作流,围绕全球团队(包括我们的团队)使用的核心Git命令构建。
GitHub流有六个步骤,每个步骤在实现时都有不同的好处:
创建分支:从规范部署分支(通常是主分支)创建的主题分支允许团队为许多并行工作做出贡献。短命的主题分支,特别是,保持团队的重点和结果在快速船。
添加提交:分支内开发工作的快照在项目历史中创建安全、可还原的点。
打开pull请求:pull请求公开项目正在进行的工作,并为透明的开发过程设置基调。
讨论和评审代码:团队通过评论、测试和评审打开的pull请求来参与代码评审。代码审查是开放和参与式文化的核心。
Merge:单击Merge时,GitHub会自动执行相当于本地“git Merge”操作的操作。GitHub还保留合并的pull请求的整个分支开发历史。
部署:团队可以选择最佳的发布周期,或者合并持续的集成工具,并在确保部署分支上的代码已通过健壮的工作流的情况下进行操作。
协同开发模型
人们在GitHub上协作的主要方式有两种:共享存储库(Shared repository)、叉拉(Fork and pull)
在共享存储库中,个人和团队被明确指定为具有读、写或管理员访问权限的贡献者。这个简单的权限结构,结合受保护的分支和市场等功能,帮助团队在采用GitHub时快速前进。
对于开放源代码项目或任何人都可以参与的项目,管理个人权限可能是一项挑战,但是fork-and-pull模型允许任何可以查看项目的人参与。fork是开发人员个人帐户下项目的副本。每个开发人员都可以完全控制他们的fork,并且可以自由地实现一个fix或新特性。在forks中完成的工作要么保持独立,要么通过pull请求返回到原始项目。在那里,维护人员可以在合并之前查看建议的更改。有关详细信息,请参阅分叉项目指南。
将项目上载到GitHub
现在你知道GitHub的功能了,我打赌你已经准备好将所有这些项目从本地机器上移开。本课程将向你展示如何。
从私有beta到当今最重要的开源技术,GitHub是各种项目的发源地。开发人员依靠我们的平台,通过协作工具、不妥协的安全性和一流的第三方应用程序,将他们的项目提升到一个新的水平。