关闭

Git关联远程仓库

标签: git
1263人阅读 评论(1) 收藏 举报
分类:

前面我们介绍的所有操作都是在本地仓库完成的,本文我们主要来看看如何和远程仓库进行交互,为了方便起见,这里远程仓库我们选择GitHub。

本文是Git系列的第五篇,了解前面的文章有助于更好的理解本文:


1.Git概述
2.Git基本操作
3.Git中的各种后悔药
4.Git分支管理


配置SSH KEY

SSH KEY的配置不是必须的,不配置的话我们就只能使用HTTPS协议,这样每次提交时要输入用户名密码,略麻烦,所以还是配置一下。配置SSH KEY的原理很简单,采用非对称加密方式生成公钥和私钥,公钥告诉GitHub,私钥留在自己电脑上(私钥不可泄露),当我们向GitHub上提交数据时,GitHub会用我们留给它的公钥加密一段消息返回给我们的电脑,如果我们能够用私钥解密成功,说明是合法的用户,这样就避免我们输入用户名密码了。大致的原理就是这样,现在很多免登录的系统都采用了这种方式,比如Hadoop免登录配置也是这样。那我们就来看看这个SSH KEY要怎么生成。  

1.查看本地是否已有SSHKEY

查看当前用户目录下是否有.ssh文件,如下:

这里写图片描述

如果查看之后有结果,则直接跳转到第四步,什么都没有就继续生成。

2.生成SSH指纹

生成SSH指纹的命令很简单,如下:

ssh-keygen -t rsa -b 4096 -C "你的邮箱地址"

注意邮箱地址要替换。

3.添加ssh到ssh-agent中

执行如下命令即可:

eval "$(ssh-agent -s)"

OK,做好这一切之后,我们当前用户目录下已经有了一个名为.ssh的隐藏文件夹了,打开这个目录,会发现有一个名为id_rsa.pub的文件,这就是我们一会要使用的公钥文件。

4.将公钥告诉GitHub

登录GitHub,点击右上角的向下的箭头,选择Settings,在新打开的页面中左边侧栏选择SSH and GPG keys,如下:

这里写图片描述

完了之后点击最下面的Add SSH key按钮即可,如此之后,我们的SSH KEY就配置成功了。

创建远程仓库

接下来我们在GitHub上创建一个仓库,登录成功之后,直接点击右上角绿色的New repository按钮,如下:

这里写图片描述

其实这里我们只需要填一个版本仓库的名字,我填了test,填好之后,点击Create repository就OK了。

关联远程仓库

创建成功之后,我们会看到仓库的地址,如下:git@github.com:lenve/test.git,然后我需要将我们之前的本地仓库和这个远程仓库进行关联,使用git remote add命令,如下:

$ git remote add origin git@github.com:lenve/test.git

在这条命令中,git会自动将远程仓库的名字设置为origin,方便我们的后续操作。

推送到远程仓库

推送到master分支

假设我想将本地master分支上的内容推送到远程master分支上,方式如下:

$ git push -u origin master

-u参数可以在推送的同时,将origin 仓库的master 分支设置为本地仓库当前分支的upstream(上游)。添加了这个参数,将来运行git pull命令从远程仓库获取内容时,本地仓库的这个分支就可以直接从origin 的master 分支获取内容,省去了另外添加参数的麻烦。这个参数也只用在第一次push时加上,以后直接运行git push命令即可。

推送到其他分支

如果想推送到其他分支,还是这条命令,修改一下分支的名字即可,比如我也想把我的fa分支推送到远程仓库中,执行如下命令:

$ git checkout fa
$ git push -u origin fa

先切换到fa分支,然后执行git push命令,参数含义和之前的一样,这里我们创建的远程仓库的分支名也为fa(当然我们可以取任何名字,但是为了不混淆,最好取一致的名字)。这两条命令执行成功之后,此时在网页中我们就可以看到已经有多个分支了,如下:

这里写图片描述

从远程仓库获取

首次获取

刚刚是我们向远程仓库提交数据,有提交当然就有获取,我们可以通过git clone命令克隆一个远程仓库到本地,方式也简单,在本地创建一个空文件夹,执行如下命令:

$ git clone git@github.com:lenve/test.git

表示克隆文件到本地仓库。此时克隆的远程仓库的master分支到本地仓库,我们可以通过git branch -a来查看本地仓库和远程仓库的信息,-a参数可以同时显示本地仓库和远程仓库的信息,如下:

这里写图片描述

我们看到远程仓库中已经有了fa分支了,如果我们想把fa分支也克隆下来,执行如下命令:

$ git checkout -b fa origin/fa

表示根据远程仓库的fa分支创建一个本地仓库的fa分支,创建完成之后进行切换,也可以通过如下命令只创建不切换:

$ git branch fa origin/fa

