7.1、注册Github账号

7.1.1、访问官网

Github 官网:https://github.com/

先访问GitHub的官网首页,点击 sign in (登录),跳转到登录页。

7.1.2、进入登录页

因为目前还没有GitHub的账号,所以先注册一个账号。

7.1.3、填写注册信息

输入邮箱、密码和用户名。

同意接收相关邮件。

7.1.4、注册验证

输入发送到注册邮箱中的验证码。

7.1.5、登录个人主页

注册成功后,会自动跳转到个人主页。

7.1.6、演示账号

账号 姓名 邮箱
lb-liao 刘备 lb_liaojy@163.com
km-liao 孔明 km_liaojy@163.com
zy-liao 周瑜 zy_liaojy@163.com

出于演示效果需要,本文使用了三个 GitHub 账号(见上表)。

7.2、创建远程仓库

如上图所示,即将创建一个名为 kfhs 的远程仓库;因为在 lb-liaojy 账号的名下还没有这个名字的仓库,所以可以使用仓库名。

此外,还设置了该仓库的分类为 public (GitHub的默认分类),表示是公共仓库,读权限是完全放开的;与之相反的是私有仓库 private 。

如上图所示,设置完仓库名称和类型后,即可点击“Create repository”按钮,从而创建一个仓库。

如上图所示,就是刚创建仓库成功后,什么项目内容都还没有的样子,但我们可以看到该远程仓库的 HTTPS 链接。

7.3、命令速查表

命令 作用
git remote -v 查看已设置的所有远程地址别名
git remote add 别名 远程地址 为一个远程地址设置别名
git push 别名 分支名 推送本地仓库某分支的内容到远程仓库
git pull 远程库地址(别名) 远程分支名 将远程仓库某分支的更新内容拉取到本地仓库
git clone 远程仓库地址 将远程仓库克隆到本地

7.4、远程仓库的别名

7.4.1、创建一个本地库

注意:本地仓库名称和远程仓库名称,最好是相同的。

7.4.2、查看远程仓库的别名列表

如上图所示,别名列表为空,表示目前还没为任何远程仓库设置别名。

git remote -v

7.4.3、设置远程仓库的别名

如上图所示,为远程仓库地址 https://github.com/lb-liaojy/kfhs.git 设置了一个别名 kfhs

git remote add 别名 远程地址

注意:远程仓库地址的别名,最好和远程仓库名称相同。

7.4.4、确认刚设置的远程仓库别名

如上图所示,一个别名会对应远程仓库地址的两种类型,分别用于拉取(fetch)和推送(push)。

注意:每个本地仓库都有自己的远程仓库别名列表,相互独立,互不影响。

7.5、推送本地库到远程库

7.5.1、在本地库新增内容

如上图所示,在本地库新增了一个 plan.txt 文件,其内容为“匡扶汉室”。

7.5.2、查看凭据管理器

如上图所示,目前还没有 GitHub 账号的相关凭据。

7.5.3、推送本地库的master分支到远程库

如上图所示,往远程仓库推送内容,需要登录具备相应权限的 GitHub 账号。

因为已在浏览器中登录了 GitHub 账号,所以可以直接点击“Sign in with your browser”按钮,跳转到浏览器页面进行授权。

如上图所示,点击“Authorize git-ecosystem”按钮,即可将浏览器中的 GitHub 账号登录状态,同步到 Windows 系统中。

如上图所示,已成功推送本地库的master分支到远程库。

7.5.4、确认凭据管理器

如上图所示,Windows系统已记录了 GitHub 的登录凭据,这样以后就不需要再次授权,可以直接往远程仓库推送内容。

7.5.5、查看远程库

如上图所示,本地库master分支的内容,已成功推送到远程库。

7.6、拉取远程库到本地库

7.6.1、在线直接修改远程库的内容

如上图所示,点击需要修改的文件。

如上图所示,打开需要修改的文件后,点击编辑。

如上图所示,修改完文件内容后,点击提交按钮。

如上图所示,在提交弹窗中,填写提交描述后,点击提交按钮。

如上图所示,已成功在线直接修改远程库的内容。此时,远程库和本地库的内容已不一致,因此本地库需要从远程库中,拉取更新的内容。

7.6.2、将远程库的更新内容拉取到本地库

如上图所示,已成功将远程仓库master分支的更新内容拉取到本地仓库。

git pull 远程库地址(别名) 远程分支名

7.6.3、查看拉取的更新内容

如上图所示,本地库的内容,与远程库的内容,已经同步了。

