刚进公司上班的时候,技术总监让我熟悉一下Git(分布式版本控制工具)操作命令和GitHub(代码托管平台),说实话之前我也没有具体使用过Git工具,但是GitHub我还是注册过账号的。在练习将本地仓库(Git版本库)上传到远程版本库时,也顺带着学习了GitHub的官方指南。
然后还得和您说声抱歉,这份资料是我自己学习GitHub时使用的教程,在博客中我也不打算再把这篇官方指南一字不落地翻译成中文文档。
 
 
The Hello World project is a time-honored(历史悠久的) tradition in computer programming. It is a simple exercise that gets you started when learning something new. Let’s get started with GitHub!  译者注:如果您想了解Hello World的起源,可以参考这篇文章 程序员,你知道Hello World的历史么?
 

You’ll learn how to:

  • Create and use a repository             //  创建并使用仓库(版本库)
  • Start and manage a new branch      //  启动并管理一个新分支
  • Make changes to a file and push them to GitHub as commits    //  修改一个文件并将这些变更作为 commit push到GitHub上 
  • Open and merge a pull request       //  打开并merge一个pull request

译者注:有些GitHub的专有名词没有翻译,不是因为我懒得翻。以本人愚见,这些专有名词就算翻译过来也没有多大意思,原汁原味儿的比较好,实在不清楚可以去金山词霸查查具体含义。

What is GitHub?
GitHub is a code hosting(托管) platform for version control and collaboration(协同合作). It lets you and others work together on projects from anywhere.

This tutorial teaches you GitHub essentials like repositoriesbranchescommits, and Pull Requests. You’ll create your own Hello World repository and learn GitHub’s Pull Request workflow(工作流), a popular way to create and review code.

No coding necessary

To complete this tutorial, you need a GitHub.com account and Internet access. You don’t need to know how to code, use the command line, or install Git (the version control software GitHub is built on).   // 虽然教程说学习GitHub不必安装Git,使用命令行操作,但是还是建议读者稍微熟悉一下Git命令

Tip: Open this guide in a separate browser window (or tab) so you can see it while you complete the steps in the tutorial.

Step 1. Create a Repository
repository is usually used to organize a single project. Repositories can contain folders and files, images, videos, spreadsheets(电子表格), and data sets – anything your project needs. We recommend including a README, or a file with information about your project. GitHub makes it easy to add one at the same time you create your new repository. It also offers other common options such as a license file.

Your hello-world repository can be a place where you store ideas, resources, or even share and discuss things with others.

To create a new repository

  1. In the upper right corner(右上角), next to your avatar or identicon, click  and then select New repository.
  2. Name your repository hello-world .
  3. Write a short description.
  4. Select Initialize this repository with a README.

Click Create repository

Step 2. Create a Branch
Branching(n, 分支) is the way to work on different versions of a repository at one time.    //  分支是一种在同一时间运行同一仓库不同版本的方式

译者注:分支和快照是类似的概念,快照指的是在某一时间点的数据状态集合,相当于一种特殊的镜像文件

By default your repository has one branch named master which is considered to be the definitive branch. We use branches to experiment and make edits before committing them to master.

 
When you create a branch off(脱离) the master branch, you’re making a copy, or snapshot, of master as(与此同时) it was at that point in time. If someone else made changes to the master branch while you were working on your branch, you could pull in(吸收) those updates.
译者注:在实际团队项目中,我们在push更新代码前需要先把远程版本库中的代码更新pull下来。

This diagram shows:

  • The master branch   //  主分支
  • A new branch called feature (because we’re doing ‘feature work’ on this branch)   //  功能分支
  • The journey that feature takes before it’s merged into master   

// 从master分支脱离出来到被merge到master分支之前,feature分支会有一段单独历程

Have you ever saved different versions of a file? Something like:

  • story.txt
  • story-joe-edit.txt
  • story-joe-edit-reviewed.txt

Branches accomplish similar goals in GitHub repositories.    // Branches在GitHub仓库中完成相似的目标---储存一个文件的不同版本

Here at GitHub, our developers, writers, and designers use branches for keeping bug fixes and feature work separate from our master (production) branch. When a change is ready, they merge their branch into master.   译者注:master分支保存就是日后要做出来的真正production

To create a new branch

  1. Go to your new repository hello-world .
  2. Click the drop down at the top of the file list that says branch: master.
  3. Type a branch name, readme-edits , into the new branch text box.
  4. Select the blue Create branch box or hit “Enter” on your keyboard.
Now you have two branches, master  and readme-edits. They look exactly the same, but not for long! Next we’ll add our changes to the new branch.  
// master分支和readme-edits分支看起来相同,但是这种相同不会保持很久,因为我们很快将会对新分支(readme-edits)进行修改

