git的基本命令操作超详细解析教程

news2024/11/19 5:27:13

Git基础教学

    • 1、初始化配置
    • 2、初始化仓库
    • 3、工作区域和文件状态
    • 4、添加和提交文件
    • 5、git reset 回退版本
    • 6、git diff查看差异
    • 7、删除文件git rm
    • 8、.gitignore
    • 9、本地文件提交到远程仓库
    • 10、分支基础

Git:一个开源的分布式版本控制系统,它可以在本地和远程仓库之间管理源代码和文档的版本。推荐有Linux基本命令的基础学习更佳,学起来不会枯燥、乏味。

1、初始化配置

Git安装网址
查看Git版本,检测是否安装成功

git --version

配置用户名和邮箱,保存用户名和密码,不用每一次都输入

git config --global user.name "Deng ZJ"
git config --global user.email Deng@gmail.com
git config --global credentia.helper store

查看配置信息

git config --global --list

结果如下
在这里插入图片描述

2、初始化仓库

创建仓库一般有两种方式
1、本地直接创建一个仓库
2、远程服务器上克隆一个存在的仓库

2-1 首先创建一个文件目录,切换文件路径

mkdir learn-git
cd learn-git

在本地文件目录learn-git中执行命令 git init,将这个目录变成 Git 仓库。系统命令窗口回显已经初始化了一个空的仓库,且路径行出现一个master分支

git init

在这里插入图片描述
输入 ls -a,即查看当前目录下的文件(包括带.的隐藏文件),-a参数:显示隐藏文件
其中.git隐藏文件里是get仓库的组成部分,不要随意增删改查
在这里插入图片描述
删除仓库,master标志也会消失

rm -rf .git

在这里插入图片描述
2-2 新建仓库,取名为my-repo的仓库,就会在my-repo文件夹下生成仓库

git init my-repo

进入my-repo仓库

cd my-repo

2-3 Github远程使用git clone命令获取仓库

git clone https://github.com/geekhall-laoyang/remote-repo.git

在这里插入图片描述

如何找到地址,如下图所示
在这里插入图片描述
2-4 修改分支名master方法
C:\Users\Administrator找到.gitconfig文件,打开后添加下面两行指令即可
在这里插入图片描述

[init]
	defaultBranch = main

3、工作区域和文件状态

工作区域分为:工作区暂存区本地仓库
工作区:本地计算机上存储项目代码的目录,所有文件都可以进行修改和编辑
暂存区(也称为索引区): Git 用于存储将要提交到本地仓库的修改的地方,看作是一个缓冲区,用于暂时存储修改。
本地仓库:是指 Git 存储项目历史记录的地方,它保存了项目的每一次提交,每个提交都包含了一个快照和提交信息。本地仓库是工作区和暂存区的最终目的地,是 Git 进行版本控制的核心
文件的三种状态已修改(modified),已暂存(staged),已提交(committed)

在这里插入图片描述在这里插入图片描述
文件状态如下图所示:
在这里插入图片描述

4、添加和提交文件

简洁版看结尾处
4-1 由于之前创建了一个仓库,现在来创建一个新的文件file1.txt,并输入hello world

echo "hello world" > file1.txt

查看文件内容

cat file1.txt

在这里插入图片描述
查看仓库的状态

git status

在这里插入图片描述

添加到暂存区

git add file1.txt

在这里插入图片描述
提交文件,只会提交暂存区的文件
再新创建一个文件file2.txt,进行提交文件时,只提交暂存区的file1.txt, ,-m参数:提交信息

 git commit -m "第一次提交"

在这里插入图片描述
4-2 通过通配符*来add添加多个文件

git add *.txt

在这里插入图片描述
4-3 添加当前文件夹的所有文件(用. 表示)到暂存区

git add .

提交文件,不带m参数就会进入vim文件编辑器(不会使用需学习Linux基础知识)界面,首行编辑第二次提交即可,vim的使用方法自行查阅
进入界面,先输入i进入编辑界面,编辑文字这是第二次提交后,按Esc退出输入模式。进入命令模式,界面输入:wq即可

