2

我们接着学习git,到目前为止,我们学习了
git init
git status
git add <file>
git commit (-m <describtion>)
git diff
git log
git rm <file>
git checkout -- <file>
git reset HEAD <file>
具体可以到GIt本地相关操作(一)git本地相关操作(二)查看
接下来我们继续学习git基于本地仓库与远程仓库交互的,相关操作



一.关联远程仓库
  1. 生成密钥
    为了保证远程仓库能够唯一识别一电脑主机的操作,同时保证我们与远程仓库通信的安全,我们需要创建一个SSH key并且在git远程仓库中配置,我们进入linux当前登录的用户目录中,打开.ssh目录查看是否有"id_rsa"和"id_rsa.pub",若没有就执行以下的命令:

       ssh-keygen -t rsa -C "example@mail.com"

    这里的邮箱也是随意定义的,但是还是建议有实际意义的,执行完成以后到“~/.ssh/”目录下,能看到上述两个文件,如图:图片描述如果没有看到说明执行上述命令不是以当前登录的用户权限执行的,在明确执行命令的权限后,到对应的用户目录下,就能看到,例如我虽然登录了guest用户,但是我执行的“sudo ssh-keygen”那么就是root权限,因此文件就生成在root用户目录下的.ssh木有生成了密钥文件
    但是我们希望执行sudo命令的时候,要在当前用户的路径下生成文件而不是在root用户目录下呢,我们可以执行以下命令来实现:
    sudo ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key


  2. 在远程仓库进行注册
    笔者使用的是开源中国提供的git服务,大家也可以选择其他的,其操作大同小异。将“id_rsa.pub”公钥中的内容复制 出来添加到远程的git服务中去,具体操作如下图所示:图片描述图片描述


  3. 创建远程仓库
    图片描述


  4. 关联远程仓库
    在远程仓库获取http协议的连接或是ssh协议的连接地址,如图:图片描述

    然后在本地仓库进行关联,使用“git remote add origin <远程仓库地址>”,如图的具体操作:图片描述git remote -vv”用来查看本地仓库关联远程仓库地址


  5. 推送文件到远程仓库
    目前本地仓库是有文件的,但是远程仓库是空的,我们需要将本地仓库的文件推送到远程仓库上,这样其他人才能从远程仓库获取到文件进行编辑和修改,实现协同工作的目的。
    执行"git push -u origin master"命令,如图:图片描述这张图内容比较多,我们一个一个来说:
    首先,git push是将本地仓库的数据push到远程仓库,-u的作用是本地仓库第一次向远程仓库推送数据时简历关联,origin是指我们在执行“git remote add origin <远程仓库地址>"以后orgin就代表了远程仓库,而master则是值远程仓库的分支名称,目前远程仓库的分支只有一个默认分支master
    然后,我们执行"git push -u origin master"会有一些朋友出现上图上半部分展示的错误信息,我查了相关资料,意思就是说我们在新建远程仓库以后,远程仓库会默认创建一些文件,而这些文件本地仓库没有的,这就藏成了。本地仓库和远程仓库都有彼此没有的文件,解决这种状况有两种方案:
    强推覆盖远程仓库已有的文件
    本地仓库拉取远程仓库的文件,本地实现合并然后再push
    本文为了省事使用了第一种方案,实际开发过程中推荐第二种方案,相关文章链接:https://my.oschina.net/unique...


  6. 提交编辑到远程仓库
    在第5小节的时候,我们已经将本地仓库与远程仓库的数据实现同步,下面我们在本地修改一下文件然后再把修改的内容提交到远程仓库。图片描述图片描述图片描述基于之前已经与远程仓库建立了关联,所以这次同步只需要执行"git push"命令即可



    7.从远程仓库复制
    通过“git clone <ssh地址或htttps地址或http地址>”来下载远程仓库中的文件到本地,我们继续使用之前的远程仓库,在本地换个目录就可以创建一个新的本地仓库,且两个仓库之间互不影响。如图,我们到远程git获取远程仓库的地址:
    图片描述
    到本地执行"git clone"命令下载代码:图片描述
    如图代码已经下载到本地,我们可以通过之前学到命令来看下一下相关的信息,如图:
    图片描述

二.总结

  1. ssh key是git远程仓库唯一区分本地仓库主机的标识也是安全通信的保证

  2. git remote add origin <远程仓库地址>本地仓库管理远程仓库,并且在本地可以通过orgin来标识, <远程仓库地址>可以是ssh协议地址或是http协议地址

  3. git remote -vv查看本地仓库关联的远程仓库地址信息

  4. git push origin 分支名称将本地仓库的文件推送到远程仓库,-u表示将本地仓库与远程仓库进行管理,仅在第一push时使用,-f表示强推,orgin在这里的代表的含义要明确,分支名称,就是我们提交的数据是推送到远程仓库的具体分支上

  5. 当本地git文件信息与远程仓库文件冲突时的两种解决方案:
    强推
    本地同步远程仓库数据,本地解决再push
    实际中推荐第二种

  6. git clone复制远程仓库的文件到本地目录中



    上一节:Git本地相关操作(二)

浪一把
112 声望5 粉丝