译者注:这里的readme-edits分支就是上文中提到的feature分支,属于功能分支,用于增加某个模块功能

 
Step 3. Make and commit changes
Bravo(喝彩)! Now, you’re on the code view for your readme-edits branch, which is a copy of master. Let’s make some edits.
On GitHub, saved changes are called commits. Each commit has an associatedcommit message(提交相关消息), which is a description explaining why a particular change was made. Commit messages capture the history of your changes, so other contributors can understand what you’ve done and why.
// 在GitHub上,"保存变更"用专业名词叫 commit(提交),每个commit必须有相应的message用于描述为什么需要变更

Make and commit changes

  1. Click the README.md file.
  2. Click the  pencil icon in the upper right corner of the file view to edit.
  3. In the editor, write a bit about yourself.
  4. Write a commit message that describes your changes.
  5. Click Commit changes button.

These changes will be made to just the README file on your readme-edits branch, so now this branch contains content that’s different from master.

 
Step 4. Open a Pull Request
Nice edits! Now that you have changes in a branch off of master, you can open a pull request(拉回请求,请求合并到主干master).

Pull Requests are the heart of collaboration(协同工作的核心) on GitHub. When you open a pull request, you’re proposing your changes and requesting that someone review and pull in your contribution and merge them into their branch. Pull requests sho diffs, or differences, of the content from both branches. The changes, additions, and subtractions are shown in green and red.      // pull requests后master分支变化会用不同颜色显示,增加内容用绿色标识,删除内容用红色表示

As soon as you make a commit, you can open a pull request and start a discussion, even before the code is finished.   // commit后就会discussion模块出现

By using GitHub’s @mention system in your pull request message, you can ask for feedback from specific people or teams, whether they’re down the hall or 10 time zones away.

You can even open pull requests in your own repository and merge them yourself. It’s a great way to learn the GitHub Flow before working on larger projects.

Open a Pull Request for changes to the README

Click on the image for a larger version

Step Screenshot
Click the  Pull Request tab, then from the Pull Request page, click the green New pull request button.

Select the branch you made, readme-edits, to compare with  master  (the original).

Look over your changes in the diffs on the Compare page, make sure they’re what you want to submit.
When you’re satisfied that these are the changes you want to submit, click the big green Create Pull Requestbutton.

Give your pull request a title and write a brief description of your changes.

When you’re done with your message, click Create pull request!


Tip: You can use emoji and drag and drop images and gifs onto comments and Pull Requests.

Step 5. Merge your Pull Request

In this final step, it’s time to bring your changes together – merging your readme-edits branch into the master branch.

  1. Click the green Merge pull request button to merge the changes intomaster.
  2. Click Confirm merge.
  3. Go ahead and delete the branch, since its changes have been incorporated, with the Delete branch button in the purple box.

Celebrate!

By completing this tutorial, you’ve learned to create a project and make a pull request on GitHub!   

Here’s what you accomplished in this tutorial:

  • Created an open source repository
  • Started and managed a new branch
  • Changed a file and committed those changes to GitHub
  • Opened and merged a Pull Request

Take a look at your GitHub profile and you’ll see your new contribution squares!

If you want to learn more about the power of Pull Requests, we recommend reading the GitHub Flow Guide. You might also visit GitHub Explore and get involved in an Open Source project 


Tip: Check out our other Guides and YouTube Channel for more GitHub how-tos.

到此为止,官网上面GitHub入门教程已经介绍完了,相信通过您不屑的努力一定已经学会这些GitHub基础操作。如果想要进一步得学习,推荐GitHub Flow Guide(GitHub流程指南,交互式得操作使得读者更容易理解如何脱离分支、合并分支等概念)。

作为Git系列教程中远程仓库篇---GitHub系列教程的第一篇文章,本文就系统地介绍了GitHub使用者该掌握的基础内容。对系列教程感兴趣的同学,可以选择订阅我博客,我会在工作之余持续更新,与大伙共同提高(技术层面和英文层面),嘻嘻。

