版本控制之远端仓库

一、协议

git可以使用四种不同的协议传输资料:本地协议(Local)、HTTP协议、SSH协议、以及Git协议。

(1)本地协议

本地协议的远程版本库就是同一主机的另一个目录。

(2)HTTP协议

HTTP协议有两种,智能HTTP协议和哑HTTP协议。

智能HTTP协议:即支持像 git:// 协议一样服务, 也可以像 SSH 协议一样提供传输时的授权

哑HTTP协议:哑 HTTP 协议里 web 服务器仅把版本当作普通文件来对提供文件服务。

(3)SSH协议

架设Git服务器时常用SSH协议作为传输协议。

(4)git协议

git协议监听一份特定的端口(9418),访问无需任何授权。Git协议时Git使用的网络传输协议里最快的。

二、搭建远程仓库(github、gitee)

以连接到gitee为例

(1)新注册创建gitee账号(gitee官网地址:Gitee官网地址

(2)新建仓库

(3)仓库添加成功

 (4)克隆成功! (5)远端推送

(6)推送成功 

 (7)问题解决

问题:在远端推送过程中,会出现需要手动输入用户名和密码的情况。

解决:设置ssh

①、进入主页,选择SSH公钥

②、在自己的主机上生成密钥

③、将*.pub的内容粘贴到gitee上。 

 ④、配置免密成功

三、搭建远程仓库(服务器上)

(1)服务器端(即远程仓库)

       ①、安装git

           参考git安装与版本升级 注:尽量升级到较高版本,因为会在后续的过程中出现不可以连接海龟(TortoiseGit)等情况。

       ②、创建用户及用户组

           

       注:新建一个用户要用passwd设置他的密码。默认没有密码。

       ③、初始化一个仓库

       ④、 配置免密登录

注:这里配置的免密是在git用户下,所以如果想要全局免密。在~/.ssh/authorized_keys中粘贴密钥就可以啦。 

(2)客户端(即存放代码的机器)

  可以是windows也可以是Linux。本例使用windows

   git安装包下载地址:Git官方下载

   打开安装包直接next就可。

  具体选项详解参考:Git客户端安装过程中选项详解

生成密钥:

 密钥位置存在:

 将公钥复制到服务器端

初始化一个仓库 

 从远端克隆一个仓库,出现错误,解决方案见(4)

再次克隆

结果: 

 此时就可以推向远程仓库啦!

(3)利用图形化界面海龟(TortoiseGit只支持windows系统)

下载地址:海龟安装包的下载地址

 ①、安装海龟以及其语言包

 ②、新建库或者在原库中设置

     一般来说在安装初期海龟就会是中文,但这其中也可以设置。

    右键选择海龟--》设置

    1、设置海龟的语言

 2、设置记住密码

在打开的文件中 设置

 3、密钥转换

 

 

 

 

 4、搭建远程连接

 

实验:

 

 推送成功! 

(4)搭建过程中遇到的问题

  ①、创建新用户时

       错误提示: Creating mailbox file: File exists

       解决:删除/var/spool/mail/和 /home下的已存在的用户名的文件和文件夹

  ②、删除用户组时

        错误提示:groupdel: cannot remove the primary group of user 'lxh1'

        解决:该用户组还有其他用户。1、删除该用户组中的用户

                                                           2、将该用户剔除该用户组

  ③、克隆仓库时

      错误提示:

bash: git-upload-pack: command not found
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

解决:

代码服务器git安装路径是/usr/local/git,不是默认路径,根据提示,在git服务器上, 建立链接文件:

   ⑤、将本地内容推向远程仓库时

错误提示:

bash: git-receive-pack: command not found
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

解决: 

   ⑥、将本地内容推向远程仓库时

错误提示:

解决:

这是由于git默认拒绝了push操作。

在远程服务器主机执行如下命令:

git config receive.denyCurrentBranch ignore 

或者在.git/config中添加如下代码:

[receive]
    denyCurrentBranch = ignore

  ⑦、利用海龟将本地内容推向远程仓库时

错误提示:

error: failed to push some refs to '47.103.24.126:/home/gitrepo' 
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. 

解决:

git pull root@IP:/home/gitrepo master --allow-unrelated-histories //把远程仓库和本地同步,消除差异
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值