GIt的应用

news2024/11/18 21:50:36

一、Git概述

1.1 什么是git

git 是一个代码协同管理工具,也称之为代码版本控制工具,代码版本控制或管理的工具用的最多的主要
svn git SVN 是采用的同步机制,即本地的代码版本和服务器的版本保持一致(提交版本时,直接
提交到服务器), 而 git 是采用异步机制(分为本地仓库和远程仓库),本地提交的版本不会影响服务器
的版本,只有本地的代码上传到服务器时才会同步。
git 是一个开源分布式版本控制系统,可用于高效的管理不同大小的项目, 05 年创造的,由林纳斯
Linux 之父)发明的。

1.2 git多人协同开发

代码版本管理工具主要的功能是多人协同开发,其作用 :
防止代码丢失,可以做备份
代码版本的管理,可以进行多个版本之间的跳跃
可以方便的将代码在多人之间进行共享传输
多人开发时,有各种模式(分支、标签)可以方便代码管理

1.3 git 的特点

git 可以管理各种文件,特别是代码项目,多在 linux unix 系统中使用
是分布式管理,不同于集中式,这是 git svn 的核心区别
git 可以很好的支持分支,方便多人协作工作 git 分布式代码分家安全,有全球唯一的 commit 版本
git 是开源的系统
使用 git 可以脱网工作 ( 本地仓库 ) ,且数据传输速度较快

二、Git的安装与应用

2.1 Windowgit的安装

从飞秋共享中 tools -> Git - 2.28.0 - 64 - bit.exe 下载
双击 Git - 2.28.0 - 64 - bit.exe
安装步骤:一路next即可

2.3 git的配置

