Linux下Git本地仓库与Github远程仓库关联(即将Git本地仓库添加到Github远程仓库)

续我的上篇博文:https://mp.csdn.net/postedit/89007750即Git本地仓库已经搭建好

 

在实验之前,先进行设置,使得虚拟机可以上网

 

##物理机

[root@foundation83 Desktop]# iptables -t nat -I POSTROUTING -s 172.25.83.0/24 -j MASQUERADE

 

##server1

[root@server1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.25.83.1
PREFIX=24
GATEWAY=172.25.83.83     #设置网关地址
DNS1=114.114.114.114     #设置DNS域名解析

 

[root@server1 ~]# ping www.baidu.com      #测试网络是否ok
PING www.a.shifen.com (220.181.112.244) 56(84) bytes of data.
64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=1 ttl=50 time=23.0 ms
64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=2 ttl=50 time=23.7 ms
64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=3 ttl=50 time=35.0 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 23.070/27.307/35.090/5.513 ms

 

 

Git本地仓库与Github远程仓库关联

 

现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。

 

1、首先,注册一个GitHub的帐号,登陆GitHub,然后,在右上角的“+“号下找到“New repository”按钮,创建一个新的仓库:

 

2、在Repository name填入demo(这里创建的仓库的名字为demo,该名字可以随意给),其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

 

点击右上角"+"下的"settings",进入“设置SSH Keys“的界面。

 

3、添加SSH keys:在Tiltle处填入server1(该名字随意给);在Key处填入生成的公钥id_rsa.pub的内容

[root@server1 ~]# ssh-keygen
[root@server1 ~]# cd .ssh/   
[root@server1 .ssh]# ls
id_rsa  id_rsa.pub
[root@server1 .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+5MWBGK2WOkU+hMLkSNWJOaCj1rFefr31PLWIgoZLIpbmGiUJW79TA0uEnKGWAxFNT2JDF+0Pb+6k+KsEf8esg9mV33vF4hzXycUvVcyMx8rDYLFvkqyWopqgkW+MM2YX0VGM0BWo/n2McVVZbahCXic8Id81N+pnOp8RSW1B2Un1k9NQLQOGz+tOQ5mdHgvxeO46z1l0vNdryfIXNQsQs5EJG4ux8KHTzEhwhs2k1JBZ4F8UZ161UFBAV2O/fM0YJGHdSy2G+iPy9/RP7ZX0WvZgqM8p8+Bj+4U7lk+eX+I4ILtWWNHjIHnDLm9d+P63dy1jNIrL5+ZqWiMpOh9z root@server1

 

 

 

4、目前,在GitHub上的这个demo仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

 

 

现在,我们根据GitHub的提示,在本地的demo仓库下运行命令:

[root@server1 demo]# pwd
/root/demo
[root@server1 demo]# ls
file1
[root@server1 demo]# git remote add origin git@github.com:Cinjosy/demo.git   #必须在demo目录(本地仓库目录)下执行命令

请千万注意,把上面的Cinjosy替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

[root@server1 demo]# git remote -v   #查看关联的所有的远程仓储名称及地址。必须在demo目录(本地仓库目录)下执行命令
origin	git@github.com:Cinjosy/demo.git (fetch)
origin	git@github.com:Cinjosy/demo.git (push)

[root@server1 demo]# git remote   #查看所有的远程仓储名称。#必须在demo目录(本地仓库目录)下执行命令
origin

 

 

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

[root@server1 demo]# git push -u origin master   #必须在demo目录(本地仓库目录)下执行命令
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes   #输入yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
Counting objects: 3, done.
Writing objects: 100% (3/3), 196 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:Cinjosy/demo.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

 

 

推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:

点击file1

 

 

从现在起,只要本地作了提交,就可以通过命令:

 git push -u origin master

把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!

[root@server1 demo]# pwd
/root/demo
[root@server1 demo]# ls
file1  git
[root@server1 demo]# echo redhat linux > file2   #必须在demo目录(本地仓库目录)下执行命令
[root@server1 demo]# cat file2 
redhat linux

[root@server1 demo]# git add file2   #必须在demo目录(本地仓库目录)下执行命令
[root@server1 demo]# git commit -m "add file2"   #必须在demo目录(本地仓库目录)下执行命令
[master 5a8a3d5] add file2
 1 file changed, 1 insertion(+)
 create mode 100644 file2

[root@server1 demo]# git push -u origin master   #必须在demo目录(本地仓库目录)下执行命令
Warning: Permanently added the RSA host key for IP address '13.250.177.223' to the list of known hosts.
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 264 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:Cinjosy/demo.git
   d81d6af..5a8a3d5  master -> master
Branch master set up to track remote branch master from origin.

点击file2

 

 

小结

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push -u origin master推送最新修改;

分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值