分布式版本控制工具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://[email protected]:/usr/src/mathlab


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

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

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

复制代码
 git config user.name lipu123
 git config user.email [email protected]
相关推荐
bubiyoushang8882 小时前
解决 Git 访问 GitHub 时的 SSL 错误
git·github·ssl
派阿喵搞电子3 小时前
在UI界面内修改了对象名,在#include “ui_mainwindow.h“没更新
c++·qt·ubuntu·ui
C++ 老炮儿的技术栈4 小时前
UDP 与 TCP 的区别是什么?
开发语言·c++·windows·算法·visual studio
mochensage6 小时前
CSP信奥赛C++常用系统函数汇总
c++·信奥
mochensage6 小时前
C++信息学竞赛中常用函数的一般用法
java·c++·算法
海码0076 小时前
【版本控制】Git 和 GitHub 入门教程
git·github
fpcc6 小时前
跟我学c++中级篇——多线程中的文件处理
c++
5:007 小时前
云备份项目
linux·开发语言·c++
乄夜7 小时前
嵌入式面试高频(5)!!!C++语言(嵌入式八股文,嵌入式面经)
c语言·c++·单片机·嵌入式硬件·物联网·面试·职场和发展
YYDS3148 小时前
C++动态规划-01背包
开发语言·c++·动态规划