当前位置: 首页 > news >正文

【Git】P1 Git 基础

Git 基础

  • Git 基本概念
    • 集中式版本控制工具 与 分布式版本控制工具
    • Git 下载与安装
    • Bash 初始设置
    • 创建本地仓库
    • Git 三区概念
  • 一个简单的提交流程
  • 更改文件后再次提交
  • git 实现版本切换
    • 查看提交日志
    • 设置 git 快捷键
    • 版本切换(一)
    • 版本切换(二)
  • 同文件夹下只想让部分文件 git 管理


千里之行,始于足下

Git 学习目标:

  1. git 基本概念
  2. git 工作流程
  3. git 常用命令
  4. git 代码托管
  5. idea 操作 git

Git 基本概念

git 的实际使用场景,为什么用 git?

  1. 防止电脑嘎嘣脆,啥啥都没了;
  2. 代码版本控制,突然发现错了好几个版本,咱还能恢复到之前的之前的之前的版本;代码回滚与还原;
  3. 协同开发,多个人同时维护同一个项目;
  4. 代码追溯,通过线上日志找到什么时候出的错

集中式版本控制工具 与 分布式版本控制工具

集中式版本控制工具:

版本库是存放在中央服务器,每个人工作时候必须联网,从中央服务器下载代码,修改后上传到中央服务器,提交到中央版本库。比如 SVNCVS,但是已经比较过时;

分布式版本控制工具:

每个人的电脑都是一个完整的版本库,工作时候无需联网,多人协作只需要各自的修改推给对方,就可以看到对方的修改了。比如 Git

虽然 git 也有共享版本库,但是 git 由于每个人的电脑都包含完整的版本库,所以不怕中央挂掉,挂了从任何一个电脑上上传即可。


Git 下载与安装

下载网址:https://git-scm.com/download/win

安装注意事项:(没有提到直接默认 next 即可)

选择英文地址:

在这里插入图片描述

给桌面加个图标:

在这里插入图片描述
默认 vim, 有关 vim 操作博文:https://blog.csdn.net/weixin_43098506/article/details/129336983

在这里插入图片描述

主干名,默认其为 master

默认选择第二个,第一个是只从 git bash 进入 git,第二个是可以从 bash 以及 第三方软件进入;

在这里插入图片描述

默认选择 ssh可执行文件,默认选择 https 传输后端,配置行尾转换,配置终端模拟器,全部默认;

恭喜安装完成!!!

推荐安装介绍博客:
https://www.cnblogs.com/kevinzhushrek/p/16092144.html


Bash 初始设置

Git GUI:Git 提供的图形界面工具;
Git Bash:Git提供的命令行工具;

安装完成后最重要一步是设置邮箱以及用户名;

打开 git bash,设置自己用户名以及邮箱

git config --global user.name "XU Hongduo"
git config --global user.email "xxxxxxx@hotmail.com"

检查自己设置好的用户名以及邮箱

git config --global user.name
git config --global user.email

创建本地仓库

自定义一个文件夹下,右键新建文件夹,命名英文,然后右键 Git Bash here,执行指令:

git init

在这里插入图片描述


Git 三区概念

在 Git 中,有三区概念,工作区,暂存区以及仓库。

工作区: 新创建未加到仓库中的文件;已加到仓库但是修改了没提交的文件;
暂存区: 提交到仓库之前的缓存区,工作区的文件通过 add 指令;
仓库: 进行版本控制的文件目录;

图片来源于黑马,仅用于学习


一个简单的提交流程

首先从工作区提交到暂存区

git add "test.txt"

可以查看状态

git status

在这里插入图片描述

然后从暂存区提交到仓库

git commit -m "first submit"
# first submit 为注释内容

再次查看状态

git status

在这里插入图片描述


更改文件后再次提交

对上述已提交的 test.txt 文件做更改,执行 status 查看状态

git status

在这里插入图片描述

重新提交并上传

git add .
git commit -m "second submit"

在这里插入图片描述
P.S. 少个 -m 里 t…


git 实现版本切换

查看提交日志

当一个文件多次提交后,可以查看日志

