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

Git基础教学

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

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

在这里插入图片描述

如何找到地址,如下图所示
在这里插入图片描述

若连接克隆超时,可选用SSH地址,但需要事先把本机生成的SSH公钥配置到项目中SSH配置讲解
在这里插入图片描述

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

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教程

应用1、本地文件提交到远程仓库

首先进入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界面就可以看见上传的本地文件
在这里插入图片描述
在这里插入图片描述
4 若这个仓库并不是初始化的,而是你自己在github上克隆下来进行修改后想上传到自己的github上时,输入git remote add origin git@github.com:xxxxxx.git时,显示以下错误error: remote origin already exists,是因为一开始代码已经关联了远程仓库。
在这里插入图片描述
解决办法,删除之前关联的远程仓库即可

git remote rm origin

重新输入上面的3、提交到远程仓库的指令,即可完成

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

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

相关文章

AIGC创作ChatGPT源码+AI绘画(Midjourney绘画)+支持GPT-4-Turbo模型+DALL-E3文生图

一、AI创作系统 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI…

嵌入式硬件和软件哪个好?

嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧! 嵌入式硬件开发工程师主要编写嵌入式系统硬件总体方案和详细方案,要求理解嵌入式系统架构,有一…

智能优化算法应用:基于世界杯算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于世界杯算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于世界杯算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.世界杯算法4.实验参数设定5.算法结果6.参考文献7.…

java学习part36set

157-集合框架-Set不同实现类的对比及Set无序性、不可重复性的剖析_哔哩哔哩_bilibili 1.Set 加入集合的时候会先调用重写的hash方法计算hash值,不一样就加入。 如果hash一样且equals也是true就是重复 ,调equals是为了保险,保证排除hash碰撞…

MySQL数据误删除恢复

1.1 问题简述 开发反馈误删除了部分业务数据,需要恢复数据。 这里采用binlog2sql工具进行数据回滚。 1.2 环境 CentOS Linux release 7.4.1708 (Core) mysql Ver 8.0.21 for Linux on x86_64 (MySQL Community Server - GPL) 1.3 数据库开启binlog 因为数据库serve…

Windows环境下RocketMQ的安装及配置

目录 1.环境准备2.下载RocketMQ3.配置RocketMQ环境变量4.启动RecoketMQ4.1启动 name server4.2 启动 broker 5、启动报错问题解决5.1 java_HOME变量找不到5.2 启动闪退问题 1.环境准备 JDK和Maven需要先安装好。 RocketMQ是用Java语言写的,所以需要JDK的支持。 后面…

Mac电脑vm虚拟机 VMware Fusion Pro中文 for mac

VMware Fusion Pro是一款功能强大的虚拟机软件,适用于需要在Mac电脑上运行其他操作系统的用户。它具有广泛的支持、快速稳定的特点以及多种高级功能,可以满足用户的各种需求和场景。 多操作系统支持:VMware Fusion Pro允许在Mac电脑上运行多…

Wireshark中的TCP协议包分析

Wireshark可以跟踪网络协议的通讯过程,本节通过TCP协议,在了解Wireshark使用的基础上,重温TCP协议的通讯过程。 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传…

人工智能-机器翻译:技术发展与代码实战

在本文中,我们深入探讨了机器翻译的历史、核心技术、特别是神经机器翻译(NMT)的发展,分析了模型的优化、挑战及其在不同领域的应用案例。同时,我们还提出了对未来机器翻译技术发展的展望和潜在的社会影响。 关注TechLe…

Shopee买家通系统自动下单更方便

Shopee购物平台的买家通系统为用户提供了一种便捷的自动下单方式,通过这一系统,用户可以轻松实现在虾皮平台购买商品的自动化操作。下面将介绍具体的操作流程,确保用户可以顺利完成整个购物流程。 首先,用户需要准备一个可用的虾皮…

Leetcode—205.同构字符串【简单】

