Git的命令使用与IDEA内置git图形化的使用

Git 简介

Git 是分布式版本控制系统,它可以帮助开发人员跟踪和管理代码的更改。Git 可以记录代码的历史记录,并允许您在不同版本之间切换。

通过历史记录可以查看:

  • 进行了哪些更改?
  • 谁进行了更改?
  • 何时进行了更改?
  • 为什么需要更改?

  1. 仓库

仓库是用于存储代码的地方,其中包含所有的文件和历史记录。仓库可以被克隆到本地,这样您就可以在本地进行修改,并在需要时提交到远程仓库。

托管Git远程仓库:

  • githup
  • gitee
  • gitlab
  • gitcode
  1. 提交(Commit)
    提交是 Git 中的一个操作,表示将更改保存到仓库中。每次提交都会创建一个新的版本,您可以在任何时候查看之前的提交。
  2. 分支(Branch)
    分支是在仓库中创建的并行开发线。不同的分支可以用于不同的功能开发或修复错误。您可以在分支上工作,而不影响主分支。完成工作后,可以将分支合并回主分支。
  3. 合并(Merge)
    合并是将两个或多个分支的更改合并到一起的操作。这通常发生在一个分支完成其任务,需要将其更改整合到主分支或其他分支时。
  4. 拉取请求(Pull Request)
    拉取请求是在使用 Git 进行团队协作时常用的步骤。它表示一个开发者请求将他们的分支合并到主分支或其他分支。在合并之前,团队成员可以检查更改并提供反馈。
  5. 克隆(Clone)
    克隆是将远程仓库复制到本地机器的过程。这样,您就可以在本地对仓库进行操作,而不需要连接到远程仓库。
  6. 推送(Push)
    推送是将本地提交上传到远程仓库的操作。这使得其他人可以拉取您的更改。
  7. 拉取(Pull)
    拉取是从远程仓库获取更新并合并到本地仓库的操作。它通常结合了 Fetch(获取更新)和 Merge(合并更新)两个步骤。
    Git 是一个功能强大的工具,它提供了一套完整的版本控制策略,可以帮助团队协作开发代码,并管理软件项目的整个生命周期。

Git 相关操作

  • Git 基本操作:
    git status: 查看本地仓库的状态,包括哪些文件被修改、暂存或未跟踪。
    git add: 将修改的文件添加到暂存区(staging area),准备提交。
    git commit: 提交暂存区中的修改到本地仓库,生成新的提交记录。
    git push: 将本地仓库的提交推送到远程仓库,与其他团队成员共享更改。
    git pull: 从远程仓库拉取最新的更改,并合并到本地仓库。
    git clone: 克隆一个远程仓库到本地,创建一个新的本地仓库副本。
  • Git 分支管理:
    git branch: 显示所有本地分支。
    git checkout: 切换到另一个分支。
    git branch [分支名]: 创建一个新的分支。
    git merge: 合并一个分支到当前分支。
  • Git 远程仓库:
    git remote: 显示所有远程仓库。
    git add remote [仓库名] [仓库地址]: 添加一个新的远程仓库。
    git push [仓库名] [分支名]: 将本地分支推送到远程仓库。
    git pull [仓库名] [分支名]: 从远程仓库拉取并合并到本地分支。
  • Git 撤销操作:
    git reset: 撤销已经提交的更改,有不同的模式可以选择,如 soft, mixed, hard(与上一次commit保持一致)。
    git revert: 创建一个新的提交来撤销之前的更改,而不影响历史记录。
  • Git 标签:
    git tag: 显示所有标签。
    git tag [标签名]: 创建一个标签。
    git push [仓库名] [标签名]: 将标签推送到远程仓库。
    git push [仓库名] --tags: 将所有标签推送到远程仓库。
  • Git 日志:
    git log: 显示提交历史记录。
    git log --pretty=oneline: 以简洁的格式显示提交历史。
    git log [分支名]: 显示特定分支的提交历史
  • Git 删除:
    git push [仓库名] [:分支名]: 删除远程分支或标记。

IDEA Git操作

管理分支

合并分支:

合并分支

  1. Merge(合并)

分支的提交产生一个新的记录,合并到另一个分支。

在这里插入图片描述

  • 优点:
    • 更加安全,不改变分支线
    • 保留分支历史,每个分支的历史将被保留
    • 使用简单
  • 缺点:
    • 分支线混乱,在合并后都会产生新节点
    • 关系不清晰,分不清是合并还是原始的节点
  1. Rebase (变基)

