Git使用教程:Pro Git Book - GitHub

3.1 GitHub - 远程仓库操作

创建远程仓库

GitHub 是最大的 Git 版本库托管商,是成千上万的开发者和项目能够合作进行的中心。 大部分 Git 版本库都托管在 GitHub,很多开源项目使用 GitHub 实现 Git 托管、问题追踪、代码审查以及其它事情。

  • 你所需要做的第一件事是创建一个免费账户。 直接访问 https://github.com,选择一个未被占用的用户名,提供一个电子邮件地址和密码,点击写着“Sign up for GitHub”的绿色大按钮即可。

  • 创建完账户并且登录后,第二件事是创建一个自己的仓库,点击 GitHub 主页右上角 + 下拉菜单中的 New repository 创建一个新的仓库,创建完成后复制仓库的 HTTP 链接地址,供后续操作使用。

完成以上操作你便成功创建了一个远程仓库,接下来学习对远程仓库的一些基本操作。

远程仓库的使用

为了能在任意 Git 项目上协作,你需要知道如何管理自己的远程仓库。 远程仓库是指托管在因特网或其他网络中的你的项目的版本库。 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等。

Git命令操作说明
git clone [link]克隆仓库
git remote查看远程仓库
git push [Alias] [Branch]推送到远程仓库
git pull [Alias] [Branch]从远程仓库中拉取
  • 克隆仓库:获取远程仓库直接的方式就是使用 git clone 命令克隆仓库,执行该命令可以获取一份远程仓库的拷贝到本地工作区。

  • 查看远程仓库:运行 git remote 命令可以查看已经配置的远程仓库服务器,如果你已经克隆了自己的仓库,那么至少应该能看到 origin ——这是 Git 给你克隆的仓库服务器的默认名字:

      $ git remote
      origin
    

    你也可以指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL:

      $ git remote -v
      origin  https://github.com/WJBGITHUB123/RemoteTest.git (fetch)
      origin  https://github.com/WJBGITHUB123/RemoteTest.git (push)
    
  • 创建别名:可以使用 git remote add [Alias] [URL] 为 URL 创建一个别名,克隆远程仓库系统会为仓库服务器创建默认别名 origin ,创建后可以使用别名替代 URL 执行命令;

  • 推送到远程仓库:运行 git push [Alias] [Branch] 可以推送本地仓库分支 Branch 到远程仓库服务器,第一次推送到远程仓库需要登录 GitHub 账户并授权(该操作会在推送时弹出弹窗,按步骤进行即可);

  • 拉取远程仓库:运行 git pull [Alias] [Branch] 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支;

  • 切换账户如果你切换了 GitHub 账户,再次与远程仓库链接前需要删除Windows本地凭据管理器,在下次链接时重新授权,具体操作你可以在自己电脑搜索栏中搜索凭据管理器,选择 Windows 凭据,查看普通凭据找到 GitHub - 执行删除操作。

3.2 GitHub - 团队协作

团队内协作

push
clone
clone
push
push
pull
管理员
远程库
开发者1
开发者2

团队内协作:团队内协作通常由管理员发起,管理员创建本地仓库推送 push 到 GitHub 远程仓库(管理员在 GitHub 中添加开发人员,向开发人员发送邀请,开发人员接受邀请后加入该项目),开发人员可以克隆 clone 远程仓库到自己的本地仓库,编辑完成后推送 push 到远程仓库,管理员再从远程仓库拉取 pull 到本地仓库…如上图所示,从而实现灵活高效的开发项目。

跨团队协作

Team1 主团队
Team2 协助团队
clone
push
push
clone
push
pull
管理员
远程库1
开发者
远程库2
管理员
Fork
pull_request
审核
merge

跨团队协作:项目开发过程有时会需要团队外人员参与部分工作或者多团队间联合开发项目,这种情况下不适合给予类似团队内开发人员的过高仓库访问权限,跨团队协作可以很好的解决这个问题。跨团队协作可以视作多个团队内协作的组合,如上图所示,Team1 为主要开发团队,Team2 为协助开发团队,Team2 的管理员需要从 Team1 的远程仓库 Fork 到自己的远程仓库,通过 团队内协作 完成相关工作后 Pull requests 到 Team1 远程仓库管理员账户,Team1 管理员 审核 通过后,使用 merge 命令将两部分内容完成合并,从而实现团队间协助开发工作。

3.3 GitHub - SSH免密登录

本章的最后一部分内容介绍 SSH 免密登录,许多 Git 服务器都使用 SSH 公钥进行认证,架设 Git 服务器时常用 SSH 协议作为传输协议。 因为大多数环境下服务器已经支持通过 SSH 访问 —— 即使没有也很容易架设。 SSH 协议是一个验证授权的网络协议,因为其普遍性,架设和使用都很容易。

首先,你需要确认自己是否已经拥有密钥。 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥:

$ cd ~/.ssh
$ ls
id_rsa  id_rsa.pub

我们需要寻找一对以 id_dsa 或 id_rsa 命名的文件,其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是与之对应的私钥。 如果找不到这样的文件(或者根本没有 .ssh 目录),你可以通过运行 ssh-keygen 程序来创建它们:

$ ssh-keygen -t rsa -C WJBGITHUB132
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/86188/.ssh/id_rsa):
Created directory '/c/Users/86188/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/86188/.ssh/id_rsa
Your public key has been saved in /c/Users/86188/.ssh/id_rsa.pub
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 WJBGITHUB132
The key's randomart image is:
+---[xxxx123]----+
|          +*+.o+o|
|         ..B=o .=|
|          =o*o. o|
|         .BE*o.o.|
|        So=Bo+ +.|
|          o.. o .|
|           ...  +|
|             . o=|
|              .+=|
+----[xxxx456]-----+

首先 ssh-keygen 会确认密钥的存储位置(默认是 .ssh/id_rsa),-t 选项提供加密算法,rsa 为非对称加密协议,-C WJBGITHUB132 为描述的内容,输入之后按三次回车,生成SSH 密钥,然后要做的就是复制公钥 .pub 文件内容(如下所示)到 GitHub 账户 SSH and GPG keys,生成 SSH keys。在上述远程仓库操作中使用 SSH 链接地址替代 HTTP 链接地址即可,无需登录。

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local

关于在多种操作系统中生成 SSH 密钥的更深入教程,请参阅 GitHub 的 SSH 密钥指南 https://docs.github.com/cn/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不敲代码de小猿同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值