【瑞吉外卖】Git部分学习

news2024/11/23 6:38:12

Git简介

Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git仓库来存储和管理这些文件,Git仓库分为两种:

本地仓库:开发人员自己电脑上的Git仓库

远程仓库:远程服务器上的Git仓库

 commit:提交,将本地文件和版本信息保存到本地仓库

push:推送,将本地仓库和版本信息上传到远程仓库

pull:拉取,将远程仓库文件和版本信息下载到本地仓库

Git代码托管服务

Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?

github(地址:https://github.com/),是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名gitHub

码云(地址:https://gitee.com/),是国内的一个代码托管平台,由于服务器在国内,所以相比GitHub,码云速度会更快

GitLab(地址:https://about.gitlab.com),是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

BitBucket(地址:https://bitbucket.org/),是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户

Git常用命令

Git全局设置

当安装Git后首先要做的事情是设置用户名称和email地址,这是非常重要的,因为每次Git提交都会使用该用户信息。

在Git命令行中执行下面命令:

设置用户信息:

git config --global user.name "itcast"

git config --global user.email "hello@itcast.cn"

查看配置信息

git config --list

获取Git仓库

要使用Git对我们的代码进行版本控制,首先需要获得Git仓库

获取Git仓库通常有两种方式:

在本地初始化一个Git仓库(不常用)

从远程仓库克隆(常用)

在本地初始化Git仓库:

1.在任意目录下创建一个空目录(例如repo1)作为我们的本地Git仓库

2.进入这个目录中,点击右键打开Git bash窗口

3.执行命令git init

从远程仓库克隆:

        注意:仓库不能嵌套,从远程仓库克隆不需要git init

git clone [远程Git仓库地址]

工作区、暂存区、版本库 概念

版本库: .git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等

工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码

暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

Git工作区中文件的状态

Git工作区中的文件存在两种状态:

untracked 未跟踪(未被纳入版本控制)

tracked 已跟踪(被纳入版本控制)

1)Unmodified 未修改状态

2)Modified 已修改状态

3)Staged 已暂存状态

注意:这些文件的状态会随着我们执行Git的命令发生变化

本地仓库命令

git status        查看文件状态

git add            将文件的修改加入暂存区

git reset          将暂存区的文件取消暂存或切换到指定版本

git commit      将暂存区的文件修改提交到版本库

git  log           查看日志

以创建文件demo.txt为例:

①创建

 ②添加至暂存区

③查看文件状态

④取消demo.txt的暂存

 ⑤再次查看文件状态

⑥提交文件demo.txt

        注意:必须要先将文件添加至暂存区才能提交

        提交文件语法: git commit -m "描述" 文件名

 ⑦修改文件内容以后再次查看文件状态

        注意:因为文件被修改而没有再次提交所以是红色modified

⑧ 再次提交文件

注意:再次将文件提交至暂存区,可以看见modified变为了绿色

 ⑨查看版本信息

 ⑩切换版本

        语法:git reset --hard 版本号

        注意:切换完版本可以观察文件内容是否对应改变

 远程仓库操作

git remote                查看远程仓库

git remote add        添加远程仓库

git clone                 从远程仓库克隆

git pull                    从远程仓库拉取

git push                  推送到远程仓库

 ①查看远程仓库

        git remote

        git remote -v        查看详细信息

②添加远程仓库

        git remote add <shortname> <url>

        添加远程仓库,运行 git remote add <shortname> <url>添加一个新的远程Git仓库,同时指定一个可以引用的简写

③克隆远程仓库到本地

Git克隆的时该Git仓库服务器上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件

命令:git clone [url]

④推送至远程仓库

一定要先提交到本地仓库,才能推送到远程仓库

语法:git push [remote-name] [branch-name]

⑤从远程仓库拉取

命令:git pull [short-name] [branch-name]

git pull命令的作用是从远程仓库获取最新版本并合并到本地仓库

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories)

