zoukankan      html  css  js  c++  java
  • 本地git关联远程github

    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
    
  • 相关阅读:
    手把手教你用动软.net生成器
    三层架构的优缺点
    BLL.DAL.表现层作用
    session的属性/方法/事件
    string.IsNullOrEmpty的用法
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="Keywords" content="" />
    var ev = document.all ? window.event : e;
    《C++ Primer 4th》读书笔记 第3章-标准库类型
    《Unix环境高级编程》读书笔记 第7章-进程环境
  • 原文地址:https://www.cnblogs.com/Jimmy1988/p/8183774.html
Copyright © 2011-2022 走看看