分布式版本控制工具——Git

文章目录

    • 1.Git概述
      • 1.1 Git历史
      • 1.2 Git 与 SVN 对比
      • 1.3 Git工作流程
      • 1.4 Git下载安装
    • 2.Git代码托管服务
    • 3.Git常用命令
      • 3.1 环境配置
      • 3.2 获取Git仓库
      • 3.3 工作目录、暂存区以及版本库概念
      • 3.4 Git 工作目录下文件的两种状态
      • 3.5 本地仓库操作
      • 3.6 远程仓库操作
      • 3.7 Git分支
      • 3.8 Git标签
    • 4.使用TortoiseGit管理文件版本
      • 4.1 TortoiseGit安装
      • 4.2 TortoiseGit使用
    • 5.在IDEA中使用Git
      • 5.1 在 IDEA 中配置 Git
      • 5.2 在 IDEA 中使用 Git
    • 6.使用SSH协议传输数据
      • 6.1 Git支持的传输协议
      • 6.2 什么是 SSH 协议
      • 6.3 配置 SSH 协议

1.Git概述

1.1 Git历史

最初Linux内核项目没有版本控制系统管理和维护代码,导致维护工作都花在了提交补丁和保存归档的繁琐事务上( 1991 2002 年间)。到2002年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了Linux 内核社区免费使用 BitKeeper的权利,于是Linux 开源社区决定开发出自己的版本系统。这就是Git的由来

1.2 Git 与 SVN 对比

SVN是集中式版本控制系统,版本库放在中央服务器。
分布式版本控制工具——Git_第1张图片
缺点:

  • 服务器单点故障
  • 容错性差

Git是分布式版本控制系统,分为两类仓库:本地仓库远程仓库

  • 本地仓库:是在开发人员自己电脑上的Git仓库
  • 远程仓库:是 在远程服务器上的 Git 仓库
    分布式版本控制工具——Git_第2张图片
  • Clone :克隆,就是将远程仓库复制到本地
  • Push:推送,就是将本地仓库代码上传到远程仓库
  • Pull:拉取,就是将远程仓库代码下载到本地仓库
  • Commit:提交,就是将代码上传到本地仓库

1.3 Git工作流程

  1. 从远程仓库中克隆代码到本地仓库
  2. 从本地仓库中 checkout 代码然后进行代码修改
  3. 在提交前先将代码提交到暂存区
  4. 提交到本地仓库。本地仓库中保存修改的各个历史版本
  5. 修改完成后,需要和团队成员共享代码时,将代码 push 到远程仓库
    分布式版本控制工具——Git_第3张图片

1.4 Git下载安装

下载地址:https://www.git-scm.com/download/

安装成功后,在桌面右键会看到如下菜单
分布式版本控制工具——Git_第4张图片
Git GUI: Git 提供的图形界面工具
Git Bash: Git 提供的命令行工具

