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

1 git stash操作(临时存储)

1.1 git stash常见流程

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

bash 复制代码
$git pull

# 将当前未提交的修改(即,工作区的修改和暂存区的修改)先暂时储藏起来,save参数主要是
$git stash / git stash save "label" 

# 切换<新分支>
$git checkout <新分支>
#然后在新分支上作相关操作,等操作结束后再执行
$git checkout <原分支>

# 取出原来的修改。这样就可以继续原来分支的操作了
#(注意:通过git stash pop命令恢复进度后,会删除当前进度)
$git stash pop

1.2 常见的其他git stash

bash 复制代码
# 查看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文件,并根据其中的规则来确定应该忽略哪些文件。配置规则整理如下:

bash 复制代码
# 注释:以井号(#)开头的行为注释,不会被.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密钥等。
相关推荐
Winston Wood2 小时前
一文了解git TAG
git·版本控制
喵喵先森3 小时前
Git 的基本概念和使用方式
git·源代码管理
xianwu5434 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio6 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。7 小时前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode
stewie68 小时前
在IDEA中使用Git
java·git
晓理紫17 小时前
使用git lfs向huggingface提交较大的数据或者权重
git
我不是程序猿儿19 小时前
【GIT】sourceTree的“当前分支“,“合并分支“与“检出分支的区别
git
_OLi_1 天前
IDEA中新建与切换Git分支
java·spring boot·git
PyAIGCMaster1 天前
ubuntu下安装 git 及部署cosyvoice(1)
git