网站首页 > 编程文章 正文
Git(读音为/g?t/)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git是Linux作者Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件,分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone)在本机上拷贝一个完整的Git仓库。
Git 工作区、暂存区和版本库
基本概念
我们先来理解下Git工作区、暂存区和版本库概念:
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫stage或index。一般存放在.git目录下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:
图中左侧为工作区,右侧为版本库。在版本库中标记为"index"的区域是暂存区(stage/index),标记为"master"的是master分支所代表的目录树。
图中我们可以看出此时"HEAD"实际是指向master分支的一个"游标"。所以图示的命令中出现HEAD的地方可以用master来替换。
图中的objects标识的区域为Git的对象库,实际位于".git/objects"目录下,里面包含了创建的各种对象及内容。
当对工作区修改(或新增)的文件执行git add命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。
当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master分支会做相应的更新。即master指向的目录树就是提交时暂存区的目录树。
当执行git reset HEAD命令时,暂存区的目录树会被重写,被master分支指向的目录树所替换,但是工作区不受影响。
当执行git rm--cached <file>;命令时,会直接从暂存区删除文件,工作区则不做出改变。
当执行git checkout.或者git checkout -- <file>;命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
当执行git checkout HEAD.或者git checkout HEAD <file>;命令时,会用HEAD指向的master分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
在windows上如何安装Git?
在官网https://git-scm.com/download/win下载git-2.20.1-64-bit.exe
若网速慢,可前往链接:http://www.bjpowernode.com/javavideo/131.html下载
下载完进行默认安装即可。安装完成后,在开始菜单里面找到"Git-->Git Bash",
如下:
会弹出一个类似的命令窗口的东西,就说明Git安装成功。如下:
安装完成后,还需要最后一步设置,在命令行输入如下:
git config--global user.name"YOUR NAME"
git config--global user.email"YOUR EMAIL"
因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
注意:git config--global参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。
零基础学习Git,动力节点Git实战视频教程,该视频课程能帮你快速掌握这一技能,在课程中,将完整的阐述GIT工具的发展历史、GIT工具的使用、分支管理、远程仓库等。
Git视频教程:https://www.bilibili.com/video/BV1iv411p7ap
Git资料下载:http://www.bjpowernode.com/?toutiao
学习课程目录
?001.Git教程:课程导读
?002.Git教程:git历史
?003.Git教程:svn介绍
?004.Git教程:svn工作原理
?005.Git教程:去中心化思想
?006.Git教程:git工作模式
?007.Git教程:git与svn的区别
?008.Git教程:git工作流程
?009.Git教程:git安装前的准备
?010.Git教程:linux上安装git
?011.Git教程:windows下安装git
?012.Git教程:安装git图形客户端tortoiseGit
?013.Git教程:git的基本配置
?014.Git教程:git命令创建本地仓库
?015.Git教程:tortoiseGit创建本地仓库
?016.Git教程:解决tortoisegit图标不显示的问题
?017.Git教程:tortoise添加文件
?018.Git教程:使用git命令添加文件
?019.Git教程:工作区和暂存区
?020.Git教程:查看仓库当前的状态
?021.Git教程:提交修改
?022.Git教程:tortoise查看修改历史
?023.Git教程:使用git命令查看修改历史
?024.Git教程:差异比较
?025.Git教程:还原修改
?026.Git教程:删除文件
?027.Git教程:移动或重命名工作区文件
?028.Git教程:案例:将java工程提交到版本库
?029.Git教程:远程仓库介绍
?030.Git教程:登录和注册github
?031.Git教程:创建远程仓库
?032.Git教程:ssh协议
?033.Git教程:ssh密钥生成
?034.Git教程:github上配置秘钥
?035.Git教程:使用git命令同步到远程仓库
?036.Git教程:使用TortoiseGit同步到远程仓库
?037.Git教程:两种远程推送方式的对比
?038.Git教程:clone远程仓库
?039.Git教程:pull与fetch命令区别
?040.Git教程:解决文件冲突
?041.Git教程:删除远程仓库
?042.Git教程:创建分支和合并分支原理
?043.Git教程:tortoise创建分支
?044.Git教程:git命令创建分支
?045.Git教程:删除分支
?046.Git教程:解决分支冲突
?047.Git教程:标签的意义
?048.Git教程:新建标签
?049.Git教程:查看标签
?050.Git教程:删除标签
?051.Git教程:ideal中配置git
?052.Git教程:ideal中使用git
?053.Git教程:为什么要搭建自己的git
?054.Git教程:安装git及准备工作
?055.Git教程:创建证书登录
?056.Git教程:初始化Git仓库
?057.Git教程:测试git私服
?058.Git教程:Gitee介绍
?059.Git教程:配置公钥
?060.Git教程:在gitee上创建远程仓库
猜你喜欢
- 2024-10-10 git秘钥问题解析及gitlab配置(git密钥在哪个文件夹)
- 2024-10-10 PyIDM开源高速引擎Internet下载管理器,搬运工福利
- 2024-10-10 python安装weditor失败, error: subprocess-exited-with-error
- 2024-10-10 自动化测试基础:pycharm如何关联git对GitHub进行代码管理?
- 2024-10-10 git搭建以及使用,搭建github远程仓库
- 2024-10-10 一款运行于windows上的linux命令神器-Cmder(已经爱不释手)
- 2024-10-10 .NetCore+git+IIS+Jenkins的CI/CD
- 2024-10-10 巧妙利用代码托管平台gitee,再也不用担心找不到Java项目
- 2024-10-10 这个40M的小工具助你在windows下处理数据如虎添翼
- 2024-10-10 新手快速上手Git与小乌龟(git小乌龟怎么合并代码)
你 发表评论:
欢迎- 05-09Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 05-09《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- 05-09MapStruct架构设计(mapstruct @mapping)
- 05-09分布式微服务架构组件(分布式微服务架构设计)
- 05-09Java Swing组件下的JButton实例(java swing 组件)
- 05-09java基础都在这了,小主们拿去吧(java基础是指什么)
- 05-09AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 05-09【Spring Boot】WebSocket 的 6 种集成方式
- 最近发表
-
- Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- MapStruct架构设计(mapstruct @mapping)
- 分布式微服务架构组件(分布式微服务架构设计)
- Java Swing组件下的JButton实例(java swing 组件)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 【Spring Boot】WebSocket 的 6 种集成方式
- Java 中五种最常见加密算法:原理、应用与代码实现
- 用注解进行参数校验,spring validation介绍、使用、实现原理分析
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)