解决此问题可以在git pull命令后加入参数 --allow-unrelated-histories

分支操作

分支是Git使用过程中非常重要的概念,使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

同一个仓库可以有多个分支,各个分支相互独立,互不干扰。

通过git init命令创建本地仓库时默认会创建一个master分支。

git branch                        查看分支

git branch [name]            创建分支

git checkout [name]        切换分支

git push [shorName] [name] 推送至远程仓库分支

git merge [name]                  合并分支

①查看分支

git branch        列出所有本地分支

git branch -f     列出所有远程分支

git branch -a    列出所有本地分支和远程分支

②创建新的分支

git branch [name]

③切换分支

④推送至远程仓库

git push [shortName] [name]

⑤合并分支

git merge [name]

合并分支冲突

背景:在master分支上修改demo.txt文件,增添语句“在master下修改文件”

           在fix分支上修改demo.txt文件,增添语句“在fix下修改文件”

          然后在master分支上合并fix分支

产生合并分支冲突:

解决办法:

第一步:打开产生合并冲突的文件:demo.txt

 第二步:手动处理文件

第三步:将处理好的文件提交

注意:手动处理好的文件需要提交,但是单个提交会报错“cannot do partial commit during a merge”,此时只需要在最后加上 -i 参数即可解决

第四步:推送至远程仓库

标签操作

Git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便地切换到标记时的状态。

比较有代表性的是人们会使用这个功能来标记发布节点(v1.0、v1.2等)

git tag                列出已有的标签

git tag [name]    创建标签

git push [shortName] [name]        将标签推送至远程仓库

git checkout -b [branch] [name]    检出标签

①创建标签

②列出已有的标签

③推送标签至远程仓库

④更新内容,再次推送标签

⑤检出标签

检出标签时需要新建一个分支来指向某个标签,检出标签的命令格式:

        git checkout -b [branch] [name]

注意:标签是静态的,相当于快照。打好标签以后,文件的内容就定格了,不会随着后来的push内容而改变。

在IDEA中使用Git

在IDEA中配置Git

在IDEA中使用Git,本质上还是使用本地安装的Git软件,所以需要在IDEA中配置Git

 

获取Git仓库

在IDEA中使用Git获取仓库有两种方式:

本地初始化仓库

从远程仓库克隆

本地初始化仓库:

        点击VCS--->创建Git仓库--->在弹出的路径中选择一个地方创建Git仓库

        VCS是版本控制的意思

从远程仓库克隆:

方法一:VCS--->在GitHub上共享项目

 

 

方法二:Git--->克隆--->输入URL

 

本地仓库操作

将文件加入暂存区

将暂存区的文件提交到版本库

查看日志

将文件加入暂存区:

选中文件--->右键--->Git--->添加

 

将暂存区的文件提交到版本库:

选中文件--->右键--->Git--->提交

输入message,然后点提交即可

 

注意,也可以用快捷键:

√ 是提交,点击√自动加入暂存区并提交

 

查看日志:

点击“显示历史记录”的图标即可查看历史记录

 

远程仓库操作

查看远程仓库

添加远程仓库

推送至远程仓库

从远程仓库拉取

查看远程仓库:

选中项目--->右键--->Git--->管理远程

添加远程仓库:点击“+”可以添加一个远程仓库,点击“-” 可以断开本地仓库和远程仓库的联系

 

推送至远程仓库和拉取远程仓库:

点击↗即可推送,点击↙即可拉取

 

 

分支操作

查看分支

创建分支

切换分支

将分支推送到远程仓库

合并分支

查看分支:

选中文件--->右键--->Git--->分支

 

 

也可以在IDEA右下角快速找到分支:

 

 创建分支:

点击“+”:创建新分支

 

切换分支:

点击你需要切换到的分支,然后点击签出

 

将分支推送至远程库:

        点击新建的分支,然后点击推送

 

合并分支:

 

 


Git部分到此结束~~

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

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

