`

Git学习系列(四)远程仓库及其与本地仓库交互

 
阅读更多

创建GitHub账号及获取SSH秘钥对

创建远程仓库通常有两种方式:

1、把一台电脑充当服务器,让它每天开机,其他人都从这台“服务器”仓库clone一份到自己的电脑上,并把各自的修改(包括添加了新的feature、解决了新的bug等)提交到“服务器”仓库中,当然你也可以从“服务器”仓库中拉取别人的提交。实际开发中一般就是这么做的。

2、因为咱毕竟还是处于学习当中,为了学Git去整个"服务器"未免有点“杀鸡焉用牛刀”的感觉。好在有个为Git仓库提供托管服务网站的名为GitHub的网站,可以由它来创建并管理远程仓库。

因此,咱选择第二种方式来创建远程仓库,先进官网去瞧瞧,GitHub官网

账号请大家自行注册。由于你的本地Git仓库和远程GitHub仓库之间的传输是通过SSH协议加密的,因此需要进行一些设置。

步骤如下:

1)、创建SSH Key。在创建SHH Key之前看看在用户主目录有没有.ssh文件夹,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可以直接跳过这一步。如果没有,打开咱第一章叫大家安装的Git Bash,创建的命令如下:

注意:把email地址换成你自己的,然后一直按回车键即可(只为学习,也无需设密码)。

然后,你将看到主目录里面多了一个.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥。

2)、用你刚创建的GitHub账号登录GitHub网站,打开“Account settings”(你可能看到上面有个感叹号,那是因为像我们平常注册账号一样,需要激活,我们可以点进去填入Name,Email (will be public)然后进入邮箱确认激活即可),然后点击左侧的“SSH Keys”页面,

然后,点“Add SSH Key”,输入Title,在Key文本框里粘贴id_rsa.pub文件的内容:

点击Add key:

为什么GitHub需要SSH Key呢?因为GitHub需要确认推送的提交是你做的,而不是别人冒充的,而Git支持SSH协议,所以GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。然后你也可以添加多个SSH key,只需把别的电脑上的Key添加即可,这里不再赘述。注意:在GitHub上免费托管的Git仓库(既然是免费,那然后大家都可以看到),只有自己才能修改,所以建议大家不要把重要的资料托管上去。如果你不想让别人看到你的Git仓库,有两种办法,一是交点钱给GitHub,让它把你管理(其他人是看不到的,也就是说你的Git仓库变为了私有);还有一种方法,那就自己搭个Git服务器吧,通常公司做开发也就是这么干的。

 

创建并添加远程仓库

有了GitBub账号,登录后找到右上角的“Create new...”:

点击New repository(即创建一个新的仓库):

 

然后在Repository name中输入mygit,点击Create repository即可:

好了,这样就创建了一个仓库。现在这个远程的mygit仓库还是空的,下面我们把上面章节中创建的本地mygit仓库推送到这个远程仓库中。咱们的思路是把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

 

将本地仓库推送至远程仓库

 

其实GitHub已经帮我们写好要在Git Bash中输入的命令了,我们只需按它写的来执行即可:

这里添加名为origin1的远程库,当然你也可以把名字换成别的。注意:这里的xiaokefeixia换成你的GitHub账户名。

下面就可以把本地库的所有内容推送到远程库上:

用git push命令把本地库的内容推送到远程,实际上是把当前分支(关于分支,后面会讲到)master推送到远程。

以后只要本地做了提交。就可以使用git push origin1 master #把本地master分支的最新修改推送至GitHub。

 

从远程仓库clone至本地

和之前一样,先登录GitHub创建一个新的远程库,叫做clonegit,记得勾选一下:


这样就可以帮我们创建一个README.md文件,如图:


好了,远程库准备好了,下面咱再用git clone 命令来clone一个到本地:


然后把们将看到,用户主目录下多了一个clonegit目录,而且里面还有README.md和.git:


这样我们就成功的从远程仓库clone了一个到本地了。是不是so easy呢~得意

 

小结

将本地仓库推送至远程仓库(以下的用户名及仓库名要换成自己的哦):

1、关联一个远程仓库,使用git remote add origin git@github.com:xiaokefeixia/mygit.git ;
2、关联之后,可使用git push -u origin master第一次推送master分支的所有内容;
3、以后每次本地提交后,就只需敲入命令git push origin master推送最新修改到远程即可。

从远程仓库clone(要克隆得知道远程仓库的地址)至本地:

1、创建一个远程库clonegit;
2、然后使用命令:git clone git@github.com:xiaokefeixia/clonegit.git即可。

 

 

分享到:
评论

相关推荐

    git学习笔记,入门指南以及常用git指令

    git学习笔记常用git指令 一.创建或clone版本库 1.在本地创建一个新的版本库 $git init(cd至需要用到的地址,文件夹,用git init初始化版本库) 2.克隆一个已经存在的版本库 $git clone git@github....

    git-cleanup-branch:[不建议使用] Cleanup Git在本地和远程以交互方式合并分支

    git-cleanup-branch 清理Git的小实用程序,可以在本地和远程交互地合并合并的分支。安装支持平台: MacOS X Linux x86_64 从下载二进制文件。 或自行构建。 需要最新的 。 git clone --depth=1 ...

    git for windows==Git-2.14.0-64-bit

    git版本管理工具windows客户端,用于与github远程仓库交互,或者用作windows本地的git版本管理

    git-bc:Git插件以交互方式列出分支和签出

    安装使用安装它: npm install -g git-bc用法运行命令: git bc 这将在交互式列表中列出您的仓库的所有可用分支,只需按ENTER键以签出您选择的任何分支。选件git bc -a列出所有可用的分支git bc -r仅列出远程分支git...

    GIT中文资源

    2.5.6 远程仓库的删除和重命名 . . . . . . . . . . . . . . . . . . . 35 2.6 打标签 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.6.1 列显已有的标签 . . . . . . . . . . . . . . . . ....

    sourcetree最新版本

    支持mac系统合Windows系统,今天小编带来的是Windows版的,SourceTree中文版的美观界面更是其他类型的软件所无法媲美的,软件简化了用户与与Git和Hg库的交互方式,使得用户通过客户端即可管理本地和远程的代码仓库,...

    【最新版】Fork-1.0.92.dmg【亲测可用】最好的快速友好的git客户端

    创建和删除远程仓库 结帐分支或修订 摘樱桃,还原 合并 变基 污渍 子模块 使用存储库 创建,克隆或添加现有存储库 快速打开最近的存储库 提交视图 逐行进行阶段/非阶段更改 访问最近的提交消息 更多...

    180228_gzhipin-client:react项目-硅谷直聘

    day011. 项目开发准备1). 项目描述: 整体业务功能/功能模块/主体的技术/开发模式2).... 将本地仓库推送到远程仓库 git remote add origin https://github.com/zxfjd3g/170612_JSAdvance.git 关联远程仓库 git push

    SourceTreeSetup-3.0.15(201901官方最新版)

    SourceTree中文版简化了用户与Git和Hg库的交互方式,通过客户端即可管理本地和远程代码仓库。SourceTree Windows版对于那些不熟悉Git命令的开发者来说非常实用,适用于git项目管理,上手操作非常简单。

    autocomplete:vanilla javacript 的简单可访问自动完成,支持远程和本地数据,~3KB gzip

    可访问,完全支持 ARIA 属性和键盘交互。 自定义您自己的 CSS。 支持异步数据获取。 使用箭头↓ ↑在记录之间移动,并通过Enter或鼠标确认 记录结果分组 显示“无结果” 无依赖 非常轻量级的库,仅打包 gzip ~3...

    90s:前端路上

    前端路上本仓库是集合前端一些主流技术的项目,用于练习或者当作学习笔记。该项目部署GitPages上,可通过访问。git commit配置辅助提交流程规范git commit 配置自定义交互提示来验证提交是否符合规则"config": { ...

    matlab源代码文件重名替换了-sync-deploy:Shell工具包,用于在远程主机上部署脚本/命令任务,包括向上/下载文件,在远程主机

    交互式地输入ssh、scp命令进行远端主机命令/脚本的执行、文件的上传与下载并不是很方便,有时候频繁地键入hostname@ip也是一件非常痛苦的事情。另外一方面,如果是向计算平台提交任务脚本,在远端文本命令窗口内修改...

    SDK

    与Ghost的API进行交互的工具的集合。 开发 这是一个单库,由管理。 git clone像往常一样git clone此存储库和cd yarn setup映射到lerna bootstrap 安装所有外部依赖项 链接所有内部依赖项 要将新软件包添加到仓库中...

    ispconfig-cli:ISPconfig3 CLI 界面

    ISPconfig3-cli 是一个旨在与交互的库。 它旨在提供一个简单的命令行界面来执行提供的所有操作。 安装 git clone这个仓库。 下载作曲家: curl -s https://getcomposer.org/installer | ...

    my-cli:my-cli是用于从给定模板启动新项目的支架

    介绍在vue-cli , create-react-app , angular-cli提供了相当丰富的选项和设置功能,但是其本质也是从远程仓库把不同的模版拉取到本地。脚手架思路首先建立不同的模板项目,然后脚手架根据用户的指令引用模板项目...

Global site tag (gtag.js) - Google Analytics