Git学习之远程库操作
之前文章中小白讲了本地仓库和工作区之间的基本操作,这篇博客小白整了了一下远程库的一些操作。
首先,确认自己已经申请了GitHub且有了.ssh文件,由于小白之前已经都操作完了,这里就不再重新来一遍,过程很简单,可以任意百度,轻松找到方法。
下面是小白电脑中已经存在的内容,其中id_rsa是私钥,id_rsa.pub是公钥,私钥不可外传,公钥可以。其中公钥的内容我们下一步要用到。
有了这个基础后,就可以在自己的GitHub中,创建SSH Key
按照下图打开工具中的settings
进入到下面页面:
点击add ssh key就可以创建一个名字,下面是小白之前创建的title为gongyao,key文本框中粘贴id_rsa.pub文件的内容即可。
创建好后就如上图了。
创建好后,就可以添加远程库了。我们本地已经创建了Git仓库,现在在GitHub创建一个Git仓库,让这两个仓库远程同步。
1.创建一个新的仓库
点击+号图标,选中蓝色标识,然后在新的页面中填入要创建的名称,这里小白填入和本地一样的仓库名称,其他无需修改,直接点击create repository按钮即可
下面就是新建好的初始页面:
上图提示告诉我们,可以从这个仓库克隆出新的仓库。
2.把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。
根据提示,在本地的mygittest仓库运行命令:
由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。推送成功后,可以立刻在github页面中看到远程库的内容已经和本地一模一样了,上面的要输入github的用户名和密码如下所示:
上面操作都完成后,之后如果本地做了提交,就可以通过命令:
把本地master分支的最新修改推送到github上了,真正的分布式版本库行程了。
git push origin master
比如下面的一个更新,更新到远程库,可以看下小case:
此时页面刷新就更新了:
3.从远程库克隆
上面我们了解了先有本地库,后有远程库时候,如何关联远程库。如果远程库有新的内容了,我想克隆到本地来 如何克隆呢?
如果我们在myfirstgit.txt再增加一行,保存。
更新后页面如下:
克隆这个文档:
4.创建和合并分支
从上篇博文中,我们可以知道,每次提交,Git都把每次记录串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
首先,我们来创建br1分支,然后切换到br1分支上。如下操作:
git branch查看分支,会列出所有的分支,当前分支前面会添加一个星号。
可以看到有两个分支,一个master,一个br1,当前在br1分支。
上面的创建并切换分支,也可以用下面命令完成:
首先,查看下现在myfirstgit.txt内容,接着添加一条数据:
在br2上增加:
上述添加br2分支工作就当完成了,现在切换到主分支master上,继续查看文件内容:
可以看到主分支的内容并没有更改
现在把分支上的内容合并到主分支master上:
可以看到增加了一条记录到文档在中
git merge命令用于合并指定分支到当前分支上
注意下Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向br2的当前提交,所以合并速度非常快。
合并完成后,我们可以接着删除br1、br2分支了,操作如下:
当前就只有一个master分支了
5.如何处理分支修改冲突?
1.首先创建并切换br1分支
2.查看修改前后的文件
3.提交
4.切换到master分支
5.查看修改前后的文件
6.提交
7.在master上合并br1,如下:
在合并是产生了冲突报警,查看状态如下:
8.查看文件内容
冲入内容如下图
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<<HEAD是指主分支修改的内容,>>>>>br1是指br1上修改的内容,此时我们可以修改分支上的内容和主干一致(在文件夹中修改成和主干一样的内容):
查看修改的内容:
然后将该文档上传
合并分支,查看状态,发现已经完成合并啦~
上一篇: phpStorm是什么
下一篇: ps纹理在哪