相关文章

git原理与使用

目录 引入基本操作分支管理远程操作标签管理 引入 假设你的老板要你设计一个文档&#xff0c;当你设计好了&#xff0c;拿给他看时&#xff0c;他并不是很满意&#xff0c;就要你拿回去修改&#xff0c;你修改完后&#xff0c;再给他看时&#xff0c;他还是不满意&#xff0c;…

ERP、APS、MES 三者之间的关系

ERP&#xff08;Enterprise Resource Planning&#xff09; APS&#xff08;Advanced Planning and Scheduling&#xff09; MES&#xff08;Manufacturing Execution System&#xff09; 这是三种不同类型的软件系统&#xff0c;它们主要用于企业内部管理和自动化运营流程。…

vscode Google代码风格设置无效解决

1. 采用第一个方法设置google代码设置风格 2. 安装了clangd后需要在格式化风格做选择 vscode 安装 clang-format插件 $ code /home/tony/.config/Code/User/settings.json 这就能解决google风格设置无效的问题了&#xff0c;原来根因在于使用的格式化插件没有生效导致&#xf…

还原某里226控制流混淆的思路

原两年前我就写出了还原控制流&#xff0c;由于当时没留笔记&#xff0c;导致现在很多忘记了&#xff0c;只记得大致思路&#xff0c;又由于在面试的时候&#xff0c;很多时候说不清楚&#xff0c;遂直接重构并还原最新版练手 另本文以教学为基准、本文提供的可操作性不得用于…

多用户跨境B2B2C商城后台管理系统快速搭建

搭建一个多用户跨境B2B2C商城后台管理系统需要考虑多个方面&#xff0c;包括系统架构设计、用户权限管理、商品管理、订单管理、支付管理、物流管理等。搭建步骤如下&#xff1a; 1. 系统架构设计 首先&#xff0c;需要设计一个稳定可靠的系统架构。选择一个适合B2B2C商城的商…

【iOS】RunLoop

前言-什么是RunLoop&#xff1f; 什么是RunLoop? 跑圈&#xff1f;字面上理解确实是这样的。 Apple官方文档这样解释RunLoop RunLoop是与线程息息相关的基本结构的一部分。RunLoop是一个调度任务和处理任务的事件循环。RunLoop的目的是为了在有工作的时候让线程忙起来&#…

谈谈对Spring MVC的理解

问题分析&#xff1a; SpringMVC 是一种基于 Java 语言开发&#xff0c;实现了 Web MVC 设计模式&#xff0c;请求驱动类型 的轻量级 Web 框架。 SpringMVC采用了 MVC 架构模式的思想&#xff0c;通过把 Model&#xff0c;View&#xff0c;Controller 分离&#xff0c;将 Web 层…

Kubeadm搭建 Kubernetes

kubeadm搭建整体步骤 1&#xff09;所有节点进行初始化&#xff0c;安装docker引擎和kubeadm kubelet kubectl 2&#xff09;生成集群初始化配置文件并进行修改 3&#xff09;使用kubeadm init根据初始化配置文件生成K8S的master控制管理节点 4&#xff09;安装CNI网络插件&am…

在centos7下通过docker 安装onlyoffice

因为需要调试网盘&#xff0c;所以今天安装一下centos7的onlyoffice 官方介绍如下&#xff1a; 为了方便&#xff0c;还是通过docker方式来安装onlyoffice了&#xff0c;这里我们采用社区版本了。 1、下载docker安装包 如下&#xff1a; docker pull onlyoffice/documentserv…

Mageia 9 RC1 正式发布,Mandriva Linux 发行版的社区分支

导读Mageia 9 首个 RC 已发布。公告写道&#xff0c;自 2023 年 5 月发布 beta 2 以来&#xff0c;Mageia 团队一直致力于解决许多顽固问题并提供安全修复和新特性。 新版本的控制中心添加了用于删除旧内核的新功能&#xff0c;该功能在 Mageia 9 中默认自动启用&#xff0c;用…

