当前位置: 首页 > news >正文

Git版本管理(03)stash临时操作和.gitignore配置

1 git stash操作(临时存储)

1.1 git stash常见流程

当你修改了某一个分支,但此时要切换分支时如果直接切换会因为一些修改冲突而checkout失败,那么此时就可以使用git stash命令来解决该问题。一般流程为:
 

$git pull# 将当前未提交的修改(即,工作区的修改和暂存区的修改)先暂时储藏起来,save参数主要是
$git stash / git stash save "label" # 切换<新分支>
$git checkout <新分支>
#然后在新分支上作相关操作,等操作结束后再执行
$git checkout <原分支># 取出原来的修改。这样就可以继续原来分支的操作了
#(注意:通过git stash pop命令恢复进度后,会删除当前进度)
$git stash pop

1.2 常见的其他git stash

# 查看stash了哪些存储
$git stash list # 执行存储时,添加备注则方便查找
$git stash save "save message"   # 显示做了哪些改动,默认show第一个存储,如果要显示其他index对应的信息后面加
$git stash show stash@{$number}
#比如第二个 
$git stash show stash@{1}# 丢弃stash@{$number}存储,从列表中删除这个存储,
$git stash drop stash@{$number} 
# 比如:
$git stash drop stash@{$1}#清除所有缓存stash
$git stash clear 

2 .gitignore配置文件

.gitignore文件是用于指定哪些文件或目录应该被Git忽略的配置文件。当Git进行版本控制时,它会查找项目目录下的.gitignore文件,并根据其中的规则来确定应该忽略哪些文件。配置规则整理如下:

# 注释:以井号(#)开头的行为注释,不会被.gitignore解释
# 忽略所有的编译输出文件
*.o
*.class
*.exe# 忽略指定目录
/target/      # 忽略根目录下的target目录
/docs/*.pdf   # 忽略docs目录下的所有.pdf文件# 忽略指定文件或目录
debug.log     # 忽略根目录下的debug.log文件
logs/         # 忽略根目录下的logs目录及其内容# 忽略特定文件类型
*.log         # 忽略所有.log文件
*.tmp         # 忽略所有.tmp文件# 忽略空文件夹
# Git默认不会跟踪空文件夹,但你可以通过.gitkeep文件来保留空文件夹
# 以下规则将忽略所有.gitkeep文件
**/.gitkeep# 忽略特定文件路径
# 在路径前加上斜杠(/)表示从仓库根目录开始匹配
/config/app.ini    # 忽略根目录下的/config/app.ini文件# 使用感叹号(!)来否定排除规则
!*.txt      # 不忽略.txt文件# 忽略整个文件夹及其内容
# 在路径后加上斜杠(/)表示匹配整个目录
vendor/     # 忽略根目录下的vendor目录及其内容# 忽略文件名中的特殊字符
# 如果文件名中包含特殊字符(如空格、感叹号等),需要使用转义符(反斜杠\)进行转义
Project\ Name/# 忽略文件名中的通配符
# 如果文件名中包含通配符(如星号*、问号?等),需要使用转义符(反斜杠\)进行转义
test\*.txt

注意:

  • .gitignore文件的位置:通常.gitignore文件放置在Git仓库的根目录下。这样可以确保该文件适用于整个项目。但是,你也可以在特定目录下创建.gitignore文件,它只会影响该目录及其子目录下的文件。
  • .gitignore文件只适用于尚未添加到Git版本控制的文件。如果某个文件已经被Git跟踪并提交到版本库中,修改.gitignore文件并不会自动将其从版本控制中删除。你需要使用git rm --cached命令将其从版本库中移除。
  • 为了避免意外地将敏感信息提交到Git仓库中,请确保在.gitignore文件中不要忽略包含敏感信息的文件,如密码、API密钥等。

http://www.lryc.cn/news/136754.html

相关文章:

  • 【ThingJS | 3D可视化】开发框架,一站式数字孪生
  • SpringBoot返回响应排除为 null 的字段
  • 华为数通方向HCIP-DataCom H12-821题库(单选题:41-60)
  • OpenAI推出GPT-3.5Turbo微调功能并更新API;Midjourney更新局部绘制功能
  • 相机成像之3A算法的综述
  • 最新AI系统ChatGPT程序源码/微信公众号/H5端+搭建部署教程+完整知识库
  • OpenCV实例(九)基于深度学习的运动目标检测(二)YOLOv2概述
  • 【Docker】已经创建好的Docker怎么设置开机自启
  • E - Excellent Views
  • WiFi天线和NB-IoT天线不通用
  • IoT DC3 是一个基于 Spring Cloud 的开源的、分布式的物联网(IoT)平台本地部署步骤
  • VBA Excel自定义函数的使用 简单的语法
  • 字节跳动 从需求到上线全流程 软件工程流程 需求评估 MVP
  • 线性代数-矩阵的本质
  • React基础入门之虚拟Dom
  • C++基础Ⅰ编译、链接
  • VMware和ubuntu配置Hadoop环境
  • uview2.0自定义tabbar
  • Star History 月度开源精选|Llama 2 及周边生态特辑
  • 修改电脑上路由表使笔记本默认走无线
  • Spring Cache的介绍以及怎么使用(redis)
  • 软考高级系统架构设计师系列论文六十九:论信息系统的安全风险评估
  • Ubuntu系统安装之后首需要做的事情
  • Qt——QPushButton控件的常见属性、方法和信号
  • AUTOSAR规范与ECU软件开发(实践篇)5.5 基于ISOLAR-A的系统级设计与配置方法(上)
  • mongoDB的CRUD
  • flutter TARGET_SDK_VERSION和android 13
  • 大数据Flink(六十六):Flink的重要概念和小结
  • Rider 添加NuGet软件包 (NuGet Package)
  • 什么是JVM ?