第四章 远程仓库

1. 远程仓库原理

①.如何分布?

只有一台主机有一个原始版本库,此后,别的机器可以“克隆”这个原始库,而且每台机器的版本库其实都是一样的,并没有主次之分。在这里,原始版本库可以放在GitHub上托管,作为主库。

②.由于本地Git仓库和GitHub'仓库之间的传输是通过SSH加密的,所以,需要一点设置:

1)创建SSH Key:打开git bash

$ ssh-keygen -t rsa -C "youremail@example.com"

接着一路回车。

2)[endif]正常的话用户主目录会出现.ssh文件夹,里面有id_rsa和id_rsa.pub,前者是私钥不可泄漏,后者是公钥,可以给别人。

]3)[endif]登陆GitHub,打开”ACCount settings”, ”SSH Keys”.添加ssh,然后把id_rsa.pub里的内容复制在框格里(.pub用notepad++打开)。点击添加,如果给你发邮件,表示添加成功。

③.为什么GitHub需要SSH Keys呢?这位HUB需要识别出你推送的提交确实是你推送的,而不是别人冒充的。而GitHub支持SSH协议,所以,只要他知道了你的公钥,就可以确认只有你自己才可以推送。当然,GitHub允许有多个Key,只要把每台电脑的ssh key都添加在GitHub上,就可以多台主机向代码库中提交了。

④.友情提示:

GitHub上托管的Git仓库,任何人都可以看到,但只有你自己可以修改。所以,不要把敏感内容放进去。

⑤.如果不想被他人看见怎么办?

交钱,GitHub把公开仓库变成私有的。另外,就是自己动手,搭建一个Git服务器,只有公司内部可以看见。



2. 添加远程库

①.如何在GitHub上创建公用Git仓库,并实现多个仓库进行远程同步?

(好处:Hub上的仓库可以作为备份,又可以让其他人通过该仓库来协作开发)

登陆GitHub,右上角找到+ -> new repository,创建一个新的仓库

在GitHub上创建仓库


创建成功

这时,就创建了一个空的仓库。这时,在本地的learngit仓库下运行命令

$ git remote add origin git@github.com:michaelliao/learngit.git

下一步,就可以把本地库的所有内容推送到远程库中了

$ git push -u origin master

Counting objects: 20, done.

Delta compression using up to 4 threads.

Compressing objects: 100% (15/15), done.

Writing objects: 100% (20/20), 1.64 KiB | 560.00 KiB/s, done.

Total 20 (delta 5), reused 0 (delta 0)

remote: Resolving deltas: 100% (5/5), done.

To github.com:michaelliao/learngit.git

 * [new branch]      master -> master

Branch 'master' set up to track remote branch 'master' from 'origin'.

1)[endif]把本地内容推送至远程仓库,用git push命令。实际是把当前分支master推送到远程。

2)[endif]因为远程库为空,所以第一次推送master分支时,加上了-u参数。Git会把本地的master分支内容推送给新的master分支,还会将本地master和远程master分支关联起来,以后推送或拉取时就可以简化命令了。

]3)[endif]现在,本地仓库和远程仓库就分布式连接起来了。只要本地有了新数据,就可以通过命令更新GitHub上的数据了。

$ git push origin master

4)[endif]我本人在操作时,有两个问题:

11. 当时我的本地版本库由于数据未删除完全,主要是后面的commit没有提交成功,所以我的status一直是动态的,导致无法推送数据。

22. 在GitHub上创建版本库时,手贱点了创建ReadMe文件,然而本地并没有这个文件,所以一直无法提交。

解决方案:

将远程仓库和本地仓库内容合并(pull=fetch+merge)

git pull --rebase origin master

执行上面代码,就发现本地仓库多一个readme.md文件,这时就可以正常推送了。 

git push -u origin master即可完成代码上传到github

5)总结:

关联远程库,使用命令git remote add origingit@server-name:path/repo-name.git

推送本地master内容,使用命令 git push -u origin master

以后提交修改信息,git push origin master

1. 从远程库克隆

重新创建一个版本库,然后克隆在本地仓库

$ git clone git@github.com:KisonGump/gitskills.git

Cloning into 'gitskills'...

remote: Counting objects: 3, done

.remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3

Receiving objects: 100% (3/3), done.

克隆的新仓库会出现在本地仓库的一个新的文件夹中。

如果多个人协作开发,那么每个人各自远程克隆一份即可。

总结:

想要克隆一个仓库,首先必须知道仓库的地址,然后用git clone命令克隆

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,898评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,401评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,058评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,539评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,382评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,319评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,706评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,370评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,664评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,715评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,476评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,326评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,730评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,003评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,275评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,683评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,877评论 2 335

推荐阅读更多精彩内容

  • 远程仓库 到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题...
    归云丶阅读 1,949评论 0 5
  • 本系列教程来自廖雪峰的官方网站,现在搬运过来,目的帮助自己和小白学习收藏!附赠:常用git命令清单 到目前为止,我...
    Blizzard_liu阅读 404评论 0 3
  • 如何生成SSH key SSH key提供了一种与GitHub通信的方式,通过这种方式,能够在不输入密码的情况下,...
    dunlunjinfen阅读 369评论 0 1
  • 远程仓库。 在了解之前,先注册github账号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密...
    在你左右2018阅读 336评论 0 0
  • 在了解之前,先注册github账号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要...
    八宝君阅读 318评论 0 0