Git&&GitHub的使用(第三节)
GitHub
这是Git的远程仓库。
创建github账号
一来就可以看到一个注册页面,然后注册,注册完会出现以下界面。
然后验证邮箱。
创建远程库
我这就把它的名字与我本地库的名字起成一样的GitRepository
下图是创建好的样子,只不过目前我的远程库是空的。
修改一下头像
创建远程库地址别名
找到下图的远程仓库地址,并且复制。
然后将远程库地址起个别名叫original,加入到本地关联,然后查看与本地相关联的远程库。
推送
git push [别名] [分支名]
上图是将本地库推送到远程库的步骤和结果。
下图是远程库的结果。
克隆
为了说明克隆,我们在本地再创建一个工作区和一个名为令狐冲的用户,同时也在github上创建一个新用户,这时令狐冲的远程账号和他的本地库跟我之前创建的没有半毛钱关系。这时,令狐冲想要我的远程库应该怎么办呢?
用克隆!!
git clone [远程地址]
然后令狐冲给远程库起个别名方便他自己操作。
这时令狐冲就有我的项目了。
团队成员邀请
如果令狐冲想要参与写操作,则必须要经过我同意。
然后复制好邀请链接后,发给令狐冲,令狐冲通过邀请链接接受邀请。
我给令狐冲发一个协作开发的邀请,并给他一个链接,他点进去确认一下就行了。
如下图,令狐冲修改了test.txt,然后提交到本地库,然后push到远程库。
拉取
这时我的本地库与远程库就不一致了,于是我要用拉取命令。
pull的作用等价于fetch加上merge。
我们先看看fetch,我先切换到我的目录下,然后看我的test.txt文件内容。
这时我要通过fetch命令去抓取令狐冲刚刚提交到远程库的文件。
如下图,我们发现fetch下来的东西和原来一样,这是因为fetch仅仅是取,并没有合并。
但是,我们可以切换到一个特殊的分支查看取下来的文件,这时我们发现该文件与远程库的一致。
然后如下图,我先回到自己的master,然后合并original/master,然后查看文件,这时就一样了。
解决冲突
如果不是基于 GitHub 远程库的最新版所做的修改,不能推送,必须先拉取。拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可。如下图,我在我的工作区里编辑改文件,增加了红框部分。
然后看下图,我将编辑好的文件push到远程库。
这时,远程库里的文件就比令狐冲的文件高一个版本了,此时令狐冲在我改动的位置进行改动,如下图:
然后如下图进行push,我们会发现产生了冲突!!
这时,需要我们先从远程库拉取,如下图,我们可以看到一个很熟悉的特殊分支,前面讲git的时候说过。
这时,我编辑冲突文件。
然后提交。
然后推送到远程。
跨团队协作
如果一个叫东方不败的人建立了github账号,他想直接得到我的库该怎么做呢?用fork,如下图:
然后在东方不败的号上就有一个我的仓库,所有者是东方不败,然后东方不败进入自己本地的工作区,讲github上的库克隆下来,然后修改test.txt,然后推送到自己的github上,这时东方不败想让自己远程库修改的东西搞到我的远程库上应该怎么做?
依次执行以下步骤:
上面两张图是东方不败的申请。下面这张图是在我的github账号里查收东方不败的申请。然后双方可以互相对话!!
然后我进行代码审核。
然后合并代码
SSH免密登录
进入当前用户的家目录 $ cd ~
删除.ssh 目录 $ rm -rvf .ssh
运行命令生成.ssh **目录 $ ssh-****** -t rsa -C [email protected] [注意:这里-C 这个参数是大写的 C]
进入.ssh 目录查看文件列表
$ cd .ssh
$ ls -lF
查看 id_rsa.pub 文件内容
$ cat id_rsa.pub
复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG keys
New SSH Key 输入复制的**信息
回到 Git bash 创建远程地址别名 git remote add origin_ssh [email protected]:atguigu2018ybuq/huashan.git (这里用SSH的地址)
推送文件进行测试