Git的基本操作——如何学习Git(1)
前言
本篇讲的是Git的操作过程和原理(git追踪管理的其实是修改,而不是文件)
Git也叫版本控制系统(版本控制器),他它能够控制电脑上各种格式(doc、excel、dwg、
dgn、rvt等等)的文件。其实git只能跟踪⽂本⽂件的改动,⽽图⽚ 、视频这些⼆
进制⽂件,虽然也能由版本控制系统管理,但没法跟踪⽂件的变化,只能把⼆进
制⽂件每次改动串起来,也就是只知道图⽚从100KB改成了120KB,但到底改了啥,版本控制系统不 知道,也没法知道。
一、git安装
Git 是开放源代码的代码托管⼯具,最早是在Linux下开发的。 开始也只能应⽤于Linux平台,后⾯慢慢 的被移植到windows下,现在,Git可以在Linux、 Unix、Mac和Windows这⼏⼤平台上正常运⾏了。
1.1 Linux-centos中git的安装
⾸先,你可以试着输⼊Git,看看系统有没有安装Git:
- git
- -bash: git: command not found
出现像上⾯的结果,Linux会友好地告诉你Git没有安装。
安装 Git:
sudo yum -y install git
查看 Git 安装的版本:
git --version
1.2 Linux-ubuntu中git的安装
如果你的的平台是ubuntu,安装git相当简单,以我的ubuntu20.04为例:
⾸先,你可以试着输⼊git,看看系统有没有安装Git:
1.git
2.Command ‘git’ not found, but can be installed with:
3.sudo apt install git
出现像上⾯的结果,Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。
安装 Git:
sudo apt-get install git -y
查看 git 安装的版本:
git --version
说明我已经安装完成
如何卸载 git?
sudo apt-get remove git -y
卸载完毕
1.2 windows中git的安装
windows需要安装git和图形化界面工具(戏称小乌龟)
安装包:
百度云盘
密码:1111
然后提交代码三板斧:
在本地仓库右键点击:
TortoiseGit->add->commit->push(就可以提交代码了)
二、git配置
- 在gitcode文件下面创建git本地仓库
git init
创建成功
gitcode文件夹下多了⼀ 个.git的隐藏⽂件,.git⽬录是 Git 来跟踪管理仓库的,不要⼿动修改这个⽬录⾥⾯的⽂件,不然改乱了,就把 Git 仓库给破坏了。
- 可以查看它的树形结构
tree .git/
9个文件夹,16个文件
- 配置git
执行命令必须在本地仓库里
配置局部的用户名和邮箱:
git config user.name "Your Name"
git config user.email "email@example.com"
把 Your Name 改成你的昵称big-ll
把 email@example.com 改成邮箱的格式(2814880526@qq.com)
配置全局的用户名和邮箱:
git config --global user.name "big-ll"
git config --global user.email "2814880526@qq.com"
一个服务器可以配置很多个本地仓库,如果加上 --global,那么配置的账号和邮箱可以被多个本地仓库使用。
查看配置是否成功:
git config -l
三、认识工作区、暂存区、版本库
- 工作区
⼯作区: 是在电脑上你要写代码或⽂件的⽬录。
- 暂存区
暂存区: 英⽂叫 stage 或index。⼀般存放在⽬录下的.git目录下的index⽂件(.git/index)中,我们把暂存区有时也叫作索引(index)。
- 版本库
版本库:⼜名仓库,英⽂名repository⼯作区有⼀ 个隐藏⽬录.git,它不算⼯作区,⽽ 是 Git 的版本库。这个版本库⾥⾯的所有⽂件都可以被 Git 管理起来,每个⽂件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
- 图解
1.图中左侧为⼯作区,右侧为版本库。 Git 的版本库⾥存了很多东西,其中最重要的就是暂存区(.git/index)。
2.在创建 Git 版本库时,Git 会为我们⾃动创建⼀个唯⼀的master分⽀,以及指向 master 的⼀个指针叫HEAD。
3.当对⼯作区修改(新增、修改、删除)的⽂件执⾏git add命令时,暂存区⽬录树的⽂件索引会被更新。
4.当执⾏提交操作 git commit 时,master 分⽀会做相应的更新,可以简单理解为暂存区的⽬录树写到版本库中。
- 图解
- 我们创建4个文件:touch file1 file2 file3 file4
- 添加一个文件到暂存区:git add file1
- 添加两个文件到暂存区:git add file1 file2
- 把所有文件全部添加到暂存区:git add .
- 把暂存区的目录树全部提交到版本库中:git commit -m “add 4 file”( 注意-m 选项,要跟描述本次提交的信息相关,由⽤⼾⾃⼰完成。这部分内容绝对不能省略,并要好好描述,是⽤来记录你的提交细节,是给我们⼈看的。)
- 使用git log命令可以查看历史提交记录(由最近提交到最远提交进行排列)
- 补充一下:提交暂存区的指定⽂件到版本库:git commit file1 file2 -m “add 2 file”。
如果嫌git log 输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline,那个非常长的数字是通过哈希加密得,也是commit ID.
6. 查看.git文件
- 在git add后.git版本库会生成一个index文件,该文件就是是暂存区
- HEAD是一个指针,指向的是master,我们打印master内容与最新一次提交的commit id一样。
- master里面存放的是最新的commit id
- 这个commit id(就是索引)指向的是git的对象,对象存放在objects里面,commit id前2位是文件夹名,后38位是文件名称
- objects是 Git 的对象库,⾥⾯包含了创建的各种版本库对象及内容
根据 commit id 我们可以查看文件修改的内容(指向对象库的对象,对象里有修改的数据),git cat-file -p df937599c0fa8ef135fa424e22fe437b6440b5b4(可以查看最新修改的内容)