git commit

在这里插入图片描述
查看提交历史记录

git log

在这里插入图片描述
在这里插入图片描述

总结

git status查看仓库的状态
git add添加到暂存区
通配符添加多个以.txt结尾的文件 git add *.txt
添加当前目录下的所有文件 git add .
git commit提交
只提交暂存区的文件,不会提交工作区的
git log查看仓库提交历史记录
添加--oneline参数可查看简洁的历史记录
git commit -a -m “输入信息”一次性完成添加和暂存

5、git reset 回退版本

三个参数 softhardmixed

工作区内容暂存区内容
git reset –soft保留保留
git reset –hard清空清空
git reset –mixed(默认参数)保留清空

创建一个名为repo的仓库,创建三个文件,并分别添加提交共三次,并使用git log --oneline查看提交简洁记录
在这里插入图片描述在这里插入图片描述

依次复制repo创建三个仓库

cp -rf repo repo-soft
cp -rf repo repo-hard
cp -rf repo repo-mixed

进入命名为soft的仓库,进行soft方式的版本回退
在这里插入图片描述
5-1 --soft 后面接回退的版本号,那么我们回退到第二次提交的版本号

 git reset --soft fe6c3eb

在这里插入图片描述
此时分别查看工作区和暂存区的情况,应当都是被保留的
在这里插入图片描述
5-2 --hard参数 HARD^ 表示回退到上一个版本

git reset --hard 版本号

或者

git reset -hard HEAD^

在这里插入图片描述
此时分别查看工作区和暂存区的情况,file3的文件应当都是被清空的
在这里插入图片描述
5-3 --mixed 默认参数可以不加
回退到上一个版本

git reset --mixed HEAD^

此时工作区file3文件保留和暂存区文件清空
在这里插入图片描述

总结

工作区内容暂存区内容
git reset –soft保留保留
git reset –hard清空清空
git reset –mixed(默认参数)保留清空

6、git diff查看差异

查看工作区、暂存区、本地仓库之间的差异,查看不同版本之间的差异或者不同分支之间。
使用上一节创建的repo仓库,并里面vim命令修改file3.txt文件内容333变为4444后,使用命令查看差异
不加参数,默认比较工作区和暂存区之间的差异

git diff

在这里插入图片描述
工作区和版本库之间的差异

git diff HEAD

暂存区和版本库之间的差异

git diff --cached

比较版本差异,只需要加入版本的ID即可

 git diff 9ff62d0 e27c26b

HEAD标志指向分支的最新节点,比较当前版本HEAD和上一个版本HEAD^(HEAD~)之间的差异

git diff HEAD^ HEAD
git diff HEAD~ HEAD

7、删除文件git rm

可以一次性删除工作区和暂存区的相同文件

git rm file2.txt

在这里插入图片描述
删除版本库的文件

git rm --cached 文件名

删除的文件需要提交到版本库中,这样版本库中的文件才能被删除

git commit -m "delete file"

8、.gitignore

需要适当的忽略一些临时缓存文件或者敏感文件添加到版本库中

克隆仓库

git clone 克隆地址

推送更新内容到远程仓库

git push

拉取更新内容到本地仓库,并进行一次合并操作

git pull

只拉去修改的内容到本地仓库

git fetch

9、本地文件提交到远程仓库

首先进入github官网,点击右上角New按钮,新建一个仓库。
在这里插入图片描述
这里我以将本地的coco数据集文件上传到github为例进行演示

1、创建一个本地仓库,并将文件移动到本地仓库中
在这里插入图片描述
在这里插入图片描述
2、提交到本地仓库

git add .
git commit -m "first commit"
git log

在这里插入图片描述

3、上传到远程仓库

git remote add origin git@github.com:DengZhengJ/coco-repo.git
git branch -M main
git push -u origin main