重新拉取一个Release分支,把这个分支提交记录放在最新,再通过merge合并Release分支
在这里插入图片描述

  • 优点:
    • 干净的提交历史
    • 关系清晰
  • 缺点:
    • 改变提交记录,可能会改变提交顺序

不要在公共分支执行Rebase


在不同分支合并提交代码:
  1. cherry-pick(优选)

将一个分支中的提交合并到另一个分支,无冲突直接合并,有冲突解决冲突再合并。

  • 切换到合并的分支
  • 使用 git cherry-pick [提交记录号…]

优选

  1. patch(补丁)

将提交形成补丁,在其他分支应用这个补丁。

  • 生成补丁
git format-patch -1 -o /Users/apple

format-patch: 补丁命令
-1 : 最近提交,可以定义最近的几次提交(3为最近3次)也可以使用提交记录号
-o /Users/apple: 补丁文件路径

  • 应用补丁
// 检查补丁
git apply --stat 补丁路径
// 检验是否能打上补丁
git apply --check 
// 打补丁
git am 补丁路径

可多选提交,然后创建补丁
补丁
在这里插入图片描述

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


中途切换分支:
  1. stash (暂存)

在切换分支前,将当前变更暂存到栈中,并添加暂存注释,查看暂存区记录,恢复暂存记录。

  • 变更暂存到栈中
git stash
  • 添加暂存注释
git stash save '注释'
  • 查看暂存记录
git stash list
  • 恢复暂存记录
// 恢复最近暂存记录 ,会在暂存区删除
git stash pop
// 恢复最近暂存记录 ,不会在暂存区删除
git stasjh apply stash@{编号}
// 只移除暂存信息,不做恢复
git stasjh drop stash@{编号}
// 查看与本地代码区别
git stash show

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

给开源项目提交代码
  1. Fork

使用Fork将开源项目代码快照存在自己的远程仓库,然后拉取代码,新建分支,修改代码,提交推送
在这里插入图片描述

  1. PR

合到开源项目中

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


回退代码
  1. Revert(还原)

撤销某些提交,并用新提交覆盖。(逆向生成)

在这里插入图片描述
在这里插入图片描述
对刚刚还原的提交记录进行还原,就可以将之前还原的重新提交了
在这里插入图片描述

  1. Reset(回退)

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


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

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

相关文章

网络安全高级工具软件100套

1、 Nessus:最好的UNIX漏洞扫描工具 Nessus 是最好的免费网络漏洞扫描器,它可以运行于几乎所有的UNIX平台之上。它不止永久升级,还免费提供多达11000种插件(但需要注册并接受EULA-acceptance–终端用户授权协议)。 它…

在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——聚合与搜索(三)

#在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——聚合与搜索(三) 前言 文章目录 前言- 聚合和分析- 执行聚合操作- 1. 使用Java API执行聚合操作- 2. 使用CURL命令执行聚合操作- 1. 使用Java API执行度量操作- 2. 使用CURL命令执…

谷粒商城实战笔记-34-前端基础-ES6-promise异步编排

文章目录 一,回调地狱(Callback Hell)二,实战Promise1,场景说明2,回调地狱-传统实现3,使用Promise重构3.1 用Promise实现上述需求3.2 进一步重构 在ES6中,Promise是一个用于异步编程…

网络安全-内网安全加固方案

内网接入限制(MAC地址白名单) 只允许信任设备接入内网,且每次自动获取的IP地址不变(后续就可根据IP地址控制访问权限) 开启DHCP服务根据MAC地址静态分配固定IP地址 只允许可信的DHCP服务器分配IP地址(防止私建DHCP服务器) DHCP Snooping 信…

在Vue中,子组件向父组件传递数据

在Vue中,子组件向父组件传递数据通常通过两种方式实现:事件和回调函数。这两种方式允许子组件与其父组件进行通信,传递数据或触发特定的行为。 1. 通过事件传递数据 子组件可以通过触发自定义事件,并将数据作为事件的参数来向父组…

电脑案件冲突问题

一.故障展示 有一天我打开了电脑,发现3这个数字按键一直在输入,拔了外界的键盘,他这个按键还是会冲突 ,就如同上面的图一样 ,可能是电脑内部的键位进了灰卡住了什么东西导致的,于是我果断就电脑上的按键给扣下来了,扣的时候不知道里面的结构非常的谨慎,所以没导致里面的结构被损…

C#开发:Git的安装和使用