注意:pull(拉取)命令,会自动将远程分支的更新内容,提交到本地库;因此本地库不用再执行 git add 和 git commit 命令。

7.7、克隆远程库到本地库

7.7.1、删除GitHub账号的凭据

如上图所示,删除了 GitHub 账号的凭据。这样做的原因是,为了证明克隆远程库到本地库,不需要权限。

7.7.2、复制远程库地址

7.7.3、将远程库克隆到本地库

如上图所示,已成功将远程库克隆到本地。

git clone 远程仓库地址

注意:由于GitHub是国外的网站,所以有时会因为网络问题,而产生下面的报错信息;一般多试几次就能解决。

fatal: unable to access 'https://github.com/lb-liaojy/kfhs.git/': Failed to connect to github.com port 443 after 21043 ms: Couldn't connect to server

7.7.4、克隆的三个效果

如上图所示,克隆命令实际产生了三个效果:

  • 初始化本地仓库:创建了和远程仓库同名的文件夹,该文件夹中还有用于版本控制的 .git 子文件夹。

  • 拉取内容:本例为 plan.txt 文件。

  • 创建别名:自动为远程仓库地址创建了别名 origin 。

7.8、团队内协作

7.8.1、修改本地库文件

如上图所示,孔明克隆了刘备的远程库后,在本地库对文件内容做了修改。

7.8.2、推送本地库的更新到远程库(非团队成员)

如上图所示,往远程仓库推送内容,需要登录具备相应权限的 GitHub 账号。

因为已在浏览器中登录了 GitHub 账号,所以可以直接点击“Sign in with your browser”按钮,跳转到浏览器页面进行授权。

注意:出于演示需要,浏览器现在登录的是孔明的账号。

如上图所示,点击“Authorize git-ecosystem”按钮,即可将浏览器中的 GitHub 账号登录状态,同步到 Windows 系统中。

注意:出于演示需要,浏览器现在登录的是孔明的账号。

如上图所示,孔明往(刘备的)远程库推送本地库的更新失败,因为此时孔明还没有往(刘备的)远程库的推送权限。

7.8.3、邀请合作者加入团队

如上图所示,在该远程库的 Settings 的 Collaborations 中,点击“add people”按钮,即可查找想要邀请的合作者。

如上图所示,通过搜索孔明的 GitHub 账号名称,即可向其发送合作邀请。

如上图所示,向孔明发送邀请后,还需等待其同意邀请。

7.8.4、同意加入团队的邀请

如上图所示,在孔明的 GitHub 信箱中,能看到刘备发来的邀请。

如上图所示,孔明点击“Accept invitation”按钮,即可加入刘备的团队。

如上图所示,加入刘备的团队后,孔明便有了往刘备的远程库(kfhs)执行 push (推送)命令的权限。

注意:刘备可以有多个远程库,各个远程库可以有不同的团队成员。

7.8.5、推送本地库的更新到远程库(是团队成员)

如上图所示,当孔明成功刘备远程库的团队成员后,便可成功推送本地库的更新到这个远程库。

7.8.6、查看远程库

如上图所示,孔明的本地库更新,已成功推送到刘备的远程库。

注意:此时,刘备本地库和远程库的内容已不一致,因此刘备本地库需要从远程库中,拉取更新的内容。(具体操作见7.6节)

7.9、跨团队协作

7.9.1、查找远程库

如上图所示,通过GitHub顶部的搜索框输入关键词,即可查找相关项目。(能精准匹配的关键词格式:GitHub账号名称/远程库名称)

注意:为演示需要,此时登录的GitHub账号是周瑜的。

7.9.2、复制远程库

如上图所示,在刘备的远程库中,点击“fork”按钮,即可将该远程库复制一份到自己的 GitHub 账号名下。

如上图所示,还可以编辑复制到自己名下的远程库名。

注意:从已自动勾选的可选框可知,默认只复制主分支(master)。

如上图所示,复制来的远程库,会显示复制的源头。

7.9.3、对复制来的远程库进行修改

如上图所示,周瑜成功对复制来的远程库内容做了修改更新;因为该远程库是自己名下的,所以不需要加入刘备的团队,就能拥有写权限。

当然,这样的修改,不会影响到刘备的远程库。

注意:在线直接修改远程库的详细操作过程,可以参考 7.6.1 节。

7.9.4、周瑜发送拉取请求(pr)

如上图所示,创建拉取请求(pull request)时,可以对比两个远程库分支的差异。

