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、提交到版本库之后查看状态

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

相关推荐
small陀螺1 小时前
Git 概述及相关命令(1)
git
不停哥5 小时前
代码备份管理 —— Git实用操作
git·git命令行·代码版本管理·分布式管理
.信.6 小时前
书生实战营第四期-第三关 Git+InternStudio
linux·人工智能·git·python
hongel1106 小时前
将本地某个commit 提交另一个分支上
git
lizz6667 小时前
使用 Git 命令将本地项目上传到 GitLab
git·1024程序员节
Dragon_qu·x7 小时前
Mac 配置SourceTree集成云效
linux·git·云计算·mac
云围1 天前
Gitlab 官方推荐自动化cache服务器Minio的安装
git·unity·ci/cd·自动化·gitlab·devops
dzq1981 天前
Hexo提交部署命令与Git Bash Here控制终端中按下Ctrl+C无法中断hexo s的解决办法
运维·git·hexo·部署博客·hexo s·ctrl+c·源码推送
NiNg_1_2342 天前
Git提交代码完整流程
git
洛卡卡了2 天前
Git 常用命令与开发流程总结
大数据·git