2.Git代码托管服务

  • gitHub 地址: https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 gitHub
  • 码云(地址: https://gitee.com/ )是国内的一个代码托管平台,由于服务器在国内,所以相比于 GitHub ,码云速度会更快
  • GitLab (地址 https://about.gitlab.com/ )是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务

3.Git常用命令

3.1 环境配置

设置用户信息
git config --global user.name “zhangsan”
git config --global user.email “[email protected]
查看配置信息
git config --list
git config user.name

3.2 获取Git仓库

  • 在本地初始化一个Git仓库:在任意空文件夹下点击右键打开 Git bash 窗口,执行命令git init
  • 从远程仓库克隆:执行命令 :git clone 远程仓库地址 ,例如:
    git clone https://github.com/XXXX/ABC.git

3.3 工作目录、暂存区以及版本库概念

版本库:.git隐藏文件夹就是版本库,隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
工作目录(工作区):包含 .git 文件夹的目录就是工作目录,主要用于存放开发的代码
暂存区:git 文件夹中有很多文件,其中有一个 index 文件就是暂存区,也可以叫做 stage 。暂存区是一个临时保存修改文件的地方
分布式版本控制工具——Git_第5张图片

3.4 Git 工作目录下文件的两种状态

  • untracked 未跟踪(未被纳入版本控制)
  • tracked 已跟踪(被纳入版本控制)
    Unmodified 未修改状态
    Modified 已修改状态
    Staged 已暂存状态

3.5 本地仓库操作

git status 查看文件状态
分布式版本控制工具——Git_第6张图片
git status -s 简洁输出文件状态
在这里插入图片描述
git add 将未跟踪的文件加入暂存区
git add hello.txt
加入后状态:
分布式版本控制工具——Git_第7张图片
从暂存区撤回
git reset head hello.txt
分布式版本控制工具——Git_第8张图片
git commit 将暂存区的文件修改提交到本地仓库
在这里插入图片描述
git rm 删除文件
git rm
删除后查看文件状态
分布式版本控制工具——Git_第9张图片
将工作区删除的文件提交到本地仓库
在这里插入图片描述
将文件添加至忽略列表:
可以在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:
分布式版本控制工具——Git_第10张图片
git log 查看日志记录

3.6 远程仓库操作

git remote 查看远程仓库
分布式版本控制工具——Git_第11张图片
分布式版本控制工具——Git_第12张图片
git remote add < shortname > < url > 添加远程仓库
分布式版本控制工具——Git_第13张图片
git clone [url] 从远程仓库克隆
git remote rm < shortname > 移除无效远程仓库
注意:此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库
从远程仓库中抓取与拉取
git fetch [remote-name] [branch-name] 是从远程仓库获取最新版本到本地仓库,不会自动 merge
分布式版本控制工具——Git_第14张图片
git pull [remote-name] [branch-name] 是从远程仓库获取最新版本并 merge 到本地仓库
分布式版本控制工具——Git_第15张图片
注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报
错( fatal: refusing to merge unrelated histories ),解决此问题可以在 git pull 命令后加入参数 allow unrelated histories

git push [remote name] [branch name] 推送到远程仓库
需要输入仓库用户名和密码
分布式版本控制工具——Git_第16张图片

3.7 Git分支

查看分支
# 列出所有本地分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 列出所有本地分支和远程分支
$ git branch -a
分布式版本控制工具——Git_第17张图片
git branch b1 创建分支
分布式版本控制工具——Git_第18张图片
git checkout b1 切换分支
分布式版本控制工具——Git_第19张图片
git push origin [branch-name] 推送至远程仓库分支
分布式版本控制工具——Git_第20张图片
git merge [branch-name] 合并分支在这里插入图片描述
git branch -d < branch-name > 删除分支
git push < remote-name > -d < branch-name> 删除远程仓库分支

3.8 Git标签

git tag < tag-name> 新建标签
git tag 列出所有标签
git show < tag-name> 查看tag信息
分布式版本控制工具——Git_第21张图片
git push [remote-name] [tag] 将标签推送至远程仓库
分布式版本控制工具——Git_第22张图片
分布式版本控制工具——Git_第23张图片
git checkout -b [branch-name] [tag-name] 新建一个分支,指向某个tag
在这里插入图片描述
git tag -d [tag-name] 删除本地tag
分布式版本控制工具——Git_第24张图片
git push [remote-name] :refs/tags/[tag-name] 删除远程tag
在这里插入图片描述

4.使用TortoiseGit管理文件版本

4.1 TortoiseGit安装

TortoiseGit是一款开源的 Git 图形界面工具,使用 TortoiseGit 可以简化 Git 相关的操作(本质上还是执行的Git相关命令)
TortoiseGit 下载地址: https://tortoisegit.org/download/

4.2 TortoiseGit使用

创建仓库
分布式版本控制工具——Git_第25张图片
克隆仓库
分布式版本控制工具——Git_第26张图片
将文件添加到暂存区
分布式版本控制工具——Git_第27张图片
提交文件
分布式版本控制工具——Git_第28张图片
推送本地仓库到远程仓库
分布式版本控制工具——Git_第29张图片
拉取代码
分布式版本控制工具——Git_第30张图片
创建分支
分布式版本控制工具——Git_第31张图片
切换分支
分布式版本控制工具——Git_第32张图片
合并分支
分布式版本控制工具——Git_第33张图片

5.在IDEA中使用Git

5.1 在 IDEA 中配置 Git

选择 File→Settings 打开设置窗口,找到 Version Control 下的 git 选项:
分布式版本控制工具——Git_第34张图片
选择 git 的安装目录后可以点击“ Test” 按钮测试是否正确配置
分布式版本控制工具——Git_第35张图片

5.2 在 IDEA 中使用 Git

将工程添加至 Git,加入到Git的文件颜色会有变化
分布式版本控制工具——Git_第36张图片
将文件添加到缓存区
在这里插入图片描述
提交文件
分布式版本控制工具——Git_第37张图片
将代码推送到远程仓库
分布式版本控制工具——Git_第38张图片
从远程仓库克隆工程到本地
分布式版本控制工具——Git_第39张图片
从远程拉取代码
分布式版本控制工具——Git_第40张图片
创建分支
分布式版本控制工具——Git_第41张图片
切换分支
分布式版本控制工具——Git_第42张图片
分支合并
分布式版本控制工具——Git_第43张图片

6.使用SSH协议传输数据

6.1 Git支持的传输协议

本地协议( Local)
HTTPS 协议
SSH (Secure Shell )协议
Git 协议

6.2 什么是 SSH 协议

SSH为 Secure Shell (安全外壳协议)的缩写,由 IETF 的网络小组( Network Working Group )所制定。 SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
使用ssh 协议通信时,推荐使用基于密钥的验证方式。你必须为自己创建一对密匙(公钥和私钥),并把公匙放在需要访问的服务器上。

6.3 配置 SSH 协议

1、使用命令 ssh keygen -t rsa 生成公钥和私钥,执行完成后在 window 本地用户 ssh 目录 C: Users 用户名 .ssh 下面生成如下名称的公钥和私钥
分布式版本控制工具——Git_第44张图片
分布式版本控制工具——Git_第45张图片
2、复制公钥文件内容至Git服务器

你可能感兴趣的:(分布式版本控制工具——Git)