显示最后一行,即上传完成。刷新github界面就可以看见上传的本地文件
在这里插入图片描述
在这里插入图片描述

10、分支基础

在这里插入图片描述

利用GitKraken图形化工具展现,可到git官网下载。
首先在main创建main1、2、3分别提交三次,在dev分支中创建dev1、dev2分别提交二次,然后在main中创建main4、main5提交二次。
在这里插入图片描述
查看当前仓库的所有分支

git branch

创建一个名为dev的新分支

git branch dev

切换到新的分支,两个都可

//git checkout dev
git switch dev

在这里插入图片描述

未合并,所以main分支还是原来的内容
在这里插入图片描述
在这里插入图片描述
将不同的分支进行合并到当前分支,在master分支中合并dev分支

git merge dev

在这里插入图片描述
当一个分支已经被合并到其他分支时,就可以删除已经合并的分支,没有合并的用-D参数强制删除

git branch -d dev
查看分支列表git branch
创建分支git branch 分支名
切换分支git switch 分支名
合并分支git merge 分支名
删除分支git branch -d 分支名(已合并)
git branch -D 分支名(未合并)

Rebase操作
在这里插入图片描述

以上笔记借鉴于b站视频,以备复习使用。参考:bilibili 网站——【GeekHour】一小时Git教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1276059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全应急响应-Server2228(环境+解析)

网络安全应急响应 任务环境说明: 服务器场景:Server2228(开放链接)用户名:root,密码:p@ssw0rd123

2023第十二届“认证杯”数学中国数学建模国际赛赛题A完整解析

A题完整题解 写在前面假设数据预处理 问题一1 基于自适应ARIMA-BP神经网络模型的影响因素预测1.1 ARIMA模型的建立1.2 BP神经网络模型的建立1.3 基于GABP神经网络的预测模型构建1.4 自适应混合ARIMA-BP神经网络模型的建立1.5 模型求解 代码Q1_1.mQ1_2.m 完整代码与论文获取 写在…

Android 应用程序无响应定位ANR原因

废话不多说,直接上方案: 第一步: 执行adb命令 adb bugreport /Users/mac/Desktop/anr 解压后FS/data/anr下就会有相关anr文件 /Users/mac/Desktop/anr 是电脑存储文件的路径,可以随便定义,这个没有影响。我的电脑是…

RHCSA学习笔记(RHEL8) - Part2.RH134

Chapter Ⅰ 提高命令行生产率 SHELL脚本 #/bin/bash声明使用的shell翻译器 for循环 for VAR in LIST doCOMMAND1COMMAND2 done实验1:显示host1-5 #! /bin/bash for host in host{1..5} doecho $host done实验2:显示包含kernel的软件包安装时间 #! /…

【微服务 SpringCloudAlibaba】实用篇 · Gateway服务网关

微服务(8) 文章目录 微服务(8)1. 为什么需要网关2. gateway快速入门1)创建gateway服务,引入依赖2)编写启动类3)编写基础配置和路由规则4)重启测试5)网关路由的…

linux 内核工作队列技术原理

首先介绍一下工作队列使用的术语。 work:工作,也称为工作项。work queue:工作队列,就是工作的集合, work queue 和 work 是一对多的关系。worker: 工人, 一个工人对应一个内核线程,…

助力android面试2024【面试题合集】

转眼间,2023年快过完了。今年作为口罩开放的第一年大家的日子都过的十分艰难,那么想必找工作也不好找,在我们android开发这一行业非常的卷,在各行各业中尤为突出。android虽然不好过,但不能不吃饭吧。卷归卷但是还得干…

什么是美颜SDK?市面常用直播美颜SDK的技术比较

直播平台美颜技术其中的核心就是美颜SDK。本文将深入探讨什么是美颜SDK,以及市面上常用的直播美颜SDK的技术比较。 一、美颜SDK简介 美颜SDK,使开发者能够在其应用或平台中集成美颜特效。对于直播平台而言,美颜SDK的引入旨在提供实时、高质…

