windows下git的安装、配置与操作(六)——远程仓库(建立与github的联系)

一、注册github的账号并且创建一个工程。github

二、创建秘钥:

由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的所以他们之间的联系需要密钥即口令。

首先我们检查本机有没有秘钥:

$ cd ~/. ssh 检查本机的ssh密钥

如果不是第一次使用,请执行下面的操作,清理原有ssh密钥

 $ mkdir key_backup
 $ cp id_rsa* key_backup
 $ rm id_rsa*
如果没有:
$ ssh-keygen -t rsa -C "youremail@example.com"
一直回车直至生成完成。我们的秘钥就生成好了。

三、设置github SSH key

登录github在用户设置里边找到SSH keys设置。

title填写 key是在~/用户/.ssh/id_rsa.pub文件中的内容

$ ssh -T git@github.com
Hi ZhangLeiStar! You've successfully authenticated, but GitHub does not provide
shell access.
这样表示我们连接成功了。
然后我们本地版本库与github版本库进行连接:
$ git remote add origin git@github.com:ZhangLeiStar/MyTestApp1.git
接下来就可以将本地库push到服务器上。这里需要注意一个问题。如果github上的repository不是空的话。使用push命令会报错:

$ git push -u origin master
To git@github.com:ZhangLeiStar/MyTestApp1.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:ZhangLeiStar/MyTestApp1.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

意思是远程服务器上有我们的工作。不能被覆盖。这时候我们需要先pull一下,将服务器上的工作拉下来:

$ git pull origin master              
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From github.com:ZhangLeiStar/MyTestApp1
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
Merge made by the 'recursive' strategy.
 README.md | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 README.md

然后在push:

$ git push -u origin master            
Counting objects: 24, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (23/23), 2.11 KiB | 0 bytes/s, done.
Total 23 (delta 3), reused 0 (delta 0)
To git@github.com:ZhangLeiStar/MyTestApp1.git
   76ce8c8..e5ff9c1  master -> master
Branch master set up to track remote branch master from origin.

第一次使用加参数-u以后可以不加。这样我们的服务器目录如下图:


这样我们就完成了版本库与服务器的联系。

如果我们是现在服务器上建立了一个repository:那我们就要用clone指令来克隆下来:

$ git clone git@github.com:ZhangLeiStar/MyTestApp2.git
Cloning into 'MyTestApp2'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
Checking connectivity... done.

$ cd MyTestApp2

$ ls
README.md
如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。 如果需要clone开源的工程。先在github中fork到自己的repository中。然后用上面的指令clone下来。

GitHub给出的地址不止一个,还可以用https://github.com/ZhangLeiStar/MyTestApp2.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值