商汇粹外网资源平台

搜索
查看: 2384|回复: 5

如何使用 GitHub?

[复制链接]

该用户从未签到

5

主题

13

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2022-9-21 20:25:20 | 显示全部楼层 |阅读模式
具体的使用方法和相关解释英语不好一点看不明白
回复

使用道具 举报

该用户从未签到

4

主题

56

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2022-9-21 20:40:20 | 显示全部楼层
GitHub 官方出了一个交互式教程,非常有意思,包含了十几个课程(以后还会添加)。内容包括 github 解释、如何编写 markdown、如何解决冲突、如何提交 pr 等等
官方还有一个视频解释:



GitHub Learning Lab






这个教程是以 GitHub App 的方式提供,因此我们需要先安装:https://lab.github.com/install。
安装完成后,我们以《Introduction to GitHub》课程为例。
点击 Join this course 会弹出一个对话框,意思是这个 App 会在我们的账号下面新建一个 github-slideshow 的仓库

设置完成后我们就可以交互式的学习了。
界面是这样的:

比如第一步是 Assign yourself:新建一个 issue 并指派给自己。为什么说他是交互式的教程呢,我们点击后面的 Start 按钮,会进入我们项目的 issue 页面

在 ① 处可以看到,这个 issue 的创建者是一个机器人 github-learning-lab,在这个交互式教程中,就是这个机器人在和我们互动,并帮助我们完成教程。
在 ② 处,给出了一句提示:继续阅读下面的内容,找到你的第一个任务。
于是我们继续往下阅读,

第一个任务是将此 isss 指派给自己,下面是详细的步骤:在屏幕右侧找到 Assignees,点击右面的齿轮,在下拉框中选择自己。

在 ② 处有一段提示:当你操作完成后,我(github-learning-lab机器人)会在下面评论,并温馨的提示到,如果你操作太快,需要等几秒钟。
当我根据提示把这个 issue 指派给我自己后,等了几秒钟,果然收到了一条回复:

根据操作完成后,又收到了回复:

接下来的任务是关闭这个 issue:

关闭之后这个任务就完成了,而机器人以及自动新建了另一条 issue 并开始了第二个任务。

在 这个任务中,我也涨姿势了。作为一个 GitHub 老司机,我居然不知道 GitHub 还有这个操作:直接在 web 端新建分支。
相信很多人也像我一样,在 web 找了很久的“新建分支”按钮,最后无果而终。只能把项目 clone 到本地,等新建完分支后再 push 上去。
在这个交互式教程中,我学到了新建分支的方式:

  • 点击 Branch: master 弹出下拉菜单,此列表是所有以及存在的分支
  • 在上面输入分支名可以搜索分支
  • 如果输入一个不存在的分支,则下面的操作变成了 Create branch: xxxx

我已经根据此教程一步一步的做完 3 个课程了。
回复

使用道具 举报

该用户从未签到

9

主题

33

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2022-9-21 20:55:20 | 显示全部楼层
--
首先你要学会git, 提供一些相关的资讯,望有帮助:

  • progit这本书是必看的

    • http://git-scm.com/book 和 http://git-scm.com/book/zh

    • 至少阅读:第一,第二,第三,第五,共4章,即可入门。
    • 不过这个网站被墙了,提供下镜像吧:progit-zh.epub 和 [中文].Pro Git.pdf

  • 在熟悉命令行后,也许你会需要UI,那可以选择:

    • Downloads - msysgit - Git for Windows
    • http://code.google.com/p/tortoisegit/
    • http://www.sourcetreeapp.com/

  • 然后建议再看看 git-flow  --> 一个成功的Git分支模型

    • 介绍:A successful Git branching model
    • 翻译:http://www.juvenxu.com/2010/11/28/a-successful-git-branching-model/
    • 工具:nvie/gitflow · GitHub
    • git-flow 备忘清单

  • 最后,你若需要本地搭建一个,那就用GITLAB: Self Hosted Git Management Application吧
  • 补充一个刚发现的互动学习git的项目: Learn Git Branching
  • 再补充一个:图解Git
  • 再补充一个:Git Magic - 前言
  • 然后剩下github的,看官方说明吧: https://help.github.com/
下图, 我之前对gitflow的一个翻译:
回复

使用道具 举报

该用户从未签到

4

主题

29

帖子

104

积分

注册会员

Rank: 2

