【瑞吉外卖】Git部分学习

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.mzph.cn/news/28988.shtml

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

相关文章

CVE漏洞复现-CVE-2021-3493 Linux 提权内核漏洞

CVE-2021-3493 Linux 提权内核漏洞 漏洞描述 CVE-2021-3493 用户漏洞是 Linux 内核中没有文件系统中的 layfs 中的 Ubuntu over 特定问题&#xff0c;在 Ubuntu 中正确验证有关名称空间文件系统的应用程序。buntu 内核代码允许低权限用户在使用 unshare() 函数创建的用户命名…

线上电影购票选座H5小程序源码开发

搭建一个线上电影购票选座H5小程序源码需要一些基本的技术和步骤。以下是一个大致的搭建过程&#xff0c;可以参考&#xff1a; 1. 确定需求和功能&#xff1a;首先要明确你想要的电影购票选座H5小程序的需求和功能&#xff0c;例如用户登录注册、电影列表展示、选座购票、订单…

【Java可执行命令】(二十一)线程快照生成工具 jstack:帮助开发人员分析和排查线程相关问题(死锁、死循环、线程阻塞...)

Java可执行命令之jstack 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.2 使用步骤及技巧3.3 使用案例 4️⃣ 应用场景&#x1f33e; 总结 1️⃣ 概念 jstack 命令是 Java Development Kit&#xff08;JDK&#xff09;中提供的一项诊断工具&#xff0c;用于生成Java虚拟…

WHQL认证中HCK和HLK的区别

开发者或硬件制造商要通过WHQL认证获得微软数字签名或是Windows徽标的使用权限&#xff0c;就需要使用WHQL认证的测试工具&#xff08;HCK或HLK&#xff09;对硬件设备或驱动程序进行测试。HCK和HLK其实是一个系列的测试工具&#xff0c;HCK和HLK的主要区别是用于测试不同Windo…

pytest测试框架之fixture测试夹具详解

fixture的优势 ​ pytest框架的fixture测试夹具就相当于unittest框架的setup、teardown&#xff0c;但相对之下它的功能更加强大和灵活。 命名方式灵活&#xff0c;不限于unittest的setup、teardown可以实现数据共享&#xff0c;多个模块跨文件共享前置后置可以实现多个模块跨…

JAVA SpringBoot 项目 多线程、线程池的使用。

1.1 线程&#xff1a; 线程就是进程中的单个顺序控制流&#xff0c;也可以理解成是一条执行路径 单线程&#xff1a;一个进程中包含一个顺序控制流&#xff08;一条执行路径&#xff09; 多线程&#xff1a;一个进程中包含多个顺序控制流&#xff08;多条执行路径&#xff0…

天津农商银行智能加密锁管理工具常见问题

天津农商银行智能加密锁管理工具&#xff0c;在使用过程中&#xff0c;可能出现一些莫名的错误&#xff0c;针对亲身遇到的坑&#xff0c;分享给大家&#xff0c;以备不时之需。 一、转账业务导入文件中文汉字出现乱码&#xff0c;如下图。 原因是文件编码不正确&#xff0c;…

Java项目作业~ 创建基于Maven的Java项目,连接数据库,实现对站点信息的管理,即实现对站点的新增,修改,删除,查询操作

需求&#xff1a; 创建基于Maven的Java项目&#xff0c;连接数据库&#xff0c;实现对站点信息的管理&#xff0c;即实现对站点的新增&#xff0c;修改&#xff0c;删除&#xff0c;查询操作。 以下是站点表的建表语句&#xff1a; CREATE TABLE websites (id int(11) NOT N…

收钱吧与火山引擎VeDI合作一年后 有了哪些新变化?

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 收钱吧正在和火山引擎数智平台&#xff08;VeDI&#xff09;跑出一条业务提效新通路。 相关数据显示&#xff0c;收钱吧的日服务人次就近5000万&#xff0c;累计服务…

测评HTTP代理的透明匿名?

在我们日常的网络冒险中&#xff0c;你是否曾听说过HTTP代理的透明匿名特性&#xff1f;这些神秘的工具就像是网络世界中的隐身斗士&#xff0c;让我们能够在互联网的迷雾中保护自己的身份和隐私。那么&#xff0c;让我们一起揭开HTTP代理的面纱&#xff0c;探索其中的奥秘吧&a…