一、安装git 二、如何克隆代码? 1.找到某个本地目录,右键-gitbash 2. 输入以下代码(红色是地址,在gitlab获取或联系管理员获取,下图为复制地址): git clone http://xxxxxxxxx.git 输入帐号和令…

【公益案例展】中国电信安全大模型——锻造安全行业能量转化的高性能引擎...

‍ 电信安全公益案例 本项目案例由电信安全投递并参与数据猿与上海大数据联盟联合推出的 #榜样的力量# 《2024中国数智产业最具社会责任感企业》榜单/奖项评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 以GPT系列为代表的大模型技术,展现了人工智能技术与应…

深度学习中的FLOPs补充

学习了博主的介绍(深度学习中的FLOPs介绍及计算(注意区分FLOPS)-CSDN博客)后,对我不理解的内容做了一点补充。 链接放到下边啦 https://blog.csdn.net/qq_41834400/article/details/120283103 FLOPs:注意s小写,是floa…

.Net Core 微服务之Consul(二)-集群搭建

引言: 集合上一期.Net Core 微服务之Consul(一)(.Net Core 微服务之Consul(一)-CSDN博客) 。 目录 一、 Consul集群搭建 1. 高可用 1.1 高可用性概念 1.2 高可用集群的基本原理 1.3 高可用集群的架构设计 1.3.1 主从复制架构 1.3.2 共享存储架构 1.3.3 负载均衡…

小程序字体图标使用iconfont 阿里巴巴矢量图

打开链接 iconfont官网进入 素材库-官方图标库中 挑选 适合的 字体图标 放到购物车点击 导航栏 中 购物车 图标把选中的 图标 添加至项目 然后在我的项目中 找到 项目 点击 【查看在线链接】 点击 图中 【暂无代码,点此生成】 生成 css 文件链接点击 css 打开 css 文…

OBD诊断(ISO15031) 06服务

文章目录 功能简介ISO 9141-2、ISO 14230-4和SAE J1850的诊断服务定义1、请求特定监控系统的车载监控测试结果请求消息定义(读取支持的TID)2、请求特定监控系统响应消息定义的车载监控测试结果(报告支持的TID)3、请求特定监控系统…

每天一个数据分析题(四百二十七)- 方差分析

下面是一个方差分析表: 表中A,B,C,D,E五个单元格内的数据分别是( )。 A. 40,5,35,60,1.71 B. 40,5,35,60&a…

The Web3 社区 Web3 产品经理课程

概述 / 深耕区块链行业 11 年,和很多产品经理都打过交道;遇到过优秀的产品经理,也遇到过比较拉垮的产品经理。多年工作中,曾在某些团队,承载技术兼产品经理的角色;也参与过很多 Web3 外包项目,包…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第二十九章 NFS服务器的搭建和使用

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

GEO的表达矩阵的探针ID转换成基因名称教程

GEO的表达矩阵的探针ID转换成基因名称教程 前情回顾 根据GSE id自动下载处理GEO数据(必须要运行的模块) 该模块的运行窗口截图 该模块的教程 知乎地址:根据GEO的GSE数据集编号自动下载和处理GEO数据教程: https://zhuanlan.zhihu.com/p/708053447 该根据GSE id…

大模型最新黑书:基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理 PDF

今天给大家推荐一本丹尼斯罗斯曼(Denis Rothman)编写的关于大语言模型&#xff08;LLM&#xff09;权威教程<<大模型应用解决方案> 基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理>&#xff01;Google工程总监Antonio Gulli作序&#xff0c;这含金量不…

观察者模式的实现

引言&#xff1a;观察者模式——程序中的“通信兵” 在现代战争中&#xff0c;通信是胜利的关键。信息力以网络、数据、算法、算力等为底层支撑&#xff0c;在现代战争中不断推动感知、决策、指控等各环节产生量变与质变。在软件架构中&#xff0c;观察者模式扮演着类似的角色…

最小二乘算法的解

最小二乘法&#xff08;Least Squares&#xff09;是一种用于寻找线性回归模型的最佳拟合直线的标准方法。它通过最小化数据点与拟合直线之间的平方差来找到最佳拟合的线性模型。 线性回归模型 假设我们有一组数据点 (xi,yi)&#xff0c;线性回归模型的目标是找到系数 w 和截…

css预编译器--sass

Sass Sass 提供了 变量&#xff08;variables&#xff09;、嵌套规则&#xff08;nested rules&#xff09;、 混合&#xff08;mixins&#xff09;、 函数&#xff08;functions&#xff09;&#xff0c;目前我使用最多的还是变量和嵌套规则&#xff0c;貌似目前css也支持嵌套…