分布式版本控制工具git

1 安装Git

在linux上我们建议你用二进制的方式来安装git,可以使用发行版包含的基础软件包管理工具来安装,如果你是

是CentOS或者Fedora的操作系统,可以使用yum命令来安装git:

复制代码
$ sudo yum install git

如果你是ubuntu或者是Debian可以使用apt-get的命令来安装git:

复制代码
$ sudo apt-get install git

Windows上安装

在 Windows 上安装 Git 也有几种安装方法。 官方版本可以在 Git 官方网站下载。 打开
http://git-scm.com/download/win,会检查你的操作系统是32位的还是64位的,并自动开始下载对应的安装包。

另一个简单的方法是安装 GitHub for Windows。 该安装程序包含图形化和命令行版本的 Git。 它也能支持Powershell,提供了稳定的凭证缓存和健全的换行设置。 你可以在 GitHub for Windows 网站下载,网址为http://windows.github.com

2 为什么用Git

1.版本管理有一个中央服务器,可以保存所有代码、文档

2.每一次的修改都可以提交到版本库,修改有记录,可追踪

3.不害怕某个同事离职了,代码没有入库

4.本地的代码流失后,可以从版本库检出

5.多人协作,每个同事完成的工作提交到版本库,方便进行集成

6.当我们要开发需求或修复PR时,可以从版本库上拉出分支管理

7.在大的企业,每次提交都可能触发一次构建,实时检查代码的质量

8.如果构建失败了,可以自动revert掉某次提交

分布式与集中式的对比

3. 远程仓库

我们现在远端服务器中初始化一个空的裸的仓库。

复制代码
mkdir mathlib
cd mathlib
git init --bare

然后我们让本地仓库和远端仓库进行交互。然后我们再Windows创建一个本地仓库。

我们远端的地址就是该服务器的ip地址。这里我的是10.150.132.253

本地仓库和远端仓库进行交互需要一个协议。我们通常用的是ssh协议。

SSH协议是一个验证授权的网络协议;

我们将公钥放在服务器,然后每次发送内容的时候以私钥去验证他。

3.1 使用ssh公钥登录git服务器

  1. 生成公钥和私钥(ssh-keygen -t rsa)

    回车

    输入y,回车,然后还有一个回车

    然后我们再Windows中C盘的用户文件夹中的.ssh文件夹中,就生成了公钥和私钥。

    然后进入linux中,同样运行

    cd ~
    cd .ssh
    ssh-keygen -t rsa

复制公钥内容到远端服务器.ssh/authorized_keys

然后touch authorized_keys然后vi authorized_keys,然后将windows中的id_rsa.pub复制到linux中。

然后本地仓库就可以免密登录那个远程服务器仓库了。

复制代码
git clone ssh://用户名@ip地址:仓库的地址

如果不知道用户名的话,用命令whoami

ip地址可以用ifconfig

目录的话可以用pwd

复制代码
git clone ssh://root@10.150.132.253:/usr/src/mathlab


注意第一次免密登录的话,需要输入yes。如果不行的话,可以尝试将windows中的.ssh删掉,重新生成。

我们可以将这个文件改个名字

然后我们给这个文件夹设置名字和邮箱。

复制代码
 git config user.name lipu123
 git config user.email lipu123@qq.com
相关推荐
一氧化二氢.h2 小时前
通俗解释redis高级:redis持久化(RDB持久化、AOF持久化)、redis主从、redis哨兵、redis分片集群
redis·分布式·缓存
自动驾驶小卡4 小时前
boost::circular_buffer的使用方法简介
c++·boost·circular_buffer
爱睡觉的圈圈5 小时前
分布式IP代理集群架构与智能调度系统
分布式·tcp/ip·架构
睡不醒的kun6 小时前
leetcode算法刷题的第三十二天
数据结构·c++·算法·leetcode·职场和发展·贪心算法·动态规划
乔宕一8 小时前
stm32 链接脚本没有 .gcc_except_table 段也能支持 C++ 异常
c++·stm32·嵌入式硬件
APItesterCris8 小时前
构建分布式京东商品数据采集系统:基于 API 的微服务实现方案
分布式·微服务·架构
SuperCandyXu8 小时前
P3205 [HNOI2010] 合唱队-普及+/提高
c++·算法·洛谷
_君落羽_8 小时前
ARM寄存器以及异常处理
c++
free9 小时前
基于librdkafa C++客户端生产者发送数据失败问题处理#2
c++·kafka
不吃饭的猪9 小时前
kafka启动小脚本
分布式·kafka