2023每日刷题&#xff08;五十&#xff09; Leetcode—205.同构字符串 算法思想 参考自k神思路 实现代码 class Solution { public:unordered_map<char, char> s2t, t2s;bool isIsomorphic(string s, string t) {int n s.size();for(int i 0; i < n; i) {char …

Django宠物之家平台

摘 要 随着互联网的快速发展&#xff0c;利用网络的管理系统也逐渐发展起来。在线管理模式快速融入了众多用户的眼球&#xff0c;从而产生了各种各样的平台管理系统。 关于本django宠物的家庭平台管理系统的设计来说&#xff0c;系统开发主要采纳Python技术、B/S框架&#xff…

四川云汇优想:抖音直播等级怎么升级?

抖音直播&#xff0c;作为当前最热门的社交平台之一&#xff0c;其等级体系一直备受用户关注。如何在抖音直播中迅速提升等级&#xff0c;成为众多用户探讨的话题。在这篇文章中&#xff0c;我们将深入探讨抖音直播等级的升级机制、好处以及一些实用的技巧&#xff0c;助你在抖…

拼多多市值大于淘宝

一分钟速览新闻点&#xff01; 拼多多市值一夜大涨 2000 亿&#xff0c;市值逼近阿里 华为推出员工转岗新公司补偿方案&#xff0c;已邀请 4 家智选车伙伴入股 雷军个人向武大捐赠 13 亿元现金&#xff0c;创全国高校单笔个人现金捐赠纪录 阿里云北上深等地访问异常&#xf…

融云 CEO 董晗获评甲子光年「2023 中国数字经济创新人物」

&#xff08;全网都在找的《社交泛娱乐出海作战地图》&#xff0c;点击获取&#x1f446;&#xff09; 11 月 30 日-12 月 1 日&#xff0c;甲子光年“甲子引力年终盛典”在北京举办&#xff0c;以“致追风赶月的你”为主题&#xff0c;深刻回顾了 2023 年国内外的科技发展历程…

疑难杂症 之 关闭模态窗口之后刷新父窗口

疑难杂症 之 关闭模态窗口之后刷新父窗口 1. 模态窗口 与 非模态窗口2. 弹出模态窗口2.1 实现效果2.2 实现代码2.2.1 刷新父窗口2.2.2 完整代码 2.3 参考 3. 其他刷新父窗口&#xff08;模态窗口页面与父窗口不在同一页面&#xff09;3.1 实现代码3.1.1 核心代码3.1.2 多层模态…

钉钉聊天审计软件有哪些

钉钉在企业中的广泛应用&#xff0c;聊天审计软件也日益受到关注。这类软件主要针对企业微信、钉钉等即时通讯工具&#xff0c;对其中的聊天记录进行审计&#xff0c;以便企业能够更好地管理员工的在线行为&#xff0c;并保障信息安全。 一、聊天审计软件的作用 1、监管员工行…

打表技巧——买苹果

与其明天开始&#xff0c;不如现在行动&#xff01; 文章目录 买苹果1.1 题目描述1.2 解决思路1.3 代码实现 &#x1f48e;总结 买苹果 1.1 题目描述 小虎去买苹果&#xff0c;商店只提供两种类型的塑料袋&#xff0c;每种类型都有任意数量 1)能装下6个苹果的袋子 2)能装下8个…

服务器巡检表

《服务器巡检表》检查项&#xff1a; 1、系统资源 2、K8S集群 3、Nginx 4、JAVA应用 5、RabbitMQ 6、Redis 7、PostgreSQL 8、Elasticsearch 9、ELK日志系统 获取软件开发全套资料进主页。

理解js中原型链的封装继承多态

前言 面向对象有三大特性:封装继承多态。 不过,js和java的封装继承多态是不一样的,我和从事java开发的朋友有过一次对话(抬杠 !--)。 我说:javascript也是面向对象语言, 他说:不对吧,js不是面向对象吧。 我说:是的,官方说的就是面向对象语言。 他说:那你知道三大特性吗?…