如上图所示,发送拉取请求时,会附带拉取请求的标题(默认是提交信息),还可以补充描述。

如上图所示,发送拉取请求成功。

7.9.5、刘备查看拉取请求

如上图所示,刘备看到了周瑜发送的拉取请求。

如上图所示,点击拉取请求的标题,查看周瑜修改的内容。

如上图所示,能看到这个拉取请求中,两个远程库分支的差异对比。

7.9.6、在拉取请求中沟通

如上图所示,刘备能在这个拉取请求中,向周瑜发送消息。

如上图所示,周瑜看到刘备在这个拉取请求中的消息后,也可以回消息。

7.9.7、刘备合并拉取请求

如上图所示,刘备审核过周瑜的拉取请求后,觉得相关修改是有价值的,可以合并到自己的远程库中。

如上图所示,合并拉取请求时,会有确认合并的提示。

如上图所示,已成功合并。

如上图所示,刘备的远程库中,有周瑜的提交信息。

7.10、SSH免密登录

7.10.1、查看远程库的SSH地址

如上图所示,远程库地址除了HTTPS类型的之外,还有SSH类型。

如果使用HTTPS类型的就很简单,基本不需要配置就可以使用,但是每次推送时,都需要用已登录GitHub账号的浏览器授权(或输入用户名和密码)。

SSH类型相比HTTPS类型的一个重要的优点是,只需要配置一次,就不用每次推送时,都重复需要用已登录GitHub账号的浏览器授权(或输入用户名和密码)。当然,前提是必须是该远程库的拥有者或合作者,且配置好了 SSH key (上图显示目前还没配置好 SSH key )。

7.10.2、本地生成SSH密钥

如上图所示,先用 Git Bash 进入本地电脑的当前用户的家目录。

cd

如上图所示,输入生成密钥的命令后,连续按回车即可。

ssh-keygen -t rsa -C GitHub账号邮箱
  • ssh-keygen:生成SSH密钥的命令。

  • -t:指定生成SSH密钥的加密算法,rsa 是著名的非对称加密算法。

  • -C(注意 C 是大写的):用来指定标识邮箱。

注意:如果之前已经生成过SSH密钥,可以执行以下命令删除旧的

removed directory '.ssh'

7.10.3、查看生成的SSH密钥

如上图所示,执行生成密钥的命令后,会有一个“.ssh”的目录,该目录中有私钥文件“id_rsa”和公钥文件“id_rsa.pub”。

cd .ssh/
ll

如上图所示,使用 cat 命令查看公钥文件“id_rsa.pub”中的内容。

cat id_rsa.pub

7.10.4、在GitHub中添加公钥

如上图所示,点击 GitHub 账号用户头像,在侧弹窗中点击进入“Settings”。

如上图所示,在“Settings”中,点击“SSH and GPG keys”,就可以看到“New SSH key”按钮。

如上图所示,将在本地生成的 SSH 公钥复制到 GitHub ,并为其自定义一个标识名称。

如上图所示,已成功在 GitHub 中添加了一个本地电脑生成的公钥。

这样一来,以后在本地电脑,使用远程仓库的 SSH 地址执行 push (推送)命令的时候,就不需要登录了。

7.10.5、再次查看远程库的SSH地址

如上图所示,在 SSH 中已经没有了警告弹窗,表明已配置好了 SSH key 。

7.10.6、删除本地的GitHub登录凭据

如上图所示,删除了 GitHub 账号的凭据。这样做的原因是,为了证明 SSH 免密登录后已配置成功。

7.10.7、使用SSH地址拉取远程库

如上图所示,此时刘备的本地库与远程库不一致,远程库的更新还没有同步到本地库。

如上图所示,第一次使用 SSH 地址,会有提示信息,输入“yes”回车即可。

如上图所示,成功使用 SSH 地址(免密登录)拉取远程库的更新到本地库。

7.10.8、使用SSH地址向远程库推送更新

如上图所示,先在本地库更新内容。

如上图所示,成功使用 SSH 地址(免密登录)向远程库推送了本地库的更新。

如上图所示,远程库确实有了本地库的更新。

