Git原理与使用(一)

1. Git初识

1.1 引入

场景复现:

我们在工作的时候进行设计文档,在一直拉扯的过程中,我们对文档进行了多次修改v1,v2,v3......,但是最后需要的却是文档的v1版本;但是我们当前的版本却是v10版本,随着版本的增多,维护好版本是很有挑战性的;

所以针对我们一个文档的多个版本的管理,我们引入了版本控制器,对一个文件的多个版本进行管理和修改,即记录每次的修改以及版本迭代的一个管理系统;

Git就是当前主流的版本控制器,它可以记录和维护控制我们当前电脑上所有格式的文档;对于开发人员来说,该工具可以进行管理和记录我们项目中的源代码文档;

对于文本文件:我们在第几行进行了一些列操作,git就会将我们在什么文件上的什么操作进行记录;

对于二进制文件:图片和视频,在修改图片后只能记录模糊的参数(内存:100kb->200kb),不能详细的记载进行的一些列操作;

1.2 git安装

1、 查看git安装:

ubuntu@VM-4-5-ubuntu:~$ git --version

此时服务器上已经安装了git;

2、卸载git

sudo apt-get remove git -y

3、安装指令

sudo apt-get install git -y

1.3 创建本地仓库

1、先创建一个目录:

mkdir gitcode;

cd gitcode/

2、初始化仓库

初始化git仓库:gitcode$ git init

查看隐藏目录:la

查看该文件的树形结构:tree .git

1.4 对本地仓库进行配置

1、添加配置

ubuntu@VM-4-5-ubuntu:~/gitcode$ git config user.name "Smallye"

ubuntu@VM-4-5-ubuntu:~/gitcode$ git config user.email "1533722647@qq.com"

ubuntu@VM-4-5-ubuntu:~/gitcode$ git config -l

2、删除配置

ubuntu@VM-4-5-ubuntu:~/gitcode$ git config --unset user.name

ubuntu@VM-4-5-ubuntu:~/gitcode$ git config --unset user.email

查看配置:

3、添加服务器所有本地git仓库的用户配置--global

ubuntu@VM-4-5-ubuntu:~/gitcode$ git config --global user.name "smollye"

ubuntu@VM-4-5-ubuntu:~/gitcode$ git config --global user.email "1533722647@qq.com"

查看配置如下:

删除全局用户:

ubuntu@VM-4-5-ubuntu:~/gitcode$ git config --global --unset user.name

ubuntu@VM-4-5-ubuntu:~/gitcode$ git config --global --unset user.email

1.5 论git管理文件

1、创建文件

当前我们的git不能管理readme文件,因为我们的本地仓库(版本库)是在.git目录下;同时我们把readme文件放到.git目录之后也是不能就行呗git管理的;

结论如下:

首先,不允许在.git下进行手动修改;

其次,readme只能放在gitcode的目录下,即该readme文件在工作区;而.git

是版本库;

最后,如下图所示,我们学习如何将工作区中的文件存放到版本库中:

左侧为工作区;

stage,也可以叫index,是暂存区或者索引;是树状结构,存的是一个个修改的git对象的索引;

master:也是一个树状结构,也存的是一个个修改的git对象的索引;

head:是一个指针,指向master分支;

修改:新增,修改,删除(在工作区);

add:将工作区中的文件添加到暂存区中;

commit:将暂存区中的文件提交到master分支下;

add和commit两个操作之后,git才能管理我们的文件了;

objects:对象库,修改的工作区内容会写入该对象库的一个新的git对象中;add一次,就会存在对象库中一次;

1.6 添加文件

1、完善readme文件

ubuntu@VM-4-5-ubuntu:~/gitcode$ vim Readme

ubuntu@VM-4-5-ubuntu:~/gitcode$ cat Readme

hello git

ubuntu@VM-4-5-ubuntu:~/gitcode$ git add .

//这是将当前所有工作区的文件添加到暂存区

ubuntu@VM-4-5-ubuntu:~/gitcode git add Readme ubuntu@VM-4-5-ubuntu:\~/gitcode git commit -m "add first file"
//这是将当前所指的文件提交到git本地仓库;

2、连续添加多个文件

3、打印所有提交记录

git log

4、打印剪短的日志

git log --pretty=oneline

1.7 查看git对象里面的内容

git cat-file -p commitId;

里面展示的tree后面的id是一个索引;master指针所指的git对象都会存放在object对象库里面;

其实git追踪管理的其实是修改,而不是文件;

1.8 一些git常见的指令

1、对readme文件进行修改

2、git status

查看git本地仓库的一些状态;

因为我们的文件修改是在工作区中进行的,所以在本地git仓库中是差不到的;

3、显示目前暂存区和工作区之间的差异

git diff 文件名;

4、对于修改后的文件重新进行添加到暂存区;

显示暂存区中改变的文件;

5、提交到版本库之后查看状态

显示没有什么可以提交了,工作区中是干净的;

相关推荐
Bitup_bitwin40 分钟前
Git智能合并机制深度解析
git
TeleostNaCl7 小时前
OpenWrt 编译 | 一种使用 git submodule 方式实现一键更新多个外部软件包
网络·经验分享·git·智能路由器
Cosmoshhhyyy21 小时前
mac环境下安装git并配置密钥等
git·macos
yuwei02121 小时前
git大全解
git
小林的技术分享1 天前
版本控制系统-Git 学习 《progit》电子书学习记录 第一章 (仅隔个人学习记录用)
git
weixin_456904271 天前
Git登录配置的详细方法
git
鄃鳕1 天前
Git , 本地落后远端
git
Yusei_05231 天前
迅速掌握Git通用指令
大数据·git·elasticsearch
qq_377572772 天前
git commit - revert + reset + checkout + reorder
git
2301_767233222 天前
Git使用和理解上的一些问题
git