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"
相关推荐
Lary_Rock27 分钟前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面2 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq3 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮4 小时前
Linux 使用中的问题
linux·运维
dsywws5 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零6 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
晓理紫6 小时前
使用git lfs向huggingface提交较大的数据或者权重
git
小林熬夜学编程7 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
我不是程序猿儿7 小时前
【GIT】sourceTree的“当前分支“,“合并分支“与“检出分支的区别
git
程思扬8 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节