7、Git之Github操作的更多相关文章

  1. Git TortoiseGit github 操作

    由于公司采用了分布式架构,选择的是gitlab git 来管理代码等工作,鉴于github和gitlab的相似性,网上查看好多都是用git的命令上传,或者是一部分,为此,借鉴多方网络,并进行实际操作, ...

  2. Git和Github操作

    个人笔记和总结.如有错误欢迎指出https://github.com/zhaozehua0312/leran-gitAndgithub 内容已发布github上

  3. 使用git和github管理自己的项目---基础操作学习[转]

    原文: https://segmentfault.com/a/1190000003728094 我是通过看廖雪峰的git教程学习的,真的是极好的,以下是我学习过程中的总结,记录下来,方便自己参考以熟悉 ...

  4. Git和Github的介绍、简单操作、冲突(上)

    目的:   1.git与github简介  2.Git与SVN区别 3.Github 的简单使用 4.下载安装Git-20-64-bit.exe   5.Git常用命令 5.1Git命令使用场景 5. ...

  5. Git版本控制 Git、github,gitlab相关操作

    目录 关于版本控制 版本管理工具 集中式管理 分布式管理 git版本管理 git介绍 软件安装 Git工作状态 原理流程步骤 git基本操作 对文件进行修改 分支 共享仓库 创建共享仓库: 共享仓库上 ...

  6. git命令行操作

    从本地上传代码到仓库(假设已经建好仓库): 1.初始化: git init 2.将所有文件加入缓存区: git add * 3.提交当前工作空间的修改内容: git commit -m 'commit ...

  7. 简单使用Git和Github来管理自己的代码和读书笔记

    原文链接:http://my.oschina.net/bxxfighting/blog/378196   先注册github.com的账号官方网站: https://github.com/ 注册界面, ...

  8. git for windows 的默认工作路径(HOME)的设置以及Git与GitHub之间的SSH加密协议

    1.安装及配置默认路径 Windows中从GitHub上面:https://git-for-windows.github.io/ 下载安装好git后(双击,改一下需要的安装路径,一路确定就好了),安装 ...

  9. git与github安装、配置、pull、push

    操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...

  10. 转:sublime上使用git连接github

    "工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...

随机推荐

  1. 调试YOLOv3/YOLOv5过程中遇到的问题汇总

    今日立冬 yolov1 yolo1论文 https://www.bilibili.com/video/BV15w411Z7LG yolo2论文 https://www.bilibili.com/vid ...

  2. idea 使用 mvn clean package 报错 Could not create local repository at

    使用 mac 版本的 idea 打包使用打包命令 mvn clean package 总是报错: [ERROR] Could not create local repository at /Repos ...

  3. kettle从入门到精通 第二十二课 kettle carte web服务中文乱码

    在windows 上面 carte服务的canvas画布展示的中文正常,但是在linux上面中文展示乱码,如下所示: 原因:linux 机器缺少字体所致. kettle源码中使用字体: 解决方法: 安 ...

  4. C# .NET 生成国密私钥公钥对

    使用的工具类: using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.GM; using Org.BouncyCastle.Asn1.X9; ...

  5. java把时间戳转换成时间_(转)java时间与时间戳互转

    java中时间精确到毫秒级,所以需求时间需要 除以1000 //将时间转换为时间戳 public static String dateToStamp(String s) throws Exceptio ...

  6. 使用Wesky.Net.OpenTools包来快速实现嵌套型结构体数据转换功能

    今天遇到有人提到结构体和byte数组互转的问题,我就顺便拿来水一篇.这是一个冷门的问题,估计使用的人不多.既然有需求,应该就有使用场景,那就顺便整一波. 为了达到效果,结构体.复杂结构体嵌套等都能实现 ...

  7. 增补博客 第六篇 python 电子算盘

    珠算测试器 题目描述]设计一个珠算测试器,要求能够完成珠算加减法的测试.具体的要求功能如下:(1)用户启动测试,输入用户名后系统随机生成特定数目的加减法测试题:(2) 要求测试使用表盘式或数字时秒表进 ...

  8. Oracle 数据库 命令行安装

    Oracle 数据库 命令行安装 1. 准备工作 关闭 防火墙,关闭 SElinux 2. 安装相关依赖包 yum -y install binutils compat-libcap1 compat- ...

  9. 大模型重塑软件开发,华为云AI原生应用架构设计与实践分享

    在ArchSummit全球架构师峰会2024上,华为云aPaaS平台首席架构师马会彬受邀出席,和技术爱好者分享AI原生应用引擎的架构与实践. AI大模型与AI重塑软件的大趋势下,软件会发生哪些本质的变 ...

  10. 实验2.ARP实验

    # 实验2.ARP实验 本实验用于验证arp以及arp表,arp缓存的使用,测试ping包时arp表的更新机制. 实验组 PC1 10.68.57.10 255.255.255.0 00-00-00- ...