三个级别配置文件的路径: system (Linux /etc/gitconfig), global(~/.gitconfig), 本地配置(项目
工程的配置, ./.git/config
sudo apt install git -y
2.3.1 配置全局的用户名
给定 git 用户的名称(自定义的)
2.3.2 配置全局的用户邮箱
同配置用户名相同,自定义 git 用户的邮箱
2.3.3 查看配置信息
配置信息之后,可以查看配置信息,确认是否 OK
扩展配置 lg 指令别名:

2.4 git常用指令

2.4.1 初始化本地仓库
在某一个目录下,将当前目录作为本地仓库使用时,需要将此目录进行初始化
git init
初始化命令执行成功之后, 会在当前目录下创建 .git 子目录。
2.4.2 添加文件到暂存区
将当前目录下的文件添加到暂存区中,如果文件没有添加到暂存区时,显示的状态应该是红色的,添加
到暂存区之后,显示状态的颜色应该是绿色的。
查看文件的状态:
git status
添加文件到暂存区:
git add .|... |*
. 表示当前工作目录
< 文件 > 表示具体的某一个文件全名(带扩展名)
* 表示任意多个任意字符的文件, 代表所有的文件及目录(目录中的子文件及子目录)
可以将暂存区的文件删除:
git rm --cache 文件名...| -r . |*
【注意】 git rm -- cache - r . 命令可能会将仓库中的文件删除,如果出现这种情况,可以将此文件恢复:
git restore --staged a.txt
git restore -- staged <file>... 命令也可以将暂存区的文件删除
2.4.3 提交版本
将暂存区的文件,提交到本地仓库中, 产生一个新的提交版本号 ( 世界上唯一的 )
git restore --staged a.txt
git commit -m "本次提交版本的消息"
2.4.4 查看提交的版本信息
提交的版本可以通过命令查看:
git log
可以限制显示版本号的数量 :
git log -n 版本数量
如果只想显示版本号和消息,可以单行显示:
git log --pretty = oneline
2.4.5 比较本地与仓库中的文件
在将文件提交到本地仓库之后,再次修改此文件时,可以比较本地文件与仓库中的文件内容进行比较:
git diff 文件名
2.4.6 恢复操作
I. 从仓库中恢复文件
git checkout 文件名
II. 丢弃本地文件修改的内容
git checkout -- 文件名
III. 将仓库中的文件移动和删除
无论是移动还删除,都会影响本地文件的位置,而且修改之后,必须提交版本。
移动
git mv 文件名  文件夹名
删除:
git rm 文件名...
IV. 回到上一个版本
git reset -- hard HEAD^
【注意】 ^ 表示上一个版本号,如果是前 2 个版本号使用两个 ^ ^^
V. 回到指定的版本
可以回到指定的版本号上
git  reset -- hard 版本号(commit_id)
【注意】 commit_id 版本号只需要写出唯一的前几位即可(至少前 4 位)。
VI. 查看所有的操作记录
git reflog
2.4.7 标签管理
标签是在当前工作的位置添加的快照,用于保存工作状态,一般用于版本的迭代。
2.4.7.1 创建标签
在当前提交的版本上创建标签,如:
git tag 标签名 [-m " 标签的消息 "]
如果为指定提交版本号创建标签也可以的,
如: git tag 标签名 [-m " 标签的消息 "] <commit_id>
2.4.7.2 查看标签
I. 查看标签的名称
git tag 
II. 查看标签的详细信息
git  show 标签名
【注意】如果出现了 : ,则需要按 q 退出。也可以在 show 命令上加参数 - q
2.4.7.3 删除标签
可以将标签(从版本号上)删除
git tag  -d 标签名
2.4.7.4 恢复到指定的标签
标签和版本号绑定的,在恢复代码版本时,可以使用标签
git reset --hard 标签名
2.4.8 临时工作区管理
临时工作区可以理解为某个区间,如暂存区、当前工作区等。
2.4.8.1 创建临时工作区
创建临时工作区的目的是保存未提交文件的状态(红色【新文件、修改文件】未添加到暂存区的、绿色 【已添加到暂存区】)。
git stash
2.4.8.2 查看临时工作区
git stash list
【注意】最近创建的临时工作区在列表的最上面位置,即 0 位置为最新创建的
2.4.8.3 使用指定的临时工作区
git stash apply  stash@{标号}
【注意】在使用临时工作区时,当前工作区不能存在未提交的文件(暂存区是空的)
2.4.8.4 删除临时工作区
I. 使用并弹出最近的临时工作区
git stash pop
II. 删除临时工作区
git stash drop stash@{编号}
III. 清空临时工作区
git stash clear
2.4.9 分支操作
分支主要用于多人协作工作,分支即获取原有代码,在此基础上创建自己的工作环境,单独开发,
不会影响其他 分支的操作,开发完成后再统一合并到主线分支中。
创建分支的好处:安全,不影响其他人工作(复制一份新的程序,继续扩展或开发 )
2.4.9.1 分支的分类
按工程的项目进行代码分支的管理:以项目为准,存在master主分支与开发分支。
依据分支使用的时间长短将分支分为长期分支和短期分支:
长期分支: master develop
短期分支 : feature, release, bugfix hotfix
2.4.9.2 查看当前分支
git branch
2.4.9.3 创建分支
I. 只创建分支
在当前分支下(最新的版本号)创建一个新的分支。新分支的内容与创建分支的位置(版本号)相同。
git branch 分支名
II. 创建并切换分支
git checkout -b < 分支名 >
2.4.9.4 切换分支
git checkout 分支名
2.4.9.5 合分支到当前分支
如果在当前分支下创建的新的分支存在新的提交版本,则需要切换到当前分支下,可以将新的分支合并
到当前分支。 即父分支可以合并子分支。
如: 在 develop 分支下创建的新分支 feature2, feature2 分支下,提交了新的版本,则将新的版本合
并到 develop 分支,需要先切换到 develop 分支下,再合并 feature2 子分支。
git merge 子分支名
feature2 develop 分支的子分支 , 子分支已提交了两个版本。
如果将 feature2 分支合并到 develop 分支上,则需要先切换再合并。
注意 : 合并过程中如果没有冲突,直接合并后当前分支即为干净的状态,直接保存在本地仓库中 如果产
生冲突,需要人为的选择,然后在进行 add commit 的操作 在创建分支前,尽量保证当前分支是干
净的,以减少冲突的发生
2.4.9.6 删除分支
git branch -d 分支名
2.4.9.7 衍合分支
git rebase 分支名
效果同合并分支,但不一样是不会创建新的版本号,只会更新父分支上最近提交的版本号(是在子分支创建之后提交的)

2.5 远程仓库的操作

2.5.1 gitee 的远程仓库概述
远程仓库即为中心服务器上的 git 仓库。目前使用较多的是 gitee( 国内免费 ) github( 国外免费,但
网速特别慢 ) gitlab (私有仓库,企业内部使用)。
gitee 的网址 : https://gitee.com
需要注册账号,并登录。
2.5.2 配置 gitee ssh 的密钥
gitee 支持 http ssh 两个协议, http 协议每次使用时,都需要手动输入用户名和口令,比较烦。可
以使用 ssh 协议, ssh 协议支持公钥与私钥实现免密。
gitbash 的窗口中,生成公钥与私钥
ssh-keygen
查看公钥:
cat ~/.ssh/id_rsa.pub
复制公钥内容
打开 gitee 网页,点击用户头像的下三角图标:
选择 账号设置 菜单 , 在设置页面,从左边菜单找到 SSH 公钥 ,点击之后,打开公钥设置界面,填写公钥名
称和内容
确认信息之后,点击【确定】
2.5.3 创建仓库
点击用户头像左边的 + 图标,在弹出的子菜单中选择 新建仓库 ,在打开页面,输入仓库的名称及介绍即
可点击【创建】按钮。
2.5.4 本地仓库上传
将本地仓库上传到 gitee 的远程仓库上:
I. 首次上传
先将远程仓库的位置( ssh 仓库位置)添加到本地仓库的配置中,然后再上传,上 传时必须带 - u <
远程仓库的名称 > < 分支名称
git remote add origin git@gitee.com:disenQF/testgit2302.git
git push -u origin "master"
origin 是远程仓库的名称, master 是远程仓库的分支名(默认的主分支名)。
II. 再次上传
git push
III. 强制上传
远程仓库的代码完全由本地仓库的代码替换
git push -u --force origin master
2.5.5 远程仓库下载
I. 首次下载
通过克隆的方式下载的远程仓库
git clone git@gitee.com:disenQF/testgit2302.git
II. 从远程仓库更新本地仓库
git pull

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

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

相关文章

ansible 备忘清单(一)

笔者&#xff1a; 把以前的手写笔记电子化吧&#xff0c;顺便当作复习。 基础命令 命令 参数 备注 ansible --version 查看版本号 ansible-doc --help 查看帮助信息 -l &#xff5c;--list 查看所有模块 -s 查看模块摘要 Ansible servers -I &#xff5c;-…

AI大模型引领未来智慧科研暨ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的高级应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

数据结构:单调栈

1.单调栈 单调栈是一种数据结构&#xff0c;其中存放的数据应该是有序的&#xff0c;所以单调栈也有单调递减栈和单调递增栈 单调递增栈&#xff1a;栈顶到栈底的元素大小是从小到大 单调递减栈&#xff1a;栈顶到栈底的元素大小是从大到小 单调栈主要就是用来求一个给定序列中…

【Proteus】swjtu西南交大微机原理与接口技术课设:8086 最小模式下的最简硬件核设计

一、实验目的 让学生深入理解计算机硬件的基本组成结构、工作原理和设计方法&#xff0c;掌握 16 位微处理 器&#xff08;如 8086&#xff09;的内部结构和原理&#xff0c;并能够通过实际操作实现对其功能的在线调试和验证。 这样可以加深对计算机系统的认识和理解&#xff…

技术太难,人工太慢,这才是最牛的温湿度监控工具!

随着科技的不断进步和各行业的发展&#xff0c;温湿度监控已经成为确保产品质量、维护设备安全以及提高工作环境效能的关键工具。 在这个信息时代&#xff0c;实时、精准的温湿度数据监测不仅为企业带来了飞速的发展&#xff0c;也为行业发展注入了新的活力。 客户案例 医疗行…

Checkpoint 执行机制原理解析

在介绍Checkpoint的执行机制前&#xff0c;我们需要了解一下state的存储&#xff0c;因为state是Checkpoint进行持久化备份的主要角色。Checkpoint作为Flink最基础也是最关键的容错机制&#xff0c;Checkpoint快照机制很好地保证了Flink应用从异常状态恢复后的数据准确性。同时…

golang连接mysql的第一个程序(最新)

不想多说话&#xff0c;先把golang和mysql连接好&#xff0c;环境配置好&#xff0c;然后直接上代码就行了&#xff0c;代码可直接运行。 package mainimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql" )func main() {// MySQL …

nvm 的安装及使用 (Node版本管理器)

目录 1、nvm 介绍 2、nvm安装 3、nvm 使用 4、node官网可以查看node和npm对应版本 5、nvm安装指定版本node 6、安装cli脚手架 1、nvm 介绍 NVM 全称 node.js version management &#xff0c;专门针对 node 版本进行管理的工具&#xff0c;通过它可以安装和切换不同版本的…

【SpringCloud笔记】(11)消息驱动之Stream

Stream 技术背景 底层不同模块可能使用不同的消息中间件&#xff0c;这就导致技术的切换&#xff0c;微服务的维护及开发变得麻烦起来 概述 官网&#xff1a; https://spring.io/projects/spring-cloud-stream#overview https://cloud.spring.io/spring-cloud-static/spring…

在Go语言中处理HTTP文件上传

大家好&#xff0c;我是你们可爱又迷人的编程小助手&#xff0c;今天要带你们一起探讨在Go语言中如何处理HTTP文件上传&#xff0c;让我们把这场技术之旅变得轻松有趣吧&#xff01; 首先&#xff0c;想象一下这个场景&#xff1a;你是一个网站的开发者&#xff0c;用户们急切…

pycharm 工具栏不见了

新版pycharm后&#xff0c; 菜单栏和工具栏不见了 目录 我发现的解决方法&#xff1a; 其他旧版的解决方法&#xff1a; 我发现的解决方法&#xff1a; 其他旧版的解决方法&#xff1a; 另外&#xff0c;一些使用pycharm的新手可能会由于不熟悉软件的功能而误操作&#xff…

文件夹共享(普通共享和高级共享的区别)防火墙设置(包括了jdk安装和Tomcat)

文章目录 一、共享文件1.1为什么需要配置文件夹共享功能&#xff1f;1.2配置文件共享功能1.3高级共享和普通共享的区别&#xff1a; 二、防火墙设置2.1先要在虚拟机上安装JDK和Tomcat供外部访问。2.2设置防火墙&#xff1a; 一、共享文件 1.1为什么需要配置文件夹共享功能&…

springboot对接WebSocket实现消息推送

1.修改pom文件 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency> 2.增加配置WebSocketConfig.java import org.springframework.context.annotation.Bean…

接口测试工具——ApiFox使用初体验 postman导出和ApiFox导入

目录 ApiFox使用初体验初步使用从postman导出到apifox导入 IDEA简单测试Postman测试工具post请求 接口测试工具swaggerKnife4j1.引入依赖2.配置3.常用注解4.接口测试 JMeter什么是JMeter?JMeter安装配置1.官网下载2.下载后解压3.汉语设置 JMeter的使用方法1.新建线程组2.设置参…

智能监控平台/视频共享融合系统EasyCVR海康设备国标GB28181接入流程

TSINGSEE青犀视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力&…

基于springboot的数码论坛系统设计与实现

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 摘 要 网络的广泛应用给…

laravel api资源的问题记录

resource 转换层 可以帮助我们转换一些字段的结果&#xff0c;类似前端的filter。 可以使用比如对象或者模型的形式来处理&#xff0c;但使用sql查询会导致n1的问题。如图&#xff1a; 层次嵌套很多&#xff0c;而且很深&#xff0c;这样虽然开发方便了&#xff0c;但是维护就…

Mysql(5日志备份恢复)

一.日志管理 MySQL 的日志默认保存位置为 /usr/local/mysql/data 先看下mysql的日志文件有无&#xff1a; 修改配置文件添加&#xff1a;错误日志&#xff0c;用来记录当MySQL启动、停止或运行时发生的错误信息&#xff0c;默认已开启 修改配置文件添加&#xff1a;通用查…

PWR 电源控制-stm32入门

这一节我们来学习 STM32 的 PWR 电源控制。 其中&#xff0c;我们重点学习的主要就是 3 种低功耗模式&#xff1a;睡眠模式、停机模式和待机模式。 低功耗模式的目的呢&#xff1f;简单明了&#xff0c;就是省电&#xff0c;这对于一些使用电池供电&#xff0c;又需要长时间待…

腾讯云4核8G服务器轻量和CVM标准型S5对比

腾讯云4核8G服务器优惠价格表&#xff0c;云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元&#xff0c;5年6490.44元&#xff0c;轻量应用服务器4核8G12M带宽一年446元、529元15个月&#xff0c;阿腾云atengyun.com分享腾讯云4核8G服务器详细配置、优惠价格及限制条件&…