LabVIEW在调用image.cpp或drawmgr.cpp因为DAbort而崩溃

LabVIEW在调用image.cpp或drawmgr.cpp因为DAbort而崩溃 出现下列问题,如何解决? 1. LabVIEW 程序因image.cpp或drawmgr.cpp中的错误而崩溃 2. 正在通过cRIO-9034运行独立的LabVIEW应用程序,但它因drawmgr.cpp中的错误而崩溃 …

利用reddit的api进行爬虫

1 介绍 Reddit是一个社交新闻聚合网站,用户可以发布、评价和讨论各种话题。Reddit的内容涵盖了广泛的主题,可以从中获取大量的文本数据进行情绪分析。 2 注册 2.1 注册reddit 你需要先注册一个reddit的账号。 2.2 注册api https://www.reddit.com/…

微服务架构:解析分布式系统的演进

目录 微服务是什么? 微服务的优势 微服务的挑战 应对微服务挑战的方法 结论 在当今快速发展的软件开发领域,微服务架构成为一种备受瞩目的设计理念,被广泛应用于构建灵活、可扩展的分布式系统。本文将深入探讨什么是微服务,为…

LeetCode困难题(分发糖果--接雨水)

分发糖果 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果,计算并返回…

线性回归既是一种数据挖掘与建模算法,也是统计学领域、计量经济学领域的常用学术建模方法,有何不同?

一.线性回归的基本形式 线性回归既是一种数据挖掘与建模算法,也是统计学领域、计量经济学领域的常用学术建模方法。在数据挖掘与建模领域,线性回归算法是一种较为基础的机器学习算法,其基本思想是将响应变量(因变量、被解释变量&…

MySQL安全相关——TDE和数据脱敏功能介绍

MySQL作为一款广泛使用的开源关系型数据库管理系统(RDBMS),其安全性一直是开发者和企业关注的重点。在MySQL中,有一些与安全相关的功能,其中包括Transparent Data Encryption(TDE)和数据脱敏。本文将对这些功能进行介绍。 一、Transparent Da…

使用 kubeadm 部署 Kubernetes 集群(二)k8s环境安装

一、安装containerd 安装 k8s 有几种方式: 1、 Kubeadm 2、 二进制 这两个是 k8s 官网提供的方式,也是生产环境用的还可以借助第三方平:rancher、kubesphere 都可以装 k8s 这里使用 kubeadm 1.安装 containerd 在 Kubernetes 集群中&#…

CSS——基础选择器、文字控制属性

1、CSS定义 层叠样式表(Cascading Style Sheets,缩写为CSS),是一种 样式表 语言,用来描述 HTML 文档的呈现(美化内容)。 书写位置:title 标签下方添加style双标签,styl…

externalTrafficPolicy 再探

一 externalTrafficPolicy 属性再探 一次网络不通"争吵"引发的思考 K8s中的external-traffic-policy是什么? 说明: 阿里云的 EDAS 和ACK的默认行为不一样 Kubernetes(二十三)Service(二)会话保持和获取客户端的ip 访问 externalTrafficPolicy 为 L…

二分查找与搜索树高频问题

关卡名 逢试必考的二分查找 我会了✔️ 内容 1.山脉数组的峰顶索引 ✔️ 2.旋转数字的最小数字 ✔️ 3.寻找缺失数字 ✔️ 4.优化求平方根 ✔️ 5.中序与搜索树原理 ✔️ 6.二叉搜索树中搜索特定值 ✔️ 7.验证二叉搜索树 ✔️ 基于二分查找思想,可以拓展出很…

IntelliJ IDEA 之初体验(上)

IntelliJ IDEA 是一款由 JetBrains 公司开发的强大的集成开发环境(IDE),专注于 Java 开发,同时支持多种其他编程语言。本文将详细介绍 IntelliJ IDEA 的安装过程以及一些常用的基本操作。 第一步:下载与安装 IntelliJ…