此时我在fa分支下修改git01.txt文件并提交,如下:

这里写图片描述

注意由于fa分支就是从远程仓库克隆下来的,所以这里可以不添加-u参数。

从远程仓库更新

此时我们回到第一次最早的那个test本地仓库中,那个test仓库的fa分支现在和远程仓库不一致了,我们可以通过git pull命令来更新,如下:

这里写图片描述

Ok,关联远程仓库我们先说这么多。有问题欢迎留言讨论。

参考资料:

1.《GitHub入门与实践》
2.《Pro Git》

更多JavaEE和Git资料请关注公众号:

这里写图片描述

2
0
查看评论

git本地仓库关联远程仓库的两种方式

git本地仓库关联远程仓库的两种方式: 1.将远程的代码clone到本地仓库 2.将本地的代码关联到远程仓库 1.git clone现有的项目(https | SSH) SSH: 检查你的电脑中是否有密匙对id_rsa id_rsa.pub 没有的话,创建密匙对  ss...
  • Debug_zhang
  • Debug_zhang
  • 2016-08-15 22:38
  • 11860

git之本地仓库关联远程仓库

首先新建一个github respository 然后在自己本地新建一个maven项目,里面写点东西 如下图,将自己的项目所在地设置为本地git仓库 将本地仓库与远程关联,首先获取远程仓库的地址,点击刚刚创建的github仓库,如下图 打开相应项目,在idea的命令行中,输入如下命令, 此...
  • azengqiang
  • azengqiang
  • 2016-12-22 15:51
  • 697

Git 关联新的远程仓库

git 项目同步到多个仓库背景:最近在开发hiveUDF,使用gitlag来管理,最开始是在自己的账户下面创建的hiveUDF项目,项目成型后决定逐步迁移到新的公用仓库,管理员在用户组bi-source下创建。办法很简单,如下命令就可以做到。## 关联新的远程仓库 git remote set-ur...
  • mulangren1988
  • mulangren1988
  • 2017-03-04 12:35
  • 2540

git无法关联远程仓库解决方法

问题:git无法关联到远程仓库,push失败 错误提示如下:$ git push -u origin master The authenticity of host 'github.com (192.30.253.113)' can't be established. RS...
  • github_33261002
  • github_33261002
  • 2017-03-02 17:46
  • 1392

本地Git仓库和远程仓库的创建及关联 Coding.net

简单地介绍一下git使用方法,适合初学者
  • MinJing_Lin
  • MinJing_Lin
  • 2016-02-17 11:45
  • 7399

git修改远程仓库地址,以及项目关联git

修改git远程仓库的地址,可以用一下方式: git remote rm github(例子) git remote add origin [url]
  • smile_raccoon
  • smile_raccoon
  • 2016-09-19 22:42
  • 1894

(转)git 在android studio中重新关联远程仓库地址的方法

原地址:http://blog.csdn.net/sunsteam/article/details/73478045 今天用错了个命令,被小坑了一把,满满都是泪啊 方法有三种: 1.修改命令  git remote set-url origin [url]&...
  • duyiqun
  • duyiqun
  • 2017-10-08 17:19
  • 403

Androidstudio配置git及连接远程库全过程

一.Git 与GitHub 这里首先介绍下Git与GitHub是什么东西,他们之间有何区别呢? Git :分布式版本控制系统,最初用在Linux上,可以和SVN、CVS等作为同一个概念理解,目前世界上最先进的分布式版本控制系统(没有之一)。 Git的分支和合并:分支模型是Git最显著的特点,因...
  • q741350191
  • q741350191
  • 2017-03-30 10:23
  • 4317

Git的使用教程(七)远程仓库

之前的操作我们只是把Git当做了一个仓库,做本地的一个版本管理,这对Git来说简直大材小用。Git作为分布式版本控制系统,分布才是其特色,如何分布呢?肯定要有一台机器充当原始的版本库,其他的机器“克隆”这个原始版本库,其实每台机器上的版本都一样,没有主次之分,之所以有原始版本库,是为了方便多人协作时...
  • a7442358
  • a7442358
  • 2016-03-02 09:57
  • 4357

git同一项目使用多个远程仓库

git同一项目使用多个远程仓库某些场合,一个git项目需要能同时使用两个甚至多个远程仓库,比如国内+国外、测试环境+生产环境,等等。在项目的根目录查看git配置文件,一般来说是这样的:$ cat .git/config [core] repositoryformatversion =...
  • mvpboss1004
  • mvpboss1004
  • 2017-01-23 14:13
  • 3435
    更多JavaEE资料请关注公众号
    个人资料
    • 访问:1931547次
    • 积分:18948
    • 等级:
    • 排名:第566名
    • 原创:326篇
    • 转载:1篇
    • 译文:2篇
    • 评论:1010条
    博客专栏
    最新评论