积分
104
发表于 2022-9-21 21:10:20 | 显示全部楼层
放(打)一(广)个(告)比较有意思的《
GitHub - phodal/github-roam: GitHub 漫游指南》电子书,当然也是放在GitHub上的。
漫游在第547天里:
phodal (Fengda Huang) · GitHub





  • 前言

    • 我与GitHub的故事

      • GitHub与收获
      • GitHub与成长

    • 为什么你应该深入GitHub

      • 方便工作
      • 获得一份工作
      • 扩大交际


  • Git基本知识与GitHub使用

    • Git

      • Git初入

    • GitHub

      • 版本管理与软件部署
      • GitHub与Git
      • 在GitHub创建项目

    • GitHub流行项目分析
    • Pull Request

      • 我的第一个PR
      • CLA


  • 构建GitHub项目

    • 如何用好GitHub

      • 敏捷软件开发
      • 测试
      • CI
      • 代码质量

    • 模块分离与测试

      • 代码模块化
      • 自动化测试
      • Jshint
      • Mocha
      • 测试示例

    • 代码质量与重构

      • Code Climate
      • 代码的坏味道


  • 创建项目文档

    • README
    • 在线文档
    • 可用示例

  • 测试

    • TDD

      • 一次测试驱动开发
      • 说说TDD
      • TDD思考

    • 功能测试

      • 轻量级网站测试TWill
      • Twill 登陆测试
      • Twill 测试脚本

    • Fake Server

  • 重构

    • 为什么重构?
    • 重构uMarkdown

      • 代码说明

    • Interllij Idea重构

      • Rename
      • Extract Method
      • Inline Method
      • Pull Members Up
      • 重构之以查询取代临时变量


  • 如何在GitHub“寻找灵感(fork)”

    • GitHub 漫游指南 -Lettuce构建过程

      • 需求
      • 计划
      • 实现第一个需求
      • 实现第二个需求


  • GitHub用户分析

    • 生成图表

      • 数据解析
      • Matplotlib

    • 每周分析

      • python github 每周情况分析
      • Python 数据分析
      • Python Matplotlib图表

    • 存储到数据库中

      • SQLite3
      • 数据导入
      • Redis

    • 邻近算法与相似用户

  • GitHub连击

    • 100天

      • 40天的提升
      • 100天的挑战
      • 140天的希冀

    • 200天的Showcase

      • 一些项目简述
      • google map solr polygon 搜索
      • 技能树

    • 365天

      • 编程的基础能力
      • 技术与框架设计
      • 领域与练习
      • 其他



顺便放上我的微信公众号的二维码。
回复

使用道具 举报

该用户从未签到

0

主题

28

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2022-9-21 21:25:20 | 显示全部楼层
让老媛先“用写小黄文来解释GIT”可好?

  • 胸怀大志的你,立志要写小黄文
    于是你在本机奋笔疾书了三个月,然后电脑硬盘被某白色液体弄坏了...

  • 于是你想:哎,要是我能把小黄文存到远程服务器上就好了,这样就算我本地挂了,我再从远程拷一份,不就666了?
  • 说干就干,
    从此你每次写小黄书时,
    都要在远程服务器里创建一个专门的文件夹,
    存放这本小黄书的章节,以及相关资料
    这就叫做 create remote repository
  • 而在你本地的那个,
    和远程服务器一毛一样的那个,
    每个小黄书一个的文件夹
    就叫做 local repository
  • 但是每次用邮件或者FTP(文件传输协议)来同步 remote 和 local 的 repository,简直麻烦
    于是你搞了一个叫git的程序,帮你管理 repository,
    git init 来 create repository,
    git clone 将 remote repository clone到 local,
    git push 将local  repository clone到 remote
  • 然而,在一个美丽的夜晚
    当你正要 push 到远程时,
    电脑突然断电了,


  • 这可把你气坏了
    原以为有了远程服务器,就可以美滋滋了
    居然会在push到远程之前就搞幺蛾子
    于是你清楚的意识到
    git需要有一个类似ctrl+s的东西
    能让大家实时保存修改
    呕吼,这就是git里的git add
  • 这自从你有了一个小黄书的远程服务器,就再也没因为白色液体而返工。
    于是乎,你的小黄书写的越来越顺手,很多影视都借鉴与你,所以你赚了个满盆盈利
    这是,你琢磨起了组建团队
    毕竟以你的经验,可以监管和指导一群新人来写小黄文
    但新人之所以称为新人,就是因为他们每个人只擅长一部分,比如:
    A只擅长描写日常撩拨,B只擅长写床笫之欢,C只擅长写渲染气氛
  • 你一想:
    如果让他们配合着写,每个人只写自己拿手的
    那不仅质量高,而且并行写的速度快
    客户保证满意
  • 说干就干,
    定好了故事的发展大纲
    然后给ABC各分了一块他们所擅长的部分,让他们去具体写
    两个月后,他们终于写完了,
    虽然拖remote repository的福,到是没有丢失过数据
    当你要去把ABC写的内容合并时
    呵呵呵,
    A的第一段应该在B的第二段后面,C的第一段应该放在A的第一段前面,A的第二段又要跟在C的第二段后面,C的第二段应该放在B的跌三段后面%¥&&%¥#……
  • 绝望吧,
    你必须把ABC写的东西一行行的看过去
    才能理清楚他们写的东西之间的逻辑
    才能将他们写的东西正确的拼凑在一起
  • 摔,这样拼凑简直不是人能干的事
    于是你想了个办法:
    你把最开始定的那个大纲啊,作为master
    让ABC每天都把他们写的东西,都加到mater上
    这就叫做创建分支
    于是有了git branch <newBranch>
  • 啊,这个git branch不管在remote 还是 local都可以进行
    反正相互都会同步的嘛
  • 现在你的团队决定再写一本《我的香艳小秘书》
    于是乎,你在远程仓库里,
    先创建了一个名叫《我的香艳小秘书》的 remote repository,
    现在这个remote repository只有一个默认的 master 的分支,






  • 然后git clone到你在本地,把大纲写到master分支后




  • git push 到 remote repository的 mater 分支,


  • 你又用 git,基于 master 分支,给ABC分别创建了一个分支,


  • 然后 ABC 每个人,在本地用 git clone 了 remote repository,
    啊哈,ABC 就都在本地都有了一个名叫《我的香艳小秘书》,
    但处于不同分支的 local repository






  • 诶呀呀,
    C第一个完成了第一天的工作,
    于是C开开心心的把push到自己在remote repository里的分支
    正准备收工,溜的时候,想起你要求他们:
    每天下班时要把自己的分支和master分支合并
    于是C在remote repository里,将自己的分支merge到了master分支
  • 终于A也终于写完了,A也push到remote repository
    但当A要merge到master分支时,
    master不知道要把A新加的东西,是放到C新加的东西的前面,还是后面,还是里面...
    于是不得不拒绝A 的merge请求,
  • orz,A就只好先在自己本地的分支里手动合并,
    即:把C增加的东西放到合适的位置上,
    再git push 在A的remote 分支,
    之后再merge 到 master分支,
    这就叫做解决冲突
  • 但第二天早上你一看master,有几句的是什么狗屎哦,
    于是你把A叫过来一顿臭骂,
    然而这几句是C写的...
    于是你决定,在git push前时候要加上一些信息
    能让你知道是谁写了啥
    于是乎,git commit出现了
  • 并且!!!
    不能随意的merge到master上
    万一merge了一堆狗屎咋办!!!
    必须提一个pull request请求给你

    等你审核过后
    才能进行merge到master上
