Git基本操作

文章目录

    • [1. Git安装](#1. Git安装)
    • [2. 创建本地仓库](#2. 创建本地仓库)
    • [3. git配置](#3. git配置)
    • [4. 工作区、暂存区、版本库](#4. 工作区、暂存区、版本库)
      • [4.1 git add](#4.1 git add)
      • [4.2 git commit](#4.2 git commit)
      • [4.3 git cat-file](#4.3 git cat-file)
    • [5. 版本回退](#5. 版本回退)
    • [6. 撤销修改](#6. 撤销修改)
    • [7 .删除版本库文件](#7 .删除版本库文件)

1. Git安装

查看是否安装过:

shell 复制代码
git --version

如果是-bash: git: command not found,就表明没安装

安装git:

bash 复制代码
sodu yum install git -y

2. 创建本地仓库

bash 复制代码
git init

3. git配置

配置用户名和邮箱地址:

bash 复制代码
git config [--global] user.name "用户名"
git config [--global] user.email "邮箱"

如果加上--global表明在当前机器所有仓库都生效

查看配置:

bash 复制代码
git congifg -l

删除配置:

bash 复制代码
git config [--global] --unset user.name	#删除用户名
git config [--global] --unset user.email	#删除邮箱地址

4. 工作区、暂存区、版本库

在本地仓库创建文件之后,git是不能够直接管理这个文件的

工作区、版本库中的暂存区和版本库之间的关系图片来源(侵权删):Git 工作区、暂存区和版本库)

不能够直接在.git文件里面手动进行修改

4.1 git add

  • git add [file1] [flie2] [-A]:添加指定文件,包括删除的文件
  • git add [dir]:添加指定目录
  • git add .:添加当前目录所有改动文件

4.2 git commit

  • git commit -m "message":提交暂存区全部内容到本地仓库(.git
  • git commit -m [file1] [file2] -m "message":提交暂存区指定文件到本地仓库

可采用git log [--pretty=oneline] 查看提交记录

4.3 git cat-file

bash 复制代码
git cat-file -p commit_id	#查看版本库对象内容

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

bash 复制代码
git diff file_name
  • a/ReadMe:改动前的文件
  • b/ReadMe:改动后的文件
  • -1-表明改动前,1表明第一行内容
  • +1,2+改动后的内容,1,2连续2行的内容

5. 版本回退

bash 复制代码
git reset [--soft | --mixed | --hard] [HEAD]
  • soft:只回退版本库内容
  • mixed(默认项):为默认选项,使⽤时可以不⽤带该参数。该参数将暂存区的内容退回为指定提交版本内容,⼯作区文件保持不变。
  • hard(慎用):回退所有区内容
  • HEAD:回退到当前版本,与版本库的版本一致(HEAD^回退到上一个版本,HEAD^^回退到前2个版本...)

查看log获取commit id,然后选择要回退的版本,如果选择了--hard之后后悔了,可采用:

bash 复制代码
git reflog	#记录本地每一次提交命令

回退为什么快:

指向修改master指向的对象(commit id)即可

6. 撤销修改

工作区 暂存区 版本库 解决方法
add code 1.手动撤销(容易出错、费时间) 2.git checkout -- [file_name]
add code add code git reset HEAD
add code add code add code 前提commit之后没有push git reset --hard HEAD^

7 .删除版本库文件

bash 复制代码
git rm file_name

普通的删除:

bash 复制代码
rm file_name
git add file_name -A
git commit -m "message"
相关推荐
程序员yt37 分钟前
双非一本电子信息专业自学嵌入式,学完 Linux 后咋走?单片机 & FreeRTOS 要补吗?
linux·运维·单片机
安於宿命5 小时前
【Linux】进程间通信——进程池
linux·c++
新兴ICT项目支撑6 小时前
天翼云910B部署DeepSeek蒸馏70B LLaMA模型实践总结
linux·运维·服务器·910b·天翼云·deepseek r1
Spike()8 小时前
HaProxy源码安装(Rocky8)
linux·负载均衡
网硕互联的小客服8 小时前
如何提高网站在百度中的权重?
linux·运维·服务器·windows·安全
守望时空339 小时前
Linux内核升级指南
linux·操作系统
Aphelios38010 小时前
Linux 下 VIM 编辑器学习记录:从基础到进阶(上)
java·linux·编辑器·vim
chde2Wang10 小时前
yum下载报错Could not resolve host: mirrorlist.centos.org; Unknown error
linux·运维·centos
zyx没烦恼11 小时前
Linux 进程控制(进程创建,进程等待)
linux·运维·服务器
linux开发之路11 小时前
C++Linux进阶项目分析-仿写Redis之Qedis
linux·c++·redis·多线程·后端开发