Git操作 【详细】【详细】
什么是 Git
Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。
特点: 项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性
Git 的特性
Git 之所以快速和高效,主要依赖于它的如下两个特性:
- 直接记录快照,而非差异比较
- 近乎所有操作都是本地执行
与SVN的差异比较
传统的版本控制系统(例如 SVN)是基于差异的版本控制,它们存储的是一组基本文件和每个文件随时间逐步累积的差异。
好处: 节省磁盘空间
缺点: 耗时、效率低
在每次切换版本的时候,都需要在基本文件的基础上,应用每个差异,从而生成目标版本对应的文件。
Git 的记录快照
Git 快照是在原有文件版本的基础上重新生成一份新的文件,类似于备份。为了效率,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。
缺点: 占用磁盘空间较大
优点: 版本切换时非常快,因为每个版本都是完整的文件快照,切换版本时直接恢复目标版本的快照即可。
特点: 空间换时间
近乎所有操作都是本地执行
在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。
特性:
- 断网后依旧可以在本地对项目进行版本管理
- 联网后,把本地修改的记录同步到云端服务器即可
Git 中的三个区域
使用 Git 管理的项目,拥有三个区域,分别是工作区
、暂存区
、Git 仓库
Git 中的三种状态
- 已修改: 工作区的文件被修改了,但还没有放到暂存区,就是已修改状态。
- 已暂存: 如果文件已修改并放入暂存区,就属于已暂存状态。
- 已提交: 如果 Git 仓库中保存着特定版本的文件,就属于已提交状态
基本的 Git 工作流程
基本的 Git 工作流程如下:
- 在工作区中修改文件
- 将你想要下次提交的更改进行暂存
- 提交更新,找到暂存区的文件,将快照永久性存储到 Git 仓库
Git的配置与安装
在Git官网中下载适合你电脑的安装包、
配置用户信息
配置是使用命令行来配置:
1. 配置用户名
git config --global user.name "在这里填写用户名"
2. 配置邮箱
git config --global user.email "邮箱"
tips
: 如果使用了 --global 选项,那么该命令只需要运行一次,即可永久生效
Git 的全局配置文件在哪里查看
通过 git config --global user.name
和 git config --global user.email
配置的用户名和邮箱地址,会被写入到C:/Users/用户名文件夹/.gitconfig
文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。
检查配置信息
3. 查看所有全局配置项
git config --list --global
4. 查看指定全局配置项
git config user.name
git config user.email
获取帮助信息(两种方式命令)
- 在浏览器中查看
git help config
- 在终端中查看 :
git config -h
1. 在浏览器中查看 :git help config
2. 在终端中查看: git config -h
Git的基本操作
获取 Git 仓库的两种方式
- 将尚未进行版本控制的本地目录转换为 Git 仓库
- 从其它服务器克隆一个已存在的 Git 仓库
以上两种方式都能够在自己的电脑上得到一个可用的 Git 仓库
在现有目录中初始化仓库
如果自己有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,需要执行如下两个步骤:
- 在项目目录中,通过鼠标右键打开“Git Bash”
- 执行 git init 命令将当前的目录转化为 Git 仓库
git init 命令会创建一个名为 .git 的隐藏目录,这个 .git 目录就是当前项目的 Git 仓库,里面包含了初始的必要文件,这些文件是 Git 仓库的必要组成部分。
tips:
如果没有显示.git文件,并不代表出错了,我们只是电脑默认把隐藏的文件不显示,可以再我的电脑中,点上方查看,然后把查看隐藏文件给选上就可以了;
git工作区中文件的 4 种状态
Git 操作的终极结果:
让工作区中的文件都处于“未修改
”的状态,然后供我们操作。
检查文件的状态
git status(显示的非常全面)git status -s(仅仅显示文件的状态,非常精简)
查询状态的结果分析:
1. ?? 代表未被git管理;2. A代表现在是从原来未被管理的状态,变成了被管理的状态,并且已经进入了工作区。此时如果进行修改,那就会变成红色的M,并且没有进入暂存区,想进去再用git add3. 红色M代表我们被跟踪的文件被修改了,但是还没有放到暂存区中。4. 绿色的D代表的是这个文件已经彻底被移除git了
添加跟踪文件
git add 文件名 (eg: git add index.html)
把暂存区的文件提交到git仓库
git commit -m "在这里写描述信息,也可以不写" -m的作用就是添加描述信息
如果要把修改的文件,放到暂存区
,此时我们要重新运行 git add +这个文件
就可以了
运行以后的查询状态结果为: 红色的M就变成了绿色的M(表示修改的文件已经放到了 ,暂存区)
撤销对指定文件的修改(危险性比较高,谨慎操作)因为撤销以后就没办法恢复了
git checkout -- 文件名
向暂存区中一次性添加多个文件
git add .
把暂存区中的文件移除
git reset HEAD +要移除的文件名称
把暂存区中所有的文件都移除掉
git reset HEAD .
直接将工作区的文件直接提交到git仓库(-a 就是跳过暂存区的意思,-m就是添加描述信息的意思)
git commit -a -m "描述信息"
从git仓库中移除相应的文件(有两种)
- 把git仓库中和工作区中的这个文件同时移除
git rm -f 目标文件
- 值从git仓库中移除这个文件,但是保留工作区这个文件
git rm -- cached 目标文件
忽略文件,让不需要纳入git管理的文件,也不显示在未被git管理的列表中
在根目录上创建一个名字叫.gitignore的文件,然后在这个文件中写需要忽略的文件语法
文件 .gitignore 的格式规范:
- 以
# 开头
的是注释 - 以
/ 结尾
的是目录 - 以
/ 开头
防止递归 - 以
! 开头
表示取反 - 可以使用
glob 模式
进行文件和文件夹的匹配(glob 指简化了的正则表达式)
glob 模式
6. 星号 *
匹配零个或多个任意字符
7. [abc]
匹配任何一个列在方括号中的字符 (此案例匹配一个 a 或匹配一个 b 或匹配一个 c)
8. 问号 ?
只匹配一个任意字符
9. 在方括号中使用短划线
分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配
所有 0 到 9 的数字)
10. 两个星号 **
表示匹配任意中间目录
(比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等)
eg: .gitignore文件的例子
查看项目的提交历史
如果希望回顾项目的提交历史,可以使用 git log 这个简单且有效的命令。
回退到指定的版本
使用git reset --hard 命令 ,根据指定的 ID 回到指定的版本中
总结: GIT中的常用基础操作
- 初始化 Git 仓库的命令
git init
- 查看文件状态的命令
git status
或git status -s
- 一次性将文件加入暂存区的命令
git add .
- 将暂存区的文件提交到 Git 仓库的命令
git commit -m "提交消息"
不断复盘,不断优秀,踏实做人,认真做事;关注三连,持续更新~~~
Git操作 【详细】【详细】相关推荐
- 将本地项目上传到github,git操作详细指导,不看后悔深度好文!
github入门到上传本地项目 GitHub是基于git实现的代码托管.git是目前最好用的版本控制系统了,非常受欢迎,比之svn更好. GitHub可以免费使用,并且快速稳定.即使是付费帐户,每个月 ...
- git指令快捷 idea_IDEA+Git+Gitlab使用详细教程
GitLab 安装踩坑 502错误码和访问卡顿解决办法 Gitlab对内存的要求高,我的服务器Centos 7+2核心+2G内存,频繁报502错误,访问也很卡.原因可能是可用内存太少. # free ...
- 在Linux配置Git SSH的详细步骤;git配置ssh详细教程;
在Linux或Mac OS上配置Git SSH的详细步骤如下: 1.打开终端,并输入以下命令检查是否已经在Linux下安装git git --version已安装,则获取git版本信息成功 2.如果已 ...
- git pull git push的详细使用
git pull & git push的详细使用 git pull 常用 pull意为拉,这里引申为拉取代码. 在Git命令中使用pull,会将你的远程代码拉取到本地并进行合并 格式: git ...
- mysql的join语句使用_在MySQL中使用JOIN语句进行连接操作的详细教程
到目前,我们已经学习了从一个表中获取数据.这是简单的需要,但在大多数现实MySQL的使用,经常需要将数据从多个表中的一个单一的查询. 可以使用多个表中的单一SQL查询.在MySQL中联接(join)行 ...
- PHP 操作redis 详细讲解
2019独角兽企业重金招聘Python工程师标准>>> Redis 菜鸟教程学习网址 http://www.runoob.com/redis/redis-install.html 挺 ...
- Python 标准库之 shutil 高阶文件操作『详细』
Python标准库之 shutil 高阶文件操作『详细』 文章目录 Python标准库之 shutil 高阶文件操作『详细』 一.Python shutil介绍
- git branch的详细使用,10个常见用法
序 branch命令主要用来处理跟分支有关系的功能,比如创建分支.删除分支.查看本地分支.查看远程分支等. 常用命令 1.查看本地分支 git branch 如果不添加任何参数,则代表显示本地所有分支 ...
- Word进行自动生成目录右边页面等格操作简单详细方法
Word进行自动生成目录右边页面等格操作简单详细方法 Word文档自动生成的目录,但是由于目录的右边不等(见下图),看起来不美观,所以我们可以将目录右边页面进行等格处理. 方法步骤如下: 一.首先选择 ...
最新文章
- 怎么扫描_打印机上扫描仪怎么用 打印机上扫描仪使用及添加方法
- 客户端负载均衡Ribbon之一:Spring Cloud Netflix负载均衡组件Ribbon介绍
- tomcat 修改默认字符集
- 混合开发的坑(7) ---输入文本时,键盘遮挡
- 获取打印的html代码怎么写,javascript如何输出?
- 总结 Visual Studio 2019 发布以来 XAML 工具的改进
- 嵌入式GUI FTK支持输入法
- kafka创建topic命令_0748-5.14.4-Kafka的扩容和缩容
- 【JEECG技术博文】Jeecg高级查询器
- 理解Python中的继承规则和继承顺序
- 8.configurable product
- IPFS时代来临,FIL WORLD重赋存储灵魂
- RPG像素游戏角色大合集
- wifi 联想小新_WiFi 6锐龙5一个都不能少 小新Pro 13详细配置曝光
- 2022第十二届中国电子文件管理论坛嘉宾揭晓
- 人和摩托最快达到目的地
- mw325r服务器无响应,水星(MERCURY)路由器MW325R上不了网/连不上网的解决方法
- IBM服务器硬盘灯不正常闪烁的解决办法(新硬盘绿灯闪烁)
- 自定义消息通知、手机震动、提示音
- 模拟银行卡三次密码输入场景