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"
相关推荐
Linux技术芯16 分钟前
#Linux内存管理# 在系统启动时,ARM Linux内核如何知道系统中有多大的内存空间?
linux
the_nov18 分钟前
9.进程信号
linux·c++
小关12339 分钟前
嵌入式Linux驱动—— 1 GPIO配置
linux
用手码出世界1 小时前
【Linux】进程间通信、匿名管道、进程池
linux·运维·服务器
小镇青年达师傅1 小时前
条件锁存在的意义:用生活中的例子秒懂线程间的"暗号系统"
linux·嵌入式·多线程·互斥锁·系统编程·条件锁
想拿高薪的韭菜1 小时前
操作系统高频(六)linux内核
linux·操作系统
HHONGQI1231 小时前
Linux 基础入门操作 前言 linux操作指令介绍
linux·运维·服务器
电星托马斯1 小时前
Linux如何设置bash为默认shell
linux·运维·服务器·笔记·程序人生·bash·个人开发
矛取矛求2 小时前
VMware 安装 Ubuntu 全流程实战指南:从零搭建到深度优化
linux·运维·ubuntu
企鹅侠客2 小时前
CentOS系统安装详细教程
linux·运维·centos