B站尚硅谷git学习记录

news2024/12/28 3:11:12

文章目录

  • 一、Git概述
    • 1.何为版本控制
    • 2.为什么需要版本控制
    • 3.版本控制工具
  • 二、Git常用命令
    • 1.设置用户签名
      • 1.1 基本语法
      • 1.2 案例实操
    • 2.初始化本地库
      • 2.1 基本语法
      • 2.2 案例实操
    • 3.查看本地库状态
      • 3.1基本语法
      • 3.2 案例实操
        • (1)首次查看(工作区没有文件)
        • (2)新增文件
        • (3)再次查看(检测到未追踪文件)
    • 4 添加暂存区
      • 4.1 将工作区的文件添加到暂存区
        • (1)基本语法
        • (2)案例实操
      • 4.2 查看状态(检测到暂存区有新文件)
    • 5 提交本地库
      • 5.1 暂存区文件提交到本地库
        • (1)基本语法
        • (2)案例实操
      • 5.2 查看状态(没有文件需要提交)
    • 6 修改文件(hello.txt)
      • 6.1 查看状态(检测到工作区有文件被修改)
      • 6.2 将修改的文件再次添加暂存区
      • 6.3 查看状态(工作区的修改添加到了暂存区)
      • 6.4 将暂存区文件提交到本地库
    • 7 历史版本
      • 7.1 查看历史版本
        • (1)基本语法
        • (2)案例实操
      • 7.2 版本穿梭
        • (1)基本语法
        • (2)案例实操
  • 三、Git客户端便捷操作
    • 1. 安装部署
    • 2. 基础操作
      • 2.1 设置个人信息
      • 2.2 创建新的Git仓库
      • 2.3 提交不同版本
    • 3. 连接GitHub远程仓库

一、Git概述

Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。

Git易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion(svn)、CVS、Perforce和ClearCase等版本控制工具。

1.何为版本控制

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。

版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。

2.为什么需要版本控制

个人开发过渡到团队协作。

3.版本控制工具

  • 集中式版本控制工具

CVS、SVN(Subversion)、VSS……

集中化的版本控制系统诸如 CVS、SVN等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。

这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。

事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

  • 分布式版本控制工具

Git、Mercurial、Bazaar、Darcs……

像 Git这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。

分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:

  1. 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)

  2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

二、Git常用命令

命令名称作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户邮箱
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m “日志信息” 文件名提交到本地库
git reflog查看历史记录
git reset --hard 版本号版本穿梭

1.设置用户签名

1.1 基本语法

git config --global user.name 用户名

git config --global user.email 邮箱

1.2 案例实操

全局范围的签名设置:

git config --global user.name yhm
git config --global user.email yaohm7788@163.com
git config --list # 查看全局配置
cat ~/.gitconfig  # cat linux中查看文本的命令  ~ 家 [你当前用户的家]/ .gitconfig

说明:

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码。

※注意:这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任何关系。

2.初始化本地库

2.1 基本语法

git init

2.2 案例实操

在这里插入图片描述
结果查看
在这里插入图片描述

3.查看本地库状态

3.1基本语法

git status

3.2 案例实操

(1)首次查看(工作区没有文件)

在这里插入图片描述

(2)新增文件

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

(3)再次查看(检测到未追踪文件)

在这里插入图片描述

4 添加暂存区

4.1 将工作区的文件添加到暂存区

(1)基本语法

git add 文件名

(2)案例实操

在这里插入图片描述

4.2 查看状态(检测到暂存区有新文件)

在这里插入图片描述

5 提交本地库

5.1 暂存区文件提交到本地库

(1)基本语法

git commit -m “日志信息” 文件名

(2)案例实操

在这里插入图片描述

5.2 查看状态(没有文件需要提交)

在这里插入图片描述

6 修改文件(hello.txt)

6.1 查看状态(检测到工作区有文件被修改)

在这里插入图片描述

6.2 将修改的文件再次添加暂存区

在这里插入图片描述

6.3 查看状态(工作区的修改添加到了暂存区)

在这里插入图片描述

6.4 将暂存区文件提交到本地库

在这里插入图片描述

7 历史版本

7.1 查看历史版本

(1)基本语法

git reflog 查看版本信息

git reflog -n 数量

git log 查看版本详细信息