Flowable-网关-事件网关

目录 定义图形标记XML内容使用示例视频教程 定义 通常网关根据连线条件来决定后继路径&#xff0c;但事件网关不同&#xff0c;它提供了根据事件做选择的方式。 事件网关的每个外出顺序流都需要连接至一个捕获中间事件。当流程执行到达事件网关时&#xff0c;网关类 似处于等待…

Elasticsearch——基础(笔记)

文章目录 一、 Elasticsearch二、正向索引与倒排索引三、Elasticsearch与Mysql3.1 文档document3.2 索引库index3.3 与Mysql对比3.4 常见架构 四、部署与分词器4.1 部署单点ES4.2 使用IK分词器4.3 字典词库的拓展 五、操作索引库5.1 创建索引库5.2 增删改索引库 六、文档操作6.…

redis 集群 2:分而治之 —— Codis

在大数据高并发场景下&#xff0c;单个 Redis 实例往往会显得捉襟见肘。首先体现在内存上&#xff0c;单个 Redis 的内存不宜过大&#xff0c;内存太大会导致 rdb 文件过大&#xff0c;进一步导致主从同步时全量同步时间过长&#xff0c;在实例重启恢复时也会消耗很长的数据加载…

如何调教让chatgpt读取自己的数据文件(保姆级图文教程)

提示&#xff1a;如何调教让chatgpt读取自己的数据文件(保姆级图文教程) 文章目录 前言一、如何投喂自己的数据&#xff1f;二、调教步骤总结 前言 chatgpt提示不能读取我们提供的数据文件&#xff0c;我们应该对它进行调教。 一、如何投喂自己的数据&#xff1f; 让chatgpt读…

干货分享 | TSMaster图形模块功能详解(二)—— 以CAN信号为例

在上一章节中&#xff0c;我们主要分享了TSMaster图形模块功能中信号的导入与删除、图形分栏、暂停与启动和禁止图形、高亮信号相关操作、预设、信号与数据的导入与导出6大模块的操作教程。 本章节在上一篇基础上&#xff0c;继续介绍TSMaster图形模块功能第7~10模块的教程。 本…

解决Redis启动时闪退 报错Creating Server TCP listening socket *:6379: bind: No error

找到安装redis的文件夹 在地址输入cmd 依次输入如下 redis-cli.exe shutdown exit redis-server.exe redis.windows.conf

数据结构---跳表

目录标题 为什么会有跳表跳表的原理跳表的模拟实现准备工作find函数insert函数erase函数 测试效率比较 为什么会有跳表 在前面的学习过程中我们学习过链表这个容器&#xff0c;这个容器在头部和尾部插入数据的时间复杂度为O(1)&#xff0c;但是该容器存在一个缺陷就是不管数据…

sysstat安装与使用

官方文档 http://sebastien.godard.pagesperso-orange.fr/documentation.html sysstat安装 1.下载源码 https://github.com/sysstat/sysstat 2.编译安装 tar xvf sysstat-xxx.tar.gz ./configure make -j 16 make install3.测试 iostatsysstat使用 sysstat 包包含许多商…

基于Flask的模型部署

基于Flask的模型部署 一、背景 Flask&#xff1a;一个使用Python编写的轻量级Web应用程序框架&#xff1b; 首先需要明确模型部署的两种方式&#xff1a;在线和离线&#xff1b; 在线&#xff1a;就是将模型部署到类似于服务器上&#xff0c;调用需要通过网络传输数据&…

css小练习:案例6.炫彩加载

一.效果浏览图 二.实现思路 html部分 HTML 写了一个加载动画效果&#xff0c;使用了一个包含多个 <span> 元素的 <div> 元素&#xff0c;并为每个 <span> 元素设置了一个自定义属性 --i。 这段代码创建了一个简单的动态加载动画&#xff0c;由20个垂直排列的…