GitHub教程(一) 使用指南的更多相关文章

  1. GitHub教程(三) 本地仓库托管到GitHub

    本文开头先特别声明一下:由于GitHub教程属于Git系列教程的GitHub子篇章,因此GitHub教程中将不再详细介绍Git操作命令及其用法,我会根据实际需要穿插着回顾Git操作命令.如果读者需要学 ...

  2. mxGraph进阶(一)mxGraph教程-开发入门指南

    mxGraph教程-开发入门指南 概述 mxGraph是一个JS绘图组件适用于需要在网页中设计/编辑Workflow/BPM流程图.图表.网络图和普通图形的Web应用程序.mxgraph下载包中包括用 ...

  3. 史上最简单的 GitHub 教程

    史上最简单的 GitHub 教程 温馨提示:本系列博文已经同步到 GitHub,如有需要的话,欢迎大家到「github-tutorial」进行Star和Fork操作! 1 简介 GitHub 是一个面 ...

  4. 24个很赞的 Node.js 免费教程和在线指南

    JavaScript 最初是用来创建动态网站效果的的前端语言.而如今,这门脚本语言也可以用作后端开发,用于搭建 Web 服务器,开发接口,甚至创建博客.在下面这个列表中包括24个 Node.js 教程 ...

  5. 上传本地代码及更新代码到GitHub教程

    上传本地代码及更新代码到GitHub教程 上传本地代码 第一步:去github上创建自己的Repository,创建页面如下图所示: 红框为新建的仓库的https地址 第二步: echo " ...

  6. 一篇文章了解Github和Git教程-AndroidStudio上传Github教程

    前言 为了方便保存自己的代码,下班后可以回家继续进行,自己的码农工作,介绍一下Github. 什么是Github呢? 作为一个编程人员,我觉得得了解一下Github吧! 当然,如果你放弃了码农或者技术 ...

  7. git 入门教程之github 教程

    github 教程 github 是一个基于 git 的代码托管平台,是平时工作学习的好帮手,学会如何用好 github 网站能够帮助我们更好分享代码或者与其他开发人员合作. 注册 github 账号 ...

  8. 【转】mxGraph教程-开发入门指南

    原文:https://blog.csdn.net/sunhuaqiang1/article/details/51289580 mxGraph教程-开发入门指南 概述 mxGraph是一个JS绘图组件适 ...

  9. GitHub教程(二) 删除已有仓库

    通过GitHub教程(一)的阅读,我相信您对GitHub体系框架已经有了模模糊糊的了解.本节教程将继续介绍GitHub的操作---删除仓库. 作为GitHub的入门使用者,我们可能会建一些简单的仓库来 ...

随机推荐

  1. mysql 设置默认时间为now()

    TIMESTAMP的变体1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP在创建新记录和修改现有记录的时候都对这个数据列 ...

  2. vue 深度响应初步了解(检测data对象数据变化)

    当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用Object.defineProperty把这些属性全部转为 getter/se ...

  3. Redis+Lua实现限流

    相比Redis事务来说,Lua脚本有以下优点减少网络开销: 不使用 Lua 的代码需要向 Redis 发送多次请求, 而脚本只需一次即可, 减少网络传输;原子操作: Redis 将整个脚本作为一个原子 ...

  4. 解决C#中dynamic类型作为泛型参数的反射问题

    C#中dynamic类型作为泛型参数传递过去后,反射出来的对象类型是object,我用老外的这篇博文中的代码跑起来,得出的结果是:Flying using a Object map (a map),将 ...

  5. Robot Framework(Collections 库)

    Collections 库 Collections 库同样为Robot Framework 标准类库,它所提供的关键字主要用于列表.索引.字典的处理. 在使用之前需要在测试套件(项目)中添加:

  6. 企业为什么需要实施BPM?

    背景:众所周知,近几年企业信息化发展迅速,业务管理系统从大到小,数量众多,如ERP,SCM,PLM,CRM,EHR,OA,BI…… 等,企业的管理人员进行管理的主要手段是通过各个业务系统获得各种管理报 ...

  7. Java - 网络IO的阻塞

    最近学习时碰到事件驱动和非阻塞的相关知识,随之想到了Java中的Reactor.io与nio的一些东西:在前辈的博客上翻了翻.复习复习,在此记录一番. 实在找不到比较大点的东西,于是随便弄了个压缩包, ...

  8. json数据发送时浏览器提示“保存”解决

    数据以json形式发送的时候,部分浏览器不能直接解析,而是提示是否保存,nodejs的express应用中可以通过如下代码解决该问题: router.get('/', function (req, r ...

  9. 封装hiredis——C++与redis对接(一)(string的SET与GET操作)

    在菜鸟教程自学了redis,总想着像Mysql一样,在C/C++中进行对接.于是查询了一些资料,最后找到了hiredis.然而直接用它的话,难免有点不方便.于是,对其进行封装. hiredis直接去g ...

  10. Redis学习笔记1 -- 单机环境时分布式锁的使用

    使用第三方开源组件Jedis实现Redis客户端,且只考虑Redis服务端单机部署的场景. 前言 分布式锁一般有三种实现方式:1. 数据库乐观锁:2. 基于Redis的分布式锁:3. 基于ZooKee ...