0. 前言
我们开发的项目,均在本地开发;为了保证项目进度的一致性和公开性等,我们通常将开发过程代码或成品放置到github中,本文就讲述如何使得本地git与远程github同步!
PS:以下两个名称解释:
远程端:指github端
本地端:指本地git
1.操作步骤
本文以Linux为主线进行讲解,windows端基本相同
1). 本地端:
①. 下载git 并导入值你的 VM-Linux中
②. 也可直接在vm-linux下yum安装
命令:
yum install git -y
③. 在某目录下初始化本地git仓库
命令:
git init
当目录下出现.git
的子目录后,表示init成功
④. 配置git
执行完上述步骤,一定要对git进行配置,主要是配置用户名和邮箱地址
git config --global user.name "your-name
git config --global user.email your-name@example.com
配置完成后,可使用
git config --global --list
查看是否配置成功
⑤. 至此,本地端配置基本完成
2). github 配置
①. 登录到github
github地址:https://github.com/
②. 创建github仓库
③. 添加SSH-key到github
本地git与github的通信采用加密机制,因此远程端需要获取本地端的公钥
。
小知识:
- 公钥与私钥:私钥加密的文件必须公钥来解密,反之亦然;
- 发信人用自己的私钥加密后,发送给接收方,接收方采用发送方实现给定的公钥进行数据解密;
- 接收方通过发送方的公钥对数据进行加密后返回给发送端,发送端只能用自己的私钥解密;
- 任何需要获取发送方数据的机构,均必须取得发送方的公钥
1. 本地端创建SSH-key
- 首先查看本地端有没有SSH-key
ll -a ~/.ssh/
- 如果没有文件,则执行如下命令:
ssh-keygen -t rsa -C "your-email"
- 此时再去查看,发现多了两个文件,其中
rsa.pub
就是我们需要的公钥文件。
- 复制该文件的所有内容
2. 将key加到githb
- 添加完成后,可以查看到
3. 测试key是否添加成功
ssh -T git@github.com
- 出现:
You've successfully authenticated, but GitHub does not provide shell access.
,表示添加成功
3). 本地端与远程端的操作
①. 从远程端拷贝文件/源码
git支持http和ssh两种拷贝类型,但是ssh速度更快,因此建议使用ssh。
git clone git@github.com:your-name/xx.git
②. 将本地端与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分支(如推送其它分支,可直接替换为分支名)
推送完成后,可看到远程端与本地端内容一模一样了!
下次再推送时候,可只用用:
git push alg master
将内容推送到远程端
⑤. 取回远程端某个分支的更新
git pull alg master