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"
相关推荐
无足鸟ICT8 小时前
【RHCA+】vmstat命令(监控系统资源)
linux·服务器
闪亮的路灯8 小时前
Linux 安装mqtt服务mosquitto
linux·运维·服务器
HideF8 小时前
nmcli
linux·服务器·网络
qetfw9 小时前
UOS DHCP Relay:跨网段分配与 IP、DNS、网关验证
linux·服务器·网络·tcp/ip·uos
叼烟扛炮11 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
ynchyong11 小时前
Linux 有两个 “版本“
linux·发行版·内核版本
叼烟扛炮11 小时前
Linux 学习笔记(四十四):HTTP 协议解析与极简 Web 服务器实战
linux·服务器·学习
叼烟扛炮11 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
Escalating_xu12 小时前
【Linux 网络编程】DNS 与 ICMP:从域名解析到 ping、traceroute,把“网络通不通”问清楚
linux·网络·php
一枕槐安48714 小时前
大模型限流、重试、超时处理:API 调用健壮性方案
linux·服务器·php·大模型api·指数退避·限流控制·超时预算