git log
git log --pretty=oneline
# 将提交的信息显示为一行
git log --pretty=oneline --abbrev-commit
# 将提交的信息显示为一行
# 使得输出的 commitId 更简短
git log --pretty=oneline --abbrev-commit --all
# 将提交的信息显示为一行
# 使得输出的 commitId 更简短
# 显示所有分支
git log --pretty=oneline --abbrev-commit --all --graph
# 将提交的信息显示为一行
# 使得输出的 commitId 更简短
# 显示所有分支
# 以图的形式显示(该图非图片,而是结构)

在这里插入图片描述

插播:最后一条指令太过于冗长,我们可以通过设置快捷键设置自创一条指令。


设置 git 快捷键

在用户目录下创建 .bashrc 文件,所谓用户目录,对于我的电脑为 C:\Users\xhong

touch .bashrc

打开 .bashrc 文件,然后配置日志 log 快捷键 以及 ll 快捷键

alias git-log="git log --pretty=oneline --abbrev-commit --all --graph"alias ll="ls -al"

在这里插入图片描述

保存退出,配置完成!!!


版本切换(一)

首先查看所有提交 log id

git log --pretty=oneline --abbrev-commit --all --graph
# 未设置快捷键
git-log
# 设置了快捷键

在这里插入图片描述

然后执行回退版本指令

git reset --hard beb4c4c

在这里插入图片描述

注意 beb4c4c 是我的一次 submit -m 的 id

再次查看文件,发现已经回滚到之前只有一行内容的情况。


版本切换(二)

如果我想回到回滚前的版本,但是 log 已经看不到回滚前的版本号了,怎么办?

git reflog

可以查看回滚记录,从而找回那个版本号

再次版本切换到回滚前的就可以

git reset --hard b133242

在这里插入图片描述

再次查看内容,发现又回到了两行的内容。


同文件夹下只想让部分文件 git 管理

问题描述

如果一个文件夹下我只有部分文件想通过 git 进行管理,该如何做???

案例解析

首先我们先初始化一个目录,然后创建两个文件 test.txt 以及 test1.a,

git init
touch test.txt
touch test1.a

我们首先查看有哪些文件被 git 管理

git status

在这里插入图片描述

我希望通过 git 对 test.txt 进行管理,而不对 test1.a 进行管理;

首先我们创建一个名为 .gitignore 的文件,用于记录当前文件夹中不被管理的文件名称;

touch .gitignore

通过 vim 打开.gitignore 文件

vim .gitignore

将不希望被 git 管理的文件名 test1.a 添加到 .gitignore 中

在这里插入图片描述

然后我们能再执行查看 git 状态命令,可以发现 test1.a 文件已经不被管理

在这里插入图片描述


下一节:
链接:

http://www.lryc.cn/news/32760.html

相关文章:

  • 智能交通数据集Rope3D(仅限科研使用)
  • Java虚拟机JVM-面试题
  • 详细的说说Redis的数据类型
  • 798.差分矩阵
  • InfluxDB 2 介绍与使用 flux查询 数据可视化
  • Qt QTreeView简单使用
  • Wannacrypt蠕虫老树开花?又见Wannacrypt
  • 结合基于规则和机器学习的方法构建强大的混合系统
  • Spring Security OAuth2实现多用户类型认证、刷新Token
  • 云计算介绍,让你更了解云计算
  • 阿里大佬翻遍全网Java面试文章,总结出这份1658页文档,GitHub收获25K+点赞
  • 【JDK1.8 新特性】Lambda表达式
  • 【Vue.js】Vuex核心概念
  • react router零基础使用教程
  • IOC三种依赖注入的方式,以及区别
  • Ubuntu18安装新版本PCL-1.13,并和ROS自带PCL-1.8共存
  • 计算机图形学08:中点BH算法绘制抛物线(100x = y^2)
  • 基于java的高校辅导员工作管理系统
  • 字节3次都没裁掉的7年老测试。掌握设计业务与技术方案,打开上升通道!
  • 详细介绍关于链表【数据结构】
  • 2.3 二分搜索技术
  • RWEQ模型的土壤风蚀模数估算、其变化归因分析
  • 学习streamlit-1
  • GPS定位知识介绍
  • 【Linux】理解Linux环境变量
  • ISCSI块存储-集群
  • 11.Maxwell 部署
  • 一文速学-GBDT模型算法原理以及实现+Python项目实战
  • 前端——2.HTML基本结构标签
  • OAK深度相机使用不同镜头和本地视频流进行模型推理