博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
本地git关联远程github
阅读量:5994 次
发布时间:2019-06-20

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

0. 前言

我们开发的项目,均在本地开发;为了保证项目进度的一致性和公开性等,我们通常将开发过程代码或成品放置到github中,本文就讲述如何使得本地git与远程github同步!

PS:以下两个名称解释:

远程端:指github端

本地端:指本地git

1.操作步骤

本文以Linux为主线进行讲解,windows端基本相同

1). 本地端:

①. 下载git 并导入值你的 VM-Linux中

下载地址:https://git-scm.com/download

mark

②. 也可直接在vm-linux下yum安装

命令:yum install git -y

mark

③. 在某目录下初始化本地git仓库

命令: git init

当目录下出现.git的子目录后,表示init成功

mark

④. 配置git

执行完上述步骤,一定要对git进行配置,主要是配置用户名和邮箱地址

git config --global user.name "your-name

git config --global user.email your-name@example.com

配置完成后,可使用git config --global --list 查看是否配置成功

mark

⑤. 至此,本地端配置基本完成

2). github 配置

①. 登录到github

github地址:https://github.com/

②. 创建github仓库

mark

③. 添加SSH-key到github

本地git与github的通信采用加密机制,因此远程端需要获取本地端的公钥

小知识

  • 公钥与私钥:私钥加密的文件必须公钥来解密,反之亦然;
  • 发信人用自己的私钥加密后,发送给接收方,接收方采用发送方实现给定的公钥进行数据解密;
  • 接收方通过发送方的公钥对数据进行加密后返回给发送端,发送端只能用自己的私钥解密;
  • 任何需要获取发送方数据的机构,均必须取得发送方的公钥

1. 本地端创建SSH-key

  • 首先查看本地端有没有SSH-key
ll -a ~/.ssh/
  • 如果没有文件,则执行如下命令:
ssh-keygen -t rsa -C "your-email"

mark

  • 此时再去查看,发现多了两个文件,其中rsa.pub就是我们需要的公钥文件。

mark

  • 复制该文件的所有内容

2. 将key加到githb

mark
mark

  • 添加完成后,可以查看到

mark

3. 测试key是否添加成功

ssh -T git@github.com
  • 出现:You've successfully authenticated, but GitHub does not provide shell access.,表示添加成功

mark

3). 本地端与远程端的操作

①. 从远程端拷贝文件/源码

git支持http和ssh两种拷贝类型,但是ssh速度更快,因此建议使用ssh。

git clone git@github.com:your-name/xx.git

mark

mark

②. 将本地端与github关联

命令:git remote add 主机名 远端仓库名(ssh的形式)

如下代码:

# git remote add alg git@github.com:Jimmy-Nie/Algorithm.git
  • 主机名:给远程主机命名,名字可任意,但是一般采用origin,若已经被本机其它仓库使用,则会报错
  • 仓库地址:如上图标注

④. 将本地内容推送到远程端

git push -u alg master
  • -u: 推送内容并关联分支(第一次推送时用,其后为可选)
  • al: 刚才创建的远程主机名
  • master: 本地的master分支(如推送其它分支,可直接替换为分支名)

推送完成后,可看到远程端与本地端内容一模一样了!

mark
mark
mark

下次再推送时候,可只用用:

git push alg master

将内容推送到远程端

⑤. 取回远程端某个分支的更新

git pull alg master

转载于:https://www.cnblogs.com/Jimmy1988/p/8183774.html

你可能感兴趣的文章
蓝桥杯练习系统——基础练习 十六进制转十进制
查看>>
Mac: Android studio+VirtualBox+Genymotion
查看>>
The way to Go(4): Go runtime及解释器
查看>>
简易RPC框架-上下文
查看>>
26.使用IntelliJ IDEA开发Java Web项目时,修改了JSP后刷新浏览器无法及时显示修改后的页面...
查看>>
自定义ViewGroup
查看>>
25.管道流
查看>>
2017-2018:时间戳
查看>>
php实现 明明的随机数
查看>>
Guava中针对集合的 filter和过滤功能
查看>>
小程序顶部导航栏的自定义
查看>>
ZooKeeper系列(3):znode说明和znode状态
查看>>
Java Arrays.sort源代码解析
查看>>
使用buildroot创建自己的交叉编译工具链【转】
查看>>
使用superlance插件增强supervisor的监控能力
查看>>
Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个...
查看>>
移动Web前端,游客点击商品的收藏按钮,登录完成,回来之后,如何自动收藏...
查看>>
css自适应浏览器大小
查看>>
C#与C++的发展历程第二 - C#4.0再接再厉
查看>>
VS Code使用 Vue工程配置 eslint
查看>>