Git的详细使用(二)
来源:互联网 发布:ubuntu 升级软件包 编辑:程序博客网 时间:2024/06/06 15:41
上一次学习了git的基本操作以及进一步分支项目管理,现在补充一下Git远程仓库的使用。
简介:
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。
实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。
github网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
1.关于SSH及创建SSH Key
SSH全称(Secure SHell)是一种网络协议,顾名思义就是非常安全的shell,主要用于计算机间加密传输。
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。没有的话进入.shh/目录,执行如下命令:
$ ssh-keygen -t rsa -C "youremail@example.com"第一次提示输入保存文件名可以不输入,它会默认保存为id_rsa.pub。第二次提示输入的密码就是你以后提交时候输入的密码,这里我设为950520
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,最后点击add ssh key
2.添加远程仓库
(1)创建远程仓库
现在我的本地上已经有一个git仓库,又想在github创建一个git仓库,实现两个仓库的远程同步。
首先登陆github,在主界面点击New Repository。
接着填写相关信息即可创建仓库。
成功创建后如图所示:
(2)与本地仓库关联
目前,在GitHub上的这个新建仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的git仓库下运行命令:
$ git remote add origin git@github.com:a710564672/first_project.git添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
下一步,就可以把本地库的所有内容推送到远程库上:
$ git push -u origin master把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:
小结
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;关联后,使用命令git push -u origin master第一次推送master分支的所有内容;此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!
3.从远程仓库克隆
现在远程库已经有了项目,通过git clone 远程仓库地址 就可以把它下载本地仓库了。
如图,我们成功的在一个新的目录下把远程仓库的项目克隆到本地仓库了。
SSH 原理和基本使用:点击打开链接
- Git的详细使用(二)
- Git的详细使用
- Git的详细使用
- Git的本地使用(Git二)
- Git的使用(二)
- git 使用总结之详细步骤二
- Git的详细使用教程
- Git使用的详细教程
- Git使用详细教程(超详细)
- git使用(二)
- git 使用(二)
- Git使用(二)
- git 命令的使用(二)
- Git入门教程(二):分支的使用
- 基本的Git使用总结(二)
- git的使用知识点总结(二)
- Git的使用教程(二)初识Git
- [git]Git的使用流程(二)
- 奇奇怪怪的东西们
- CSS学习之清除浮动
- 3-day(JavaScript)
- hdu1247
- Keepalived+lvs
- Git的详细使用(二)
- go by example之channel-synchronization.go
- bootstrap实现垂直导航框架
- 设计模式基础
- 如何在Linux上安装Mysql的二进制包(mysql-xxx-linux-xxx-x86_64.tar)
- 个人读书笔记---“深入理解java虚拟机”---垃圾回收
- Codeforces Round #428 (Div. 2) A B C
- 51nod 1435 位数阶乘 (思维水题)
- Java接口中的成员变量为什么必须是public static final?