/************************************************************************************************/

  • 我。。。我明天再写为啥要有回退,以及stash
    我。。。我明早上班要起不来了
    日常绝望

/************************************************************************************************/
诶呀,现在你终于可以每天喝喝茶
等有pull request请求的时候,再审核审核
通过 OR 写修改建议+驳回
然后躺着数钱啦~~~


/************************************************************************************************/

  • 现在你已经会用git来辅助团队写小黄文了吧!!!
    很好,把小黄文换成java/python/*()(^%$*&^%%$^#*工程
    恭喜你,你就会用git来管理工程了!!!
  • 至于,github是啥?
    你是猪皮嘛???
    github不就是那个远程服务器嘛
    虽然他是公开的,但是你花钱可以弄个私有的啊
  • github咋用?
    你是骚猪皮嘛???
    无非就是建个remote repository,再建个分支
    然后在本地clone一个一毛一样的
    然后写你的小黄书呗
  • gitlab啊,gogs是啥?
    你是真骚猪皮嘛???
    就是你在远程服务器上,给自己专门搭一个github玩,
    这样就可以不用给github交钱,还能有自己私有的远程仓库啦
    再说了,
    用github的公司是不是有点low...
  • SSH是啥?
    就是配置好后
    你在本地连接remote repository时,不再需要用用户名密码验证身份了
回复

使用道具 举报

该用户从未签到

4

主题

56

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2022-9-21 21:40:20 | 显示全部楼层
这题我会呀!我用两万字加一百张图片从头到尾的给你介绍 GitHub 的具体使用方法,通过这个 GitHub 教程,让你学会如何使用 GItHub。

篇幅较长,建议先收藏,阅读时可以利用搜索功能快速定位到感兴趣的章节。
如果无法正常访问 GitHub,可以阅读我之前分享的一篇文章:

一个对你很有帮助的 GitHub 项目,涵盖了一百多本常见的计算机书籍:

我一直认为读书是世界上性价比最高的成长方式,书很便宜但分量很重,是让我们摆脱平庸走向卓越的方式之一。
对于计算机专业的学生而言,读计算机经典书籍不光能让你快速提升知识和能力,更会让你在校招之际如虎添翼。
书籍下载:计算机必看经典书籍(含下载方式)

一、初识 GitHub · 简介篇

1 前言
GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。
GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其托管版本数量非常之多,而且其中不乏知名开源项目,例如 Ruby on Rails、jQuery、python 等。
作为开源代码库以及版本控制系统,Github 拥有超过千万的开发者用户。随着越来越多的应用程序转移到了云上,Github 已经成为了管理软件开发以及发现已有代码的首选方法。
如前所述,作为一个分布式的版本控制系统,在 Git 中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
GitHub 可以托管各种 Git 库,并提供一个 web 界面,但与其它像 SourceForge 或 Google Code 这样的服务不同,GitHub 的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的Fork的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的pull request机制向项目负责人申请代码合并。
GitHub 项目本身自然而然的也在 GitHub 上进行托管,只不过在一个私有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并非如此。在 GitHub,用户可以通过Explore轻而易举地找到海量的开源代码。因此,称之为程序员的 圣地 也不过吧?
2 业界大神
在 GitHub 上建立个人主页的业界大神多如牛毛,在此仅介绍 3 位,以供大家膜拜!
2.1 Linus Torvalds



GitHub 主页:torvalds - Overview
Linus Torvalds,全球著名的电脑程序员、黑客,Linux 之父。
2.2 John Resig

Github主页: jeresig - Overview
John Resig,jQuery 的创始人和技术领袖,著有《Pro JavaScript Techniques》(即《精通JavaScript》)等经典 JavaScript 书籍。
2.3 Jake Wharton

Github主页: JakeWharton - Overview
Jake Wharton, Android 之神,GitHub 全球排名第二位。
3 开源项目及公司
在 GitHub 上开源的著名项目非常之多,选择在 GitHub 上开源的世界顶级公司也很多,在此也各罗列 3 个,以供大家膜拜!
3.1 项目
Linux:torvalds/linux
Swift:apple/swift
Ruby:ruby/ruby
3.2 公司
Google: Google
Microsoft:Microsoft
Alibaba:Alibaba
二、敲开 GitHub 的大门 · 注册账号

在 GitHub 里面有众多的业界大神、有丰富的学习资料、有著名的开源项目代码,我们也可以在 GitHub 中增长自己的技术能力、渲染自己的简历,甚至搭建自己的个人博客或者网站。
此外,最重要的,也是 GitHub 的核心亮点,那就是:我们可以在 GitHub 上同世界各地的伙伴协同开发项目,而且简单、容易的让人难以置信。那么,你准备好了吗?现在,就让我们一起敲开 GitHub 的大门,进入 GitHub 的世界吧!
首先,进入 GitHub 的官网:https://www.github.com

标注 1:Sign in,登录;
标注 2:Sign up,注册。
如上图所示,这是 GitHub 的官网首页,点击 Sign up 进行注册:

标注 1:Username,用户名;
标注 2:Email Address,邮箱地址;
标注 3:Password,密码;
标注 4:Create an account,创建账号按钮。
如上图所示,其中 标注 1 比较重要,最好起对我们具有标识性的用户名,而且如果以后我们要在 GitHub 上搭建自己的个人博客,其默认地址就是username.github.io;标注 2 是需要我们验证 GitHub 账号的邮箱,注册时只能填写一个,之后可以添加多个邮箱。上面的信息都填写完成后,点击 Create an account ,进入如下界面:

标注 1:公开的,免费仓库;
标注 2:私有的,付费仓库。
如上图所示,我们进入了注册 GitHub 账号流程的第 2 步,在这里有一点需要我们注意,那就是:GitHub 的仓库分为两种,一种是public repositories公开免费版,一种是private repositories私有付费版。其中,私有仓库一般是由企业或者不希望自己的仓库公开的个人用户购买,这也是 GitHub 的主要收入来源。在这里,我们选择免费版就可以,然后点击Continue,进入如下界面:

如上图所在,这是注册 GitHub 账号流程的第 3 步,也是最后一步。这个步骤的主要作用就是收集用户的个人信息,如果感兴趣的话,可以对上面的“ 问答表 ”进行勾选,然后点击Submit提交;如果不感兴趣的话,则可以直接点击skip this step跳过这一步。无论点击两者之中的那个按钮,都将进入如下界面:

标注1:Read the guide,阅读指南;
标注2:Start a project,建立项目。
如上图所示,到这里,说明我们已经成功注册了 GitHub 的账号。在这个界面,GitHub 为我们提供了两个建议性的选择,一是Read the guide阅读 GitHub 指南,二是Start a project直接建立项目。
三、GitHub 主页介绍及修改个人信息




标注 1:View profile and more,更多选项视图;
标注 2:Your profile,个人简介。
如上图所在,我们依次点击 标注 1 所示的View profile and more和 标注 2 所示的Your profile,进入「个人简介」界面:

标注 1:Edit profile,修改个人简介;
标注 2:Overview,个人主页概览;
标注 3:Repositories,仓库;
标注 4:Star,点星记录;
标注 5:Followers,粉丝;
标注 6:Following,关注的 GitHub 账号;
标注 7:个人贡献历史记录。
如上图所示:
标注 1 表示的为Edit profile,这个选项当我们修改完个人信息之后,就会自动消失;
标注 2 表示的为Overview,展示了我们账号的主要内容,包括仓库和贡献等;
标记 3 表示的为Repositories,是我们建立的仓库,包括Fork来的项目,GitHub 也会自动为我们创建一个仓库;
标注 4 表示为Star,收藏了我们的“点星”,或者说是“点赞”过的项目;
标注 7 表示的为我们最近一年来的contribution,用实心的小方格标记,小方格的颜色越深,表示我们的contribution越多。
在这里,我们点击Edit profile,编辑个人简历:

如上图所示,我们可以通过这个界面填写个人信息,包括 Name(昵称)、Bio(自我介绍)、URL(链接)、Company(公司)、Location(位置)以及 Upload new picture(上传头像)等等。在我们填写完个人信息之后,可以点击Update profile更新个人简介,同时可以勾选Available for hire,选择“雇主可见”,然后点击Save jobs profile,保存我们的求职简历。

此外,在Personal settings中,还包含很多其他的选择,如在Account中,可以修改账号密码;在Emails中,可以修改绑定的邮箱等等。在这里,用红色框圈起的SSH and GPG keys非常重要,我们可以通过它连接到本地的 IDE,从而保证项目提交与检出的安全性。
接下来,展示一下我们刚刚修改完的 GitHub 账号主页:

四、创建 GitHub 仓库的步骤及方法


如上图所示,此为博主的 GitHub 个人主页,点击Repositories,进入如下界面:
点击上图标注所示的绿色New按钮,进入下一步:

标注 1:Repository name,仓库名称;
标注 2:Description,可选描述,也就是写不写都可以;
标注 3:Public,默认的仓库类型;
标注 4:Initialize this repository with a README,初始化仓库的信息文件,建议勾选。
如上图所示,这是创建 GitHub 仓库的核心页面,里面包含了众多信息。为了方便演示,博主已经把各种所需的信息都填写完啦!接下来,点击绿色Create repository按钮即可:

如上图所示,我们已经把仓库创建成功啦!
仓库名为 CSBook ,包含 3 个commit,第一个 commit 是我们通过勾选Initialize this repository with a README,创建了一个初始化提交文件README.md,其中文件后缀为.md,表示文件为 Markdown 格式;包含 1 个branch,为master分支,即主分支;包含 1 个contributor,为贡献者,也就是我们自己。
五、GitHub 术语解释

为了大家进一步了解和使用 GitHub,我们一起来看看 GitHub 的常用术语,也可以说是基本概念:
Repository:简称Repo,可以理解为“仓库”,我们的项目就存放在仓库之中。也就是说,如果我们想要建立项目,就得先建立仓库;有多个项目,就建立多个仓库。
Issues:可以理解为“问题”,举一个简单的例子,如果我们开源一个项目,如果别人看了我们的项目,并且发现了bug,或者感觉那个地方有待改进,他就可以给我们提出Issue,等我们把Issues解决之后,就可以把这些Issues关闭;反之,我们也可以给他人提出Issue。
Star:可以理解为“点赞”,当我们感觉某一个项目做的比较好之后,就可以为这个项目点赞,而且我们点赞过的项目,都会保存到我们的Star之中,方便我们随时查看。在 GitHub 之中,如果一个项目的点星数能够超百,那么说明这个项目已经很不错了。
我整理了一些计算机的电子书,来点个赞吧:

Fork:可以理解为“拉分支”,如果我们对某一个项目比较感兴趣,并且想在此基础之上开发新的功能,这时我们就可以Fork这个项目,这表示复制一个完成相同的项目到我们的 GitHub 账号之中,而且独立于原项目。之后,我们就可以在自己复制的项目中进行开发了。
Pull Request:可以理解为“提交请求”,此功能是建立在Fork之上的,如果我们Fork了一个项目,对其进行了修改,而且感觉修改的还不错,我们就可以对原项目的拥有者提出一个Pull请求,等其对我们的请求审核,并且通过审核之后,就可以把我们修改过的内容合并到原项目之中,这时我们就成了该项目的贡献者。
Merge:可以理解为“合并”,如果别人Fork了我们的项目,对其进行了修改,并且提出了Pull请求,这时我们就可以对这个Pull请求进行审核。如果这个Pull请求的内容满足我们的要求,并且跟我们原有的项目没有冲突的话,就可以将其合并到我们的项目之中。当然,是否进行合并,由我们决定。
Watch:可以理解为“观察”,如果我们Watch了一个项目,之后,如果这个项目有了任何更新,我们都会在第一时候收到该项目的更新通知。
Gist:如果我们没有项目可以开源或者只是单纯的想分享一些代码片段的话,我们就可以选择Gist。不过说心里话,如果不翻墙的话,Gist并不好用。
六、Git 的安装流程及步骤

现在,我们已经知道了如何创建 GitHub 账号、创建仓库、进行个性化设置等等,但是我们还要知道:GitHub 是基于版本控制系统 Git 之上的啊!
如果我们想要进行代码托管,想要进行团队协作,这都少不了一个工具,那就是:Git。
因此,在本篇博文中,我们就一起来了解一下 Git 的安装流程及步骤。
首先,进入 Git 的官网:git - -fast-version-control

如上图所示,在 Git 的官网中点击Downloads,进入如下页面:

如上图所示,选择对应的操作系统,以博主为例,点击Windows,进入如下页面:

如上图所示,正常情况下,会自动弹出下载框,否则的话,手动点击红色箭头所示的 click here to download manually 亦可进入如下界面:



如上图所示,直接点击 下载 即可,下载完成后,双击打开,进入如下界面:



如上图所示,这是 Git 的安装界面,点击Next,进入如下界面:



如上图所示,选择 Git 的安装目录,默认安装到C盘的Program Files目录下,想换的话,点击Browse进入更换。在这里,我们选择将其安装到D盘的Program Files目录下,选择完成后,点击Next,进入如下界面:



如上图所示,这里有一些可勾选的项,我们可以按自己的实际需求进行选择(后面同样如此),例如勾选Additional icons,将在 Git 安装完成后,在桌面创建一个图标,也就是打开 Git 的快捷方式。在这一步,建议大家选择默认即可,例如默认勾选的Windows Explorer integration,就可以让我们在点击鼠标右键的时候,快速选择打开Git GUI或者 Git Bash。选择完成后,点击Next,进入如下界面:

如上图所示,选择 开始菜单文件夹,默认即可,点击Next,进入如下界面:

标注 1:仅使用 Git Bash 进行操作;
标注 2:在选择使用 Git Bash 进行操作的同时,也可以使用 Windows 命令行操作,建议选择此项;
标注 3:在选择使用 Git 的同时,也把 Unix 工具加入到了我们的配置之中,而且此操作会覆盖 Windows 的一些工具,强烈不建议选择此项。
如上图所示,我们选择 标注2 所示的Use Git from the Windows Command Prompt,点击Next,进入如下界面:

如上图所示,选择 HTTPS 传输后台,默认即可,点击Next,进入如下界面:

如上图所示,配置行结束标记,默认即可,点击Next,进入如下界面:

如上图所示,配置 Git Bash 的终端模拟器,默认即可,点击Next,进入如下界面:

如上图所示,配置补充功能,默认即可,点击Next,进入如下界面:



如上图所示,展示了 Git 安装中的界面,安装完成后,弹出如下窗口:



如上图所示,这表示 Git 已经安装完成了,至于图中的两个选择,则分别表示 打开 Git Bash 和 浏览 Git 版本信息,可以都选,也可以都不选,在这里,我们选择Launch Git Bash,进入如下界面:



如上图所示,我们打开了 Git Bash,输入git命令,将显示如下结果:

如上图所示,Git 已经准备就绪啦,接下来就是你的 show time 啦!
七、Git 初体验及其常用命令介绍

接下来介绍 Git 的命令操作,包含 init、add 等,在 Git 中,所有的命令都是以git开头,例如,git init其作用就是初始一个 Git 仓库。
为了方便演示,我们先在D盘的CoderLife目录下创建一个名为demo的子目录,并在其中新建一个名为hit.txt的文件,接下来我们的 Git 操作都是基于此目录和文件的。

此外,在这里还要强调一点,那就是:在我们进行任何的git操作之前,我们都得先切换到 Git 的仓库目录。
换言之,我们得到先进入到(我们定义的)Git 仓库的最顶层文件目录下,然后从此目录中进入 Git Bash,这样之后的操作才能顺利进行。
如果是 Linux 操作系统,则可以直接cd到仓库目录。
以博主为例,选择demo目录作为 Git 仓库,然后进入demo目录之中,点击鼠标右键,再选择Git Bash Here,即可打开 Git Bash 的命令行窗口。

如上图所示,Git 会自动定位到进入的位置,如我们选择的demo目录,这也是为什么我们需要先进入到 Git 仓库的最顶层目录下,然后再打开 Git Bash 的原因。下面,我们结合 Git 的常用命令演示一下 Git 的相关操作。
第 1 个命令:git status
在命令行窗口的光标处,输入git status命令,查看仓库的状态:

如上图所示,结果显示demo不是一个 Git 仓库,这是很正常的反应,因为我们还没有在计算机中声明demo为 Git 仓库,之前说demo是 Git 仓库只是我们口头上的说的,计算机当然不会认可。
第 2 个命令:git init
在命令行窗口的光标处,输入git init命令,初始化 Git 仓库:

如上图所示,结果显示已经初始化demo为一个空的 Git 仓库啦!在这里大家可以会有些疑问,因为我们在建立demo目录的同时也在里面新建了一个名为hit.txt的文件,怎么初始化仓库之后,demo目录就变成空的了呢?这个问题稍后解惑,我们重新输入git status命令检查一下仓库的状态:

如上图所示,在我们初始化仓库之后,demo目录已经成为一个 Git 仓库了,并且默认进入 Git 仓库的master分支,即主分支。在这里,我们需要注意的是Untracked fies提示,它表示demo仓库中有文件没有被追踪,并提示了具体没有被追踪的文件为hit.txt,还提示了我们可以使用git add命令操作这个文件,简直不要太好。
第 3 个命令:git add
在命令行窗口的光标处,输入git add hit.txt命令,将hit.txt文件添加到 Git 仓库:

如上图所示,如果没有报错,就说明命令已经执行啦!接下来,输入git status命令查看仓库状态:

如上图所示,已经显示Initial commit初始化提交了,同时已经没有Untracked files提示了,这说明文件hit.txt已经被添加到 Git 仓库了,而在我们没有进行git add操作之前,文件hit.txt并不被 Git 仓库认可,因此才会出现提示初始化仓库为空的现象。在这里,需要声明一点,那就是:git add命令并没有把文件提交到 Git 仓库,而是把文件添加到了「临时缓冲区」,这个命令有效防止了我们错误提交的可能性。
第 4 个命令:git commit
在命令行窗口的光标处,输入git commit -m "text commit"命令,将hit.txt文件提交到 Git 仓库:



如上图所示,我们成功将文件hit.txt提交到了 Git 仓库,其中commit表示提交,-m表示提交信息,提交信息写在双引号""内。接下来,再输入git status命令查看仓库状态:

如上图所示,结果显示nothing to commit, working tree clean,这表示已经没有内容可以提交了,即全部内容已经提交完毕。
第 5 个命令:git log
在命令行窗口的光标处,输入git log"命令,打印 Git 仓库提交日志:

如上图所示,显示了我们的提交记录,提交记录的内容包括Author提交作者、Date提交日期和提交信息。
通过以上的操作,我们会发现一个现象,那就是:在每个git操作之后,我们基本都会输入git status命令,查看仓库状态。
这也从侧面说明了git status命令使用的频率之高,也建议大家在操作 Git 仓库的时候多使用git status命令,这能帮助我们实时了解仓库的状态,显然非常有用。
第 6 个命令:git branch
在命令行窗口的光标处,输入git branch命令,查看 Git 仓库的分支情况:

如上图所示,显示了仓库demo中的分支情况,现在仅有一个master分支,其中master分支前的*号表示“当前所在的分支”,例如* master就意味着我们所在的位置为demo仓库的主分支。输入命令git branch a,再输入命令git branch,结果如下图所示:

如上图所示,我们创建了一个名为a的分支,并且当前的位置仍然为主分支。
第 7 个命令:git checkout
在命令行窗口的光标处,输入git checkout a命令,切换到a分支:

如上图所示,我们已经切换到a分支啦!也可以通过命令git branch查看分支情况:

在这里,我们还有一个更简单的方法来查看当前的分支,即通过观察上图中用红色框圈起来的部分。此外,我们也可以在创建分支的同时,直接切换到新分支,命令为git checkout -b,例如输入git checkout -b b命令:

如上图所示,我们在a分支下创建b分支(b为a的分支),并直接切换到b分支。
第 8 个命令:git merge
切换到master分支,然后输入git merge a命令,将a分支合并到master分支:

如上图所示,我们已经将a分支合并到主分支啦!此外,在这里需要注意一点,那就是:在合并分支的时候,要考虑到两个分支是否有冲突,如果有冲突,则不能直接合并,需要先解决冲突;反之,则可以直接合并。


第 9 个命令:git branch -d & git branch -D
在命令行窗口的光标处,输入git branch -d a命令,删除a分支:

如上图所示,我们已经将分支a删除啦!不过有的时候,通过git branch -d命令可以出现删除不了现象,例如分支a的代码没有合并到主分支等,这时如果我们一定要删除该分支,那么我们可以通过命令git branch -D进行强制删除。
第 10 个命令:git tag
在命令行窗口的光标处,输入git tag v1.0命令,为当前分支添加标签:

如上图所示,我们为当前所在的a分支添加了一个v1.0标签。通过命令git tag即可查看标签记录:

如上图所示,显示了我们添加标签的记录。通过命令git checkout v1.0即可切换到该标签下的代码状态:

如上图所示,我们已经成功切换到a分支的v1.0标签啦!
八、利用 SSH 完成 Git 与 GitHub 的绑定

现在,我们已经对 GitHub 有了一定的了解,包括创建仓库、拉分支,或者通过Clone or download克隆或者下载代码;我们也下载并安装了 Git,也了解了其常用的命令。
But,无论是 GitHub,还是 Git,我们都是单独或者说是独立操作的,并没有将两者绑定啊!也就是说,我们现在只能通过 GitHub 下载代码,并不能通过 Git 向 GitHub 提交代码。
因此,在本篇博文中,我们就一起完成 Git 和 GitHub 的绑定,体验通过 Git 向 GitHub 提交代码的能力。不过在这之前,我们需要先了解 SSh(安全外壳协议),因为在 GitHub 上,一般都是通过 SSH 来授权的,而且大多数 Git 服务器也会选择使用 SSH 公钥来进行授权,所以想要向 GitHub 提交代码,首先就得在 GitHub 上添加 SSH key配置。
第 1 步:生成 SSH key
我们要想生成SSH key,首先就得先安装 SSH,对于 Linux 和 Mac 系统,其默认是安装 SSH 的,而对于 Windows 系统,其默认是不安装 SSH 的,不过由于我们安装了 Git Bash,其也应该自带了 SSH. 可以通过在 Git Bash 中输入ssh命令,查看本机是否安装 SSH:

如上图所示,此结果表示我们已经安装 SSH 啦!接下来,输入ssh-keygen -t rsa命令,表示我们指定 RSA 算法生成密钥,然后敲三次回车键,期间不需要输入密码,之后就就会生成两个文件,分别为id_rsa和id_rsa.pub,即密钥id_rsa和公钥id_rsa.pub. 对于这两个文件,其都为隐藏文件,默认生成在以下目录:
Linux 系统:~/.ssh
Mac 系统:~/.ssh
Windows 系统:C:\Documents and Settings\username\\.ssh
Windows 10 ThinkPad:C:\Users\think\.ssh
密钥和公钥生成之后,我们要做的事情就是把公钥id_rsa.pub的内容添加到 GitHub,这样我们本地的密钥id_rsa和 GitHub 上的公钥id_rsa.pub才可以进行匹配,授权成功后,就可以向 GitHub 提交代码啦!
第 2 步:添加 SSH key

如上图所示,进入我们的 GitHub 主页,先点击右上角所示的倒三角▽图标,然后再点击Settins,进行设置页面;点击我们的头像亦可直接进入设置页面:

如上图所示,进入Settings页面后,再点击SSH and GPG Keys进入此子界面,然后点击New SSH key按钮:

如上图所示,我们只需要将公钥id_rsa.pub的内容粘贴到Key处的位置(Titles的内容不填写也没事),然后点击Add SSH key 即可。
第 3 步:验证绑定是否成功
在我们添加完SSH key之后,也没有明确的通知告诉我们绑定成功啊!不过我们可以通过在 Git Bash 中输入ssh -T git@github.com进行测试:

如上图所示,此结果即为Git 与 GitHub 绑定成功的标志。
九、通过 Git 将代码提交到 GitHub

到这一步我们已经完成了本地 Git 与远程 GitHub 的绑定,这意味着我们已经可以通过 Git 向 GitHub 提交代码啦!
但是在进行演示之前,我们需要先了解两个命令,也是我们在将来需要经常用到的两个命令,分别为 push 和 pull 。
push:该单词直译过来就是“推”的意思,如果我们本地的代码有了更新,为了保持本地与远程的代码同步,我们就需要把本地的代码推到远程的仓库,代码示例:
git push origin master
pull:该单词直译过来就是“拉”的意思,如果我们远程仓库的代码有了更新,同样为了保持本地与远程的代码同步,我们就需要把远程的代码拉到本地,代码示例:
git pull origin master
此外,在之前我们讲到过pull request,在这里,估计大家就能更好的理解了,它表示:如果我们fork了别人的项目(或者说代码),并对其进行了修改,想要把我们的代码合并到原始项目(或者说原始代码)中,我们就需要提交一个pull request,让原作者把我们的代码拉到 ta 的项目中,至少对于 ta 来说,我们都是属于远程端的。
一般情况下,我们在push操作之前都会先进行pull操作,这样不容易造成冲突。
提交代码
对于向远处仓库(GitHub)提交代码,我们可以细分为两种情况:
第一种:本地没有 Git 仓库,这时我们就可以直接将远程仓库clone到本地。通过clone命令创建的本地仓库,其本身就是一个 Git 仓库了,不用我们再进行init初始化操作啦,而且自动关联远程仓库。我们只需要在这个仓库进行修改或者添加等操作,然后commit即可。
接下来,以博主的 GitHub 账号中的 CSBook 项目为例,进行演示。
CSBook:计算机类常用电子书整理,并且附带下载链接,包括Java,Python,Linux,Go,C,C++,数据结构与算法,人工智能,计算机基础,面试,设计模式,数据库,前端等书籍。

首先,进入 GitHub 个人主页:

如上图所示,点击 mybatis-tutorial 项目:



如上图所示,进入mybatis-tutorial项目后,点击Clone or download,复制上图所示的地址链接。然后,进入我们准备存储 Git 仓库的目录,例如下面我们新建的GitRepo目录, 从此目录进入 Git Bash:



接下来,输入
git clone https://github.com/guobinhit/mybatis-tutorial.git
命令,其中clone后面所接的链接为我们刚刚复制的远程仓库的地址:

如上图所示,我们已经把远程的mybatis-tutorial仓库clone到本地啦!下面,我们看看clone到本地的仓库内容与远程仓库的内容,是否完全一致:



如上图所示,显示我们已经把远程仓库mybatis-tutorial的内容都clone到本地啦!接下来,为了方便演示,我们直接把之前重构的「史上最简单的 MyBatis 教程」里面的mybatis-demo项目的代码复制过来:

如上图所示,我们已经把mybatis-demo项目里面的主要内容src目录和web目录复制过来啦!接下来,从此目录进入 Git Bash,然后输入git status命令查看仓库状态:

如上图所示,mybatis-tutorial已经是一个 Git 仓库了,而且在输入git status命令后显示有两个文件未被追踪,也就是我们刚刚复制过来的两个文件没有提交。通过「Git 初体验及其常用命令介绍」,我们已经知道了在真正提交代码之前,需要先进行git add操作:

如上图所示,我们已经将src目录add并commit到mybatis-tutorial仓库啦!接下来,我们将web目录提交到仓库,然后输入git log命令查看仓库日志:

再输入git status命令查看仓库状态:

如上图所示,我们已经将mybatis-tutorial仓库里面新添加的两个目录都提交啦!下面,我们将本地仓库的内容push到远程仓库,输入git push origin master命令:

如上图所示,在第一次向远程仓库提交代码的时候,需要输入账号及密码进行验证,验证成功后,显示如下结果:

然后,刷新 GitHub 中mybatis-tutorial仓库:



如上图所示,我们已经将项目(仓库)中新添加的内容提交到了远程仓库。接下来,返回 GitHub 个人主页:

观察上图,我们会发现一个现象,那就是:mybatis-tutorial仓库的概要中新增了一个Java语言的标记。对于这个仓库语言的标记,其来源有两个,一是在我们创建仓库时就指定语言;二是在我们提交或者新建代码后由 GitHub 自动识别该语言。
以上介绍了向 GitHub 提交代码时的第一种情况,即:
第一种:本地没有 Git 仓库,这时我们可以直接将远程仓库clone到本地。通过clone命令创建的本地仓库,其本身就是一个 Git 仓库了,不用我们再进行init初始化操作啦,而且自动关联远程仓库。我们只需要在这个仓库进行修改或者添加等操作,然后commit即可。
接下来,我们继续介绍向 GitHub 提交代码时可能遇到的第二种情况,即:
第二种:本地有 Git 仓库,并且我们已经进行了多次commit操作。
仍然以博主的开源项目为例,不过这次换成springmvc-tutorial项目进行演示。首先,建立一个本地仓库,命名为springmvc-tutorial:

如上图所示,进入该仓库,进入init初始化操作:

然后,输入
git remote add origin https://github.com/guobinhit/springmvc-tutorial.git
命令,关联远程仓库(在此,默认大家都知道如何获取远程仓库的地址),其中origin为远程仓库的名字:

输入git pull origin master命令,同步远程仓库和本地仓库:

再回到本地springmvc-tutorial仓库,看看我们是否已经把远程仓库的内容同步到了本地:

如上图所示,显然我们已经把远程springmvc-tutorial仓库里面仅有的README.md文件同步到了本地仓库。接下来,在本地仓库新建一个名为test.txt的测试文件:

输入git add和git commit命令,将文件test.txt添加并提交到springmvc-tutorial仓库:

再输入git push origin master命令,将本地仓库修改(或者添加)的内容提交到远程仓库:

如上图所示,我们已经将本地仓库的内容同步到了远程仓库。下面,我们进入远程springmvc-tutorial仓库的页面,看看我们的提交结果:

如上图所示,我们已经将「通过 Git 将代码提交到 GitHub」的第二种情况演示完毕。
此外,在这个例子中,我们将远程仓库命名为origin,本地仓库名为springmvc-tutorial,其实两者的名字咱们可以随意取,一般来说,我们习惯性将远程仓库命名为origin,不过在需要关联多个远程仓库的时候,就需要我们再取别的名字啦!
最后,再强调一遍:在我们向远程仓库提交代码的时候,一定要先进行pull操作,再进行push操作,防止本地仓库与远程仓库不同步导致冲突的问题,尤其是第二种提交代码的情况,很容易就出现问题。
十、总结

好了,以上就是 GitHub 使用的基础教程了,看到这里的同学不妨点赞收藏一波吧,我还整理了一些计算机专业的电子书,可以前往收藏下载。
我一直认为读书是世界上性价比最高的成长方式,书很便宜但分量很重,是让我们摆脱平庸走向卓越的方式之一。
对于计算机专业的学生而言,读计算机经典书籍不光能让你快速提升知识和能力,更会让你在校招之际如虎添翼。
书籍下载:计算机必看经典书籍(含下载方式)

版权声明:本文为CSDN博主「CG国斌」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:史上最简单的 GitHub 教程
最后,再给大家送上点干货!

下面这是一个高赞回答合集,建议大家点赞&收藏,Mark住别丢了,大学期间绝对用得上
1、怎么学好数据结构,看下面这个回答,已经获得了 21000+ 的赞和 50000+的收藏。

2、如何系统地学习算法,看下面这个回答,已经获得了 11000+ 的赞和 26000+的收藏。

3、新手该如何使用 GitHub,看下面这个回答,如果在大学期间就知道使用 GitHub ,那么能力远超同龄人。

4、想成为一名优秀的程序员,那么这些程序员平时都喜欢逛的论坛怎么说你也得收藏一些吧。

5、无论别人怎么说,我都是坚定不移的选择计算机专业。

6、如何系统地学习 C++ ,这个回答能帮你找到路线。

7、想要准备 Java 面试,那么这些面试题必须掌握。

赶紧点赞和收藏吧~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表