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

1.Git概述

1.1 Git历史

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

1.2 Git 与 SVN 对比

SVN是集中式版本控制系统,版本库放在中央服务器。
在这里插入图片描述
缺点:

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

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

  • 本地仓库:是在开发人员自己电脑上的Git仓库
  • 远程仓库:是 在远程服务器上的 Git 仓库
    在这里插入图片描述
  • Clone :克隆,就是将远程仓库复制到本地
  • Push:推送,就是将本地仓库代码上传到远程仓库
  • Pull:拉取,就是将远程仓库代码下载到本地仓库
  • Commit:提交,就是将代码上传到本地仓库

1.3 Git工作流程

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

1.4 Git下载安装

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

安装成功后,在桌面右键会看到如下菜单
在这里插入图片描述
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 “zhangsan@193.com”
查看配置信息
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 。暂存区是一个临时保存修改文件的地方
在这里插入图片描述

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

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

3.5 本地仓库操作

git status 查看文件状态
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200616135239739.png
git status -s 简洁输出文件状态
在这里插入图片描述
git add 将未跟踪的文件加入暂存区
git add hello.txt
加入后状态:
在这里插入图片描述
从暂存区撤回
git reset head hello.txt
在这里插入图片描述
git commit 将暂存区的文件修改提交到本地仓库
在这里插入图片描述
git rm 删除文件
git rm
删除后查看文件状态
在这里插入图片描述
将工作区删除的文件提交到本地仓库
在这里插入图片描述
将文件添加至忽略列表:
可以在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:
在这里插入图片描述
git log 查看日志记录

3.6 远程仓库操作

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

git push [remote name] [branch name] 推送到远程仓库
需要输入仓库用户名和密码
在这里插入图片描述

3.7 Git分支

查看分支
# 列出所有本地分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 列出所有本地分支和远程分支
$ git branch -a
在这里插入图片描述
git branch b1 创建分支
在这里插入图片描述
git checkout b1 切换分支
在这里插入图片描述
git push origin [branch-name] 推送至远程仓库分支
在这里插入图片描述
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 push [remote-name] [tag] 将标签推送至远程仓库
在这里插入图片描述
在这里插入图片描述
git checkout -b [branch-name] [tag-name] 新建一个分支,指向某个tag
在这里插入图片描述
git tag -d [tag-name] 删除本地tag
在这里插入图片描述
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使用

创建仓库
在这里插入图片描述
克隆仓库
在这里插入图片描述
将文件添加到暂存区
在这里插入图片描述
提交文件
在这里插入图片描述
推送本地仓库到远程仓库
在这里插入图片描述
拉取代码
在这里插入图片描述
创建分支
在这里插入图片描述
切换分支
在这里插入图片描述
合并分支
在这里插入图片描述

5.在IDEA中使用Git

5.1 在 IDEA 中配置 Git

选择 File→Settings 打开设置窗口,找到 Version Control 下的 git 选项:
在这里插入图片描述
选择 git 的安装目录后可以点击“ Test” 按钮测试是否正确配置

5.2 在 IDEA 中使用 Git

将工程添加至 Git,加入到Git的文件颜色会有变化
在这里插入图片描述
将文件添加到缓存区
在这里插入图片描述
提交文件
在这里插入图片描述
将代码推送到远程仓库
在这里插入图片描述
从远程仓库克隆工程到本地
在这里插入图片描述
从远程拉取代码
在这里插入图片描述
创建分支
在这里插入图片描述
切换分支
在这里插入图片描述
分支合并
在这里插入图片描述

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 下面生成如下名称的公钥和私钥
在这里插入图片描述
在这里插入图片描述
2、复制公钥文件内容至Git服务器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值