Git 关联远程仓库GitHub

配置 SSH KEY

SSH KEY 的配置不是必须的,不配置的话我们就只能使用 HTTPS 协议,这样每次提交时要输入用户名密码,所以还是配置一下。配置 SSH KEY 的原理很简单,采用非对称加密方式生成公钥和私钥,公钥告诉 GitHub ,私钥留在自己电脑上(私钥不可泄露),当我们向 GitHub 上提交数据时,GitHub 会用我们留给它的公钥加密一段消息返回给我们的电脑,如果我们能够用私钥解密成功,说明是合法的用户,这样就避免我们输入用户名密码了。大致的原理就是这样,现在很多免登录的系统都采用了这种方式,比如 Hadoop 免登录配置也是这样。那我们就来看看这个 SSH KEY 要怎么生成。  

1.查看本地是否已有 SSHKEY

查看当前用户目录下是否有 .ssh 文件,如下:

如果查看之后有结果,则直接跳转到第四步,什么都没有就继续生成。

2.生成 SSH  

命令很简单,如下:

ssh-keygen -t rsa -b 4096 -C "你的邮箱地址"

3.添加 ssh 到 ssh-agent 中

执行如下命令即可:

eval "$(ssh-agent -s)"

做好这一切之后,我们当前用户目录(C:\Users\Administrator\.ssh)下已经有了一个名为 .ssh 的隐藏文件夹了,打开这个目录,会发现有一个名为 id_rsa.pub 的文件,这就是我们一会要使用的公钥文件。

4.将公钥保存在 GitHub 

登录 GitHub ,点击右上角头像,选择 Settings ,在新打开的页面中左边侧栏选择 SSH and GPG keys ,如下: 

完了之后点击最下面的 Add SSH key 按钮即可,如此之后,我们的 SSH KEY 就配置成功了。 

创建远程仓库 

 接下来我们在 GitHub 上创建一个仓库,登录成功之后,直接点击右上角绿色的 New repository 按钮,如下: 

这里创建了远程 test仓库。 

关联远程仓库 

 创建成功之后,我们会看到仓库的地址,如下: 

 然后我需要将我们之前的本地仓库 【(1)test】 和这个远程仓库【(github)test】进行关联,首先进入你本地的原始仓库【(1)test】,然后配置如下命令:

$ git remote add origin https://github.com/astronger/test.git

 git 会自动将远程仓库的名字设置为 origin ,方便我们的后续操作。  

穿插一句:如果是本地的文件直接上传到远程仓库,直接下面一套走完即可: 

$ git init     #初始化仓库
$ git add .    #添加到暂存区
$ git commit -m "first commit"   #将当前暂存区的文件提交到本地仓库
$ git remote add origin https://github.com/astronger/test.git  #将我们之前的本地仓库和这个远程仓库进行关联
$ git push -u origin master   #将内容推送到远程 master 分支上

以上是2020年10月1日之前的方法,受美国黑人事件影响。GitHub 是最早表示支持此类变革的公司之一。10月1日之后,master 将替换为 main ,如下:

-M 参数是用来分支改名的。

可查看这篇文章:https://www.sunzhongwei.com/master-ending-of-era-of-git-branch-m-main

推送到远程仓库 

推送到master分支 

假设我想将本地 master 分支上的内容推送到远程 master 分支上,方式如下: 

$ git push -u origin master

-u 参数可以在推送的同时,将 origin 仓库的 master 分支设置为本地仓库当前分支的 upstream(上游)。添加了这个参数,将来运行 git pull 命令从远程仓库获取内容时,本地仓库的这个分支就可以直接从 origin 的 master 分支获取内容,省去了另外添加参数的麻烦。这个参数也只用在第一次 push 时加上,以后直接运行 git push 命令即可。  

推送到其他分支 

如果想推送到其他分支,还是这条命令,修改一下分支的名字即可,比如我也想把我的 two 分支推送到远程仓库中,执行如下命令: 

 先切换到 two 分支,然后执行 git push 命令,参数含义和之前的一样,这里我们创建的远程仓库的分支名也为 two(当然我们可以取任何名字,但是为了不混淆,最好取一致的名字)。这两条命令执行成功之后,此时在网页中我们就可以看到已经有多个分支了,如下:

  从远程仓库获取

首次获取

刚刚是我们向远程仓库提交数据,有提交当然就有获取,我们可以通过 git clone 命令克隆一个远程仓库到本地,方式也简单,在本地创建一个空文件夹【(2)test】,执行如下命令:

$ git clone https://github.com/astronger/test.git

此时克隆的远程仓库的 master 分支到本地仓库【(2)test】,我们可以通过 git branch -a 来查看本地仓库和远程仓库的信息,-a 参数可以同时显示本地仓库和远程仓库的信息,如下: 

我们看到远程仓库中已经有了 two 分支了,如果我们想把 two 分支也克隆下来,执行如下命令:

$ git checkout -b two origin/two

表示根据远程仓库的 two 分支创建一个本地仓库的 two 分支,创建完成之后进行切换,也可以通过如下命令只创建不切换:

$ git branch two origin/two

此时我在 two 分支下修改 test.txt 文件并提交,如下:

注意由于 two 分支就是从远程仓库克隆下来的,所以这里可以不添加 -u 参数。 

从远程仓库更新

此时我们回到第一次最早的那个 【(1)test】本地仓库中,那个 test 仓库的 two 分支现在和远程仓库不一致了,我们可以通过 git pull 命令来更新,如下: 

其它文章:

Git 基本操作

Git 分支管理

git stash工作区储藏

 

 参考:https://www.javaboy.org/2019/0612/git-remote.html

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李多肉同学

长得好看的人一般都喜欢发红包

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

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

打赏作者

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

抵扣说明:

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

余额充值