博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
史上最浅显易懂的Git教程2 github
阅读量:5166 次
发布时间:2019-06-13

本文共 3267 字,大约阅读时间需要 10 分钟。

Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。
实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交
推送
到服务器仓库里,也从服务器仓库中
拉取
别人的提交。
可以自己建一个git服务器,也可以先直接使用GitHub。
由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:
第1步
:创建SSH Key。
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有
id_rsa
id_rsa.pub
这两个文件,如果已经有了,
个人建议删除掉
$
ssh-keygen -t rsa -
C
"youremail@elesos.com"
一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到
.ssh
目录,里面有
id_rsa
id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,
id_rsa
是私钥
,不能泄露出去,
id_rsa.pub
是公钥,可以放心地告诉任何人。
第2步
:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上
任意Title
,在Key文本框里粘贴
id_rsa.pub
文件的内容:
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,
不要把敏感信息放进去
如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,
搭一个Git服务器
,因为是你自己的Git服务器,所以别人也是看不见的。这个方法我们后面会讲到的,相当简单,公司内部开发必备。
添加完成之后是这样的
 
然后回到终端输入指令:ssh -T 
 执行完这条指令之后会输出 Are you sure you want to continue connecting (yes/no)? 输入 yes 回车
回到github,刷新网页就可以看到钥匙旁的灰色小圆点变绿,就表明已经添加成功了。
-T      Disable pseudo-tty allocation.
禁止分配伪终端,当用ssh或telnet等登录系统时,系统分配给我们的终端就是伪终端。
添加文件后,先commit,然后push

现在的情景是,
你已经在
本地创建了
一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步
,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。
首先,登陆GitHub
,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库test:
其他
保持默认设置
不要选GPL协议,不然不是空库了。
可以选择gitignore,最好是默认!!!
目前,在GitHub上的这个仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个
已有的本地仓库与之关联
,然后,把本地仓库的内容推送到GitHub仓库。
在本地的仓库test下运行命令:
$
git remote add origin
git
@github
.
com:
michaelliao/learngit.git
注意,把上面的
michaelliao
替换成你自己的GitHub账户名,如
否则,你在本地关联的就是我的远程库,
关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。
添加后,
远程库的名字就是
origin
,这是Git默认的叫法
下一步,就可以把本地库的所有内容
推送到远程库上
git push -u origin master
实际上是把当前分支
master
推送到远程。
由于远程库是空的,我们
第一次
推送
master
分支时,加上了
-u
参数,Git不但会把本地的
master
分支内容推送的远程
新的
master
分支,还会把本地的
master
分支和远程的
master
分支
关联起来
,在以后的推送或者拉取时就可以
简化命令
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:
从现在起,只要本地作了提交add和commit之后,就可以通过命令:
3.$ git push origin master
把本地
master
分支的最新修改推送至GitHub
分布式版本系统的最大好处之一是在本地工作完全
不需要考虑远程库的存在
,也就是有没有联网都可以正常工作,
而SVN在没有联网的时候是拒绝干活的!
当有网络的时候,再把本地提交推送一下就完成了同步
2,从远程库克隆
上面
我们讲了先有本地库,后有远程库的时候,如何关联远程库。
现在,
假设我们从零开发,那么
最好的方式
是先创建远程库,然后,从远程库克隆。
1,登陆GitHub,创建一个新的仓库,名字叫
gitskills
我们勾选
Initialize this repository with a README
,这样GitHub会自动为我们创建一个
README.md
文件。
也可以选择。创建完毕后,可以看到
README.md
文件:
现在,远程库已经准备好了,
下一步是用命令
git clone
克隆一个本地库:
git clone git
@github
.
com:
michaelliao/gitskills.git
 git clone 
:elesos/FFmpeg_Demos
还可以用
https://github.com/michaelliao/gitskills.git
这样的地址。实际上,Git支持多种协议,默认的
git://
使用ssh,但也可以使用
https
等其他协议。
使用
https
除了
速度慢以外,还有个最大的麻烦是每次推送都必须输入口令
,但是在某些只开放http端口的公司内部就无法使用
ssh
协议而只能用
https
使用GitHub
如何参与一个开源项目呢?
点“Fork”就在自己的账号下克隆了一个bootstrap仓库,然后,
从自己的账号下
clone:
git clone git
@github
.
com:
michaelliao/bootstrap.git
一定要从自己的账号下clone仓库
,这样你才能推送修改。如果从bootstrap的作者的仓库地址
git@github.com:twbs/bootstrap.git
克隆,因
为没有权限,你将不能推送修改
如果你想修复bootstrap的一个bug,或者新增一个功能,立刻就可以开始干活,干完后,
往自己的仓库推送
如果你希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个
pull request
。当然,对方是否接受你的pull request就不一定了。
git push origin master后,可以在github网上自己的fork库处
pull request

转载于:https://www.cnblogs.com/elesos/p/7151459.html

你可能感兴趣的文章
Eureka常见问题
查看>>
自反acl
查看>>
从前端优化反观浏览器渲染原理
查看>>
基于Asterisk的VoIP开发指南——(2)Asterisk AGI程序编写指南
查看>>
ASP.NET MVC HtmlHelper用法大全
查看>>
在IIS中部署Asp.Net网站
查看>>
UITabBarController使用详解
查看>>
LeetCode - ZigZag Conversion
查看>>
windows服务安装卸载
查看>>
C# Dictionary<TKey,TValue>如何添加键重复的内容
查看>>
第五篇:web之前端之float的几种清除浮动方式
查看>>
三剑客之grep
查看>>
Workerman-文件监控-牛刀小试
查看>>
Shiro 自定义登陆、授权、拦截器
查看>>
在centos5开启telnet服务并验证
查看>>
docker容器操作
查看>>
HTML学习---基础知识学习
查看>>
ng跳转映射,被阿里云的云盾拦截,提示备案问题分析
查看>>
python 深入理解yield
查看>>
javaweb的负载均衡,tomcat集群和session共享
查看>>