(2)案例实操

在这里插入图片描述

7.2 版本穿梭

(1)基本语法

git reset --hard 版本号

(2)案例实操

–首先查看当前的历史记录,可以看到当前是在48f4e22这个版本
在这里插入图片描述
–切换到之前版本,8ca80d7版本,也就是我们第一次提交的版本
在这里插入图片描述
–切换完毕之后再查看历史记录,当前成功切换到了8ca80d7版本
在这里插入图片描述
–然后查看文件hello.txt,发现文件内容已经变化
在这里插入图片描述
Git切换版本,底层其实是移动的HEAD指针。

三、Git客户端便捷操作

1. 安装部署

使用命令行操作git相对而言是非常不方便的,查看内容也不是很直观,所有官方推荐使用Git的GUI 客户端来完成页面化操作。

https://git-scm.com/downloads/guis

2. 基础操作

2.1 设置个人信息

在这里插入图片描述

2.2 创建新的Git仓库

在这里插入图片描述

2.3 提交不同版本

新创建文件1.txt,并写入信息。之后可以在GitGui上面进行提交。
在这里插入图片描述
多次提交的版本可以直接在History页面查看区别,不需要再使用reset命令。
在这里插入图片描述

3. 连接GitHub远程仓库

登录自己注册的账号
在这里插入图片描述
点击Publish可以将当前项目创建到GitHub上面。
在这里插入图片描述
之后修改本地文件,就可以先推送到本地git之后再远程同步到GitHub仓库中。

(1)选择对应的分支
在这里插入图片描述
(2)点击推送
在这里插入图片描述

(3)也可以先在GitHub上面创建远程仓库,之后再拉取到本地保持统一。
在这里插入图片描述
在这里插入图片描述
(4)拉取远程仓库到本地
在这里插入图片描述

点击克隆即可,连接完成远程仓库和本地Git之后,在本地修改文件提交Git之后再push推送即可完成同步。
在这里插入图片描述

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

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

相关文章

解决“nothing added to commit but untracked files present“

在执行git commit 命令时错误信息显示系统无法打开指定的设备或文件 ,说明项目的文件没有“add”,需要先执行git add 文件名,然后再执行git commit -m “xxx” 直接先git add 文件名添加到缓冲区,再git commit -m “xxx”提交 gi…

[docker] docker 安全知识 - 镜像,port registry

[docker] docker 安全知识 - 镜像,port & registry 这是第一篇,安全部分还有一篇笔记就记完了 说实话,看完了要学的这些东西,感觉大多数安全问题都可以通过验证登录的合法性去解决 镜像 镜像的问题还是比较多的&#xff0…

数学建模--LaTeX的基本使用

目录 1.回顾 2.设置这个页眉和页脚 3.对于字体的相关设置 4.对于这个分级标题的设置 5.列表的使用 6.插入图片 1.回顾 (1)昨天我们了解到了这个latex的使用基本常识,以及这个宏包的概念,区域的划分,不同的代码代…

05.配置tomcat管理功能

认证失败&#xff0c;需要配置tomcat-users.xml文件 配置用户信息 [rootweb01 /application/tomcat/conf\]# tail tomcat-users.xml <role rolename"admin-gui"/> <role rolename"host-gui"/><role rolename"mana…

图解 Transformer

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

React(4): 使用 unocss + react-ts + vite 开发

React(4): 使用 unocss react ts 开发 之前一直使用 css-module 开发页面&#xff0c;觉得太过繁琐&#xff0c;看到 unocss , 眼前一亮&#xff0c;觉得可以拿来快速开发页面&#xff08;偷懒&#xff09; vite官网 unocss tailwindcss 说明 该方法需要对 tailwindcss 有一…

多态(难的起飞)

注意 virtual关键字&#xff1a; 1、可以修饰原函数&#xff0c;为了完成虚函数的重写&#xff0c;满足多态的条件之一 2、可以菱形继承中&#xff0c;去完成虚继承&#xff0c;解决数据冗余和二义性 两个地方使用了同一个关键字&#xff0c;但是它们互相一点关系都没有 虚函…

c++ 将指针转换为 void* 后,转换为怎么判断原指针类型?

当将指针转换为void后&#xff0c;擦除了指针所指向对象的类型信息&#xff0c;因此无法通过void指针来判断原始指针的类型。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给个…