el-table实现指定列合并

table传入span-method方法可以实现合并行或列&#xff0c;方法的参数是一个对象&#xff0c;里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。该函数可以返回一个包含两个元素的数组&#xff0c;第一个元素代表rowspan&#xff0c;第二个元素…

Qt多线程编程

本章介绍Qt多线程编程。 1.方法 Qt多线程编程通常有2种方法&#xff1a; 1)通过继承QThread类&#xff0c;实现run()方法。 2)采用QObject::moveToThread()方法。 方法2是Qt官方推荐的方法&#xff0c;本文介绍第2种。 2.步骤 1)创建Worker类 这里的Worker类就是我们需要…

数学·包含学科简介

数学包含学科简介 14 逻辑与基础 ▪ 1410:演绎逻辑学 ▪ 1420:证明论 ▪ 1430:递归论 ▪ 1440:模型论 ▪ 1450:公理集合论 ▪ 1460:数学基础 ▪ 1499:数理逻辑与数学基础其他学科 17 数论 ▪ 1710:初等数论 ▪ 1720:解析数论 ▪ 1730:代数数论 ▪ 1740:超越数论 ▪ 1750:丢…

FPGA开发:音乐播放器

FPGA开发板上的蜂鸣器可以用来播放音乐&#xff0c;只需要控制蜂鸣器信号的方波频率、占空比和持续时间即可。 1、简谱原理 简谱上的4/4表示该简谱以4分音符为一拍&#xff0c;每小节4拍&#xff0c;简谱上应该也会标注每分钟多少拍。音符时值对照表如下图所示&#xff0c;这表…

大模型老是胡说八道怎么办?哈佛大学提出推理干预ITI技术有效缓解模型幻觉现象

论文链接&#xff1a;https://arxiv.org/abs/2306.03341 代码仓库&#xff1a;https://github.com/likenneth/honest_llama 近来与ChatGPT有关的大模型的话题仍然处于风口浪尖&#xff0c;但是大家讨论的方向已经逐渐向大语言模型的实际应用、安全、部署等方面靠近。虽然大模型…

Gartner发布《2023年全球RPA魔力象限》:90%RPA厂商,将提供生成式AI自动化

8月3日&#xff0c;全球著名咨询调查机构Gartner发布了《2023年全球RPA魔力象限》&#xff0c;通过产品能力、技术创新、市场影响力等维度&#xff0c;对全球16家卓越RPA厂商进行了深度评估。 弘玑Cyclone&#xff08;Cyclone Robotics&#xff09;、来也&#xff08;Laiye&am…

(九)人工智能应用--深度学习原理与实战--前馈神经网络实现MNST手写数字识别

目标: 识别手写体的数字,如图所示: 学习内容: 1、掌握MNIST数据集的加载和查看方法 2、熟练掌握Keras建立前馈神经网络的步骤【重点】 3、掌握模型的编译及拟合方法的使用,理解参数含义【重点】 4、掌握模型的评估方法 5、掌握模型的预测方法 6、掌握自定义图片的处理与预测 …

Modelsim恢复编辑器的解决方案——只能将外部编辑器删除后,重新匹配编辑器

Modelsim恢复编辑器的解决方案——只能将外部编辑器删除后&#xff0c;重新匹配编辑器 1&#xff0c;Modelsim和Questasim是相互兼容的&#xff0c;配置的编辑器变成了sublime&#xff0c;且更换不了编辑器2&#xff0c;解决问题的方案&#xff0c;还是没得到解决3&#xff0c;…

Rpc原理

dubbo原理 1、RPC原理 一次完整的RPC调用流程&#xff08;同步调用&#xff0c;异步另说&#xff09;如下&#xff1a; 1&#xff09;服务消费方&#xff08;client&#xff09;调用以本地调用方式调用服务&#xff1b; 2&#xff09;client stub接收到调用后负责将方法、参数…

堡塔面板系统加固使用说明

更新日志&#xff1a; 宝塔系统加固5.0- 正式版 2023-08-07 1.加固php 配置文件 2.加固nginx 启动文件 宝塔系统加固4.1- 正式版 1、【修复】系统加固不会随系统启动自动开启的问题 2、【优化】大幅降低CPU使用率 宝塔系统加固4.0- 正式版 1、【增加】等保加固相关加固功能 2、…