每日一题 <leetcode--2326.螺旋矩阵>

https://leetcode.cn/problems/spiral-matrix-iv/ 函数中给出的int* returnSize和int** returnColumnSizes是需要我们返回数值的&#xff0c;这点需要注意。其中int** returnColumnSizes 是需要额外开辟一块空间。 这道题我们首先需要malloc出一快空间来把链表存放在数组中&…

指纹识别经典图书、开源算法库、开源数据库

目录 1. 指纹识别书籍 1.1《精通Visual C指纹模式识别系统算法及实现》 1.2《Handbook of Fingerprint Recognition》 2. 指纹识别开源算法库 2.1 Hands on Fingerprint Recognition with OpenCV and Python 2.2 NIST Biometric Image Software (NBIS) 3. 指纹识别开源数…

QQ名片满级会员装x助手HTML源码

源码介绍 QQ名片满级会员展示生成HTML源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;保存素材去选择QQ个性名片-选择大图模板-把图上传照片墙即可 源码效果 源码下载 蓝奏云&#xff1a;http…

Golang | Leetcode Golang题解之第116题填充每个节点的下一个右侧节点指针

题目&#xff1a; 题解&#xff1a; func connect(root *Node) *Node {if root nil {return root}// 每次循环从该层的最左侧节点开始for leftmost : root; leftmost.Left ! nil; leftmost leftmost.Left {// 通过 Next 遍历这一层节点&#xff0c;为下一层的节点更新 Next …

VS Code开发Python配置和使用教程

在Visual Studio Code (VSCode) 中配置和使用Python进行开发是一个相对直接的过程&#xff0c;下面是一份简明的指南&#xff0c;帮助你从零开始设置环境&#xff1a; 1. 安装Visual Studio Code 首先&#xff0c;确保你已经安装了Visual Studio Code。如果还没有安装&#x…

入门编程,一定要从C语言开始吗?

入门编程并不一定非得从C语言开始。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给个评论222&#xff0c;私信22&#xff0c;我在后台发给你。 C语言在过去是一种常见的入门语…

《python编程从入门到实践》day40

# 昨日知识点回顾 编辑条目及创建用户账户 暂没能解决bug&#xff1a; The view learning_logs.views.edit_entry didnt return an HttpResponse object. It returned None instead.# 今日知识点学习 19.2.5 注销 提供让用户注销的途径 1.在base.html中添加注销链接 …

基于OrangePi AIpro的后端服务器构建

一. OrangePi AIpro简介 1.1 OrangePi AIpro外观 1.2 OrangePi AIpro配置 OrangePi AIpro(8T)采用昇腾AI技术路线&#xff0c;具体为4核64位处理器AI处理器&#xff0c;集成图形处理器&#xff0c;支持8TOPS AI算力&#xff0c;拥有8GB/16GB LPDDR4X&#xff0c;可以外接32GB…

边境牧羊犬优化算法,原理详解,MATLAB代码免费获取

边境牧羊犬优化算法&#xff08;Border Collie Optimization&#xff0c;BCO&#xff09;是一种受自然启发的群智能优化算法。该算法是通过模仿边境牧羊犬的放牧风格来开发的。本文成功地采用了边境牧羊犬从正面和侧面的独特放牧风格。在这个算法中&#xff0c;整个种群被分成两…

实现 Vue 标签页切换效果的组件开发

在本次开发中&#xff0c;我们将实现一个 Vue 组件&#xff0c;用于展示和切换标签页。 背景有移动动画效果 该组件将具有以下功能&#xff1a; 标签页左右滚动点击标签页切换内容关闭指定标签页支持多种标签页风格 以下是实现该组件的具体步骤&#xff1a; 创建 Vue 组件…

esp8266的rtos和nonos区别

https://bbs.espressif.com/viewtopic.php?t75242#p100294 https://blog.csdn.net/ydogg/article/details/72598752

Function Calling学习

Function Calling第一篇 Agent&#xff1a;AI 主动提要求Function Calling&#xff1a;AI 要求执行某个函数场景举例&#xff1a;明天上班是否要带伞&#xff1f;AI反过来问你&#xff0c;明天天气怎么样&#xff1f; Function Calling 的基本流程 Function Calling 完整的官…