学习写git的脚本

news2024/9/25 10:33:26

第一部分

1、 trap一个test

2、 字符编码的解决(拷贝出错的文件)

#!/bin/bash

echo_err(){
	echo -e "\e[31m$1\e[0m"
}

add_tmp=`pwd`/add_tmp
list_tmp=`pwd`/.tmp
#中途推出删除零时文件  (ctrl+c)
# trap 'rm $add_tmp' SIGINT

#中途推出删除零时文件  (exit 退出)
trap 'rm $add_tmp' EXIT


com_dirs=(
'u-boot'
'kernel'
'device'
# 'build'
# 'hardware'
'system'
'frameworks'
# 'packages'
# 'vendor'
)


git_sta(){
	# echo_err "$1/$2/"
	mod_list=`git status -s | grep ^\ M | sed 's/...//'`
	add_list=`git status -s | grep ^?? | sed 's/...//'`
	for i in ${mod_list[*]}
	do
		# echo_err "$2/$i"
		mkdir -p $list_tmp/$1/`dirname $i`
		cp -ra $i  $list_tmp/$1/$i
		echo_err "\tmodified:\t"$1/$i
	done
	
	for i in ${add_list[*]}
	do
		mkdir -p $list_tmp/$1/`dirname $i`
		cp -ra $i  $list_tmp/$1/$i
		echo "$1/$i" >> $add_tmp
	done
}

find_dirs(){
	touch $add_tmp
	for i in ${com_dirs[*]}
	do
		git_dirs=`find  $i -name \.git  -exec dirname {} \;`
		
		for j in ${git_dirs[*]}
		do
			cd $j/
			
			#权限检查和细微的变化 关掉
			git config core.filemode false
			
			#git commit/status 的中文编码
			git config --local core.quotepath false
			
			rt=`git status -s | grep ^\ M | wc -l `
			if [ $rt -ne 0 ];then
				git_sta $j
			fi
			
			
			#去除的 git commit/status 的中文编码的属性
			git config --local  --unset core.quotepath
			cd - >/dev/null
		done

	done
}

show_files(){
	echo ""
	echo "Untracked files:"
	echo "  (use \"git add <file>...\" to include in what will be committed)"
	echo ""
	while read i
	do
		echo_err "\t$i"
	done < $add_tmp
	echo ""
}

main(){
	find_dirs
	show_files
}

main




# '''
# :<


# # git config --local --list  #本地git的一些属性

# git config --add user.name "newNameLocal"
# git config --add user.email "newNameLocal"
# git config --global --add user.name "newNameGlobal"
# git config --global --add user.email "newNameGlobal"

# git config --local --add 







# 使用以下命令查看全局配置信息:
# git config –global –get core.autocrlf
# 如果返回“true”,表示Git会自动将文本文件的换行符转换为适应当前操作系统(Windows、Linux、Mac)的格式。
# 如果返回“false”,表示Git不会进行自动转换。

# 使用以下命令查看默认编码格式
# git config –global –get core.eol
# 如果返回“crlf”,表示Git将行结束符转换为Windows格式的CrLf。
# 如果返回“lf”,表示Git将行结束符转换为Unix格式的Lf。
# 如果返回空白或其他值,表示Git使用当前操作系统的默认行结束符格式
# 默认情况下,Git不会更改文件的编码,只会处理行结束符。

# git config –get core.eol
# 查看项目级别的默认编码格式:





# 查找core.fileEncoding配置项。这个配置项用于指定Git的默认编码格式

# core.fileEncoding=<编码格式>
# 如果配置项的值是UTF-8,那么Git的默认编码格式就是UTF-8。
# 如果在配置文件中没有找到core.fileEncoding配置项,那么Git的默认编码格式将使用操作系统的默认编码格式。
# 可以通过修改Git的配置文件来更改默认编码格式。在终端或命令行中输入以下命令来打开Git的配置文件:
 # git config –global –edit
# 这会打开一个文本编辑器,其中包含Git的全局配置文件。可以在文件中添加或修改core.fileEncoding配置项来指定新的默认编码格式。




# git config  --local --get core.fileEncoding
# git config --local --add core.fileEncoding "utf-8"


# git status的时候显示中文文件名不乱码
# #不对0x80以上的字符进行quote,解决git status/commit时中文文件名乱码
# git config --global core.quotepath false
# git config --local core.quotepath false
# git config --local --get core.quotepath
# git config --local --add core.quotepath false




 # git config --unset core.newKey

# git config --unset user.name "newName"
 
# git config --unset user.email "newName"



# EOF
# '''


# ls显示中文文件名  windows的git
# C:\Program Files\Git\etc\git-completion.bash:
# alias ls='ls --show-control-chars --color=auto'


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

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

相关文章

2024最新最全【Qubes Linux系统安装下载】零基础入门到精通!

Qubes Linux的安装和设置过程非常简单。它也是一个以安全为中心的桌面操作系统&#xff0c;旨在通过隔离提供安全性&#xff0c;这对于系统管理员、记者和有道德的黑客来说是一个很好的卖点。 Qubes是一个使用Xen的 Linux 发行版&#xff0c;这是一种虚拟化技术&#xff0c;它…

卫星图片地面目标识别检测数据集 1500张 yolo数据集 已增强

卫星图像地面目标识别数据集&#xff08;Satellite Image Ground Target Recognition Dataset, SIGTRD&#xff09; 摘要 SIGTRD 是一个专门为卫星图像中的地面目标识别而设计的数据集&#xff0c;它包含了一系列常见的基础设施和交通工具类型。该数据集提供了1500张卫星图像…

基于单片机的指纹打卡系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52RC&#xff0c;采用两个按键替代指纹&#xff0c;一个按键按下&#xff0c;LCD12864显示比对成功&#xff0c;则 采用ULN2003驱动步进电机转动&#xff0c;表示开门&#xff0c;另一个…

电脑桌面归纳小窗口如何设置?电脑桌面一键整理工具分享!

电脑桌面归纳小窗口如何设置&#xff1f;日常使用电脑的过程中&#xff0c;随着文件、应用程序的不断增加&#xff0c;桌面往往会变得杂乱无章&#xff0c;这不仅影响了美观&#xff0c;也降低了工作效率。幸运的是&#xff0c;现代技术为我们提供了多种桌面整理工具&#xff0…

【QA-MISRA】解决使用命令行扫描项目后看不到报告的问题

1、 文档目标 解决使用命令行扫描项目后看不到报告的问题 2、 问题场景 客户使用命令行扫描项目后看不到报告&#xff0c;原因是客户未设置和勾选报告格式就导出了DAX文件进行命令行直接扫描。 3、软硬件环境 1、软件版本&#xff1a; QA-MISRA23.04 2、机器环境&#xff1…

李宏毅2023机器学习作业HW07解析和代码分享

ML2023Spring - HW7 相关信息&#xff1a; 课程主页 课程视频 Kaggle link 回来了 : ) Sample code HW07 视频 HW07 PDF 个人完整代码分享: GitHub | Gitee | GitCode P.S. HW7 的代码都很易懂&#xff0c;可以和 2024 年的新课&#xff1a;生成式AI导论做一个很好的衔接&#…

开源 AI 智能名片与 S2B2C 商城小程序:嫁接权威实现信任与增长

摘要&#xff1a;本文探讨了嫁接权威在产品营销中的重要性&#xff0c;并结合开源 AI 智能名片与 S2B2C 商城小程序&#xff0c;阐述了如何通过与权威关联来建立客户信任&#xff0c;提升产品竞争力。强调了在当今商业环境中&#xff0c;巧妙运用嫁接权威的方法&#xff0c;能够…

一款前后端分离设计的企业级快速开发平台,支持单体服务与微服务之间灵活切换(附源码)

前言 当前软件开发面临诸多挑战&#xff0c;诸如开发效率低下、重复工作多、维护成-本高等问题&#xff0c;这些问题在一定程度上阻碍了项目的进展。针对这些痛点&#xff0c;我们迫切需要一款既能提升开发效率又能降低维护成-本的处理方案。由此&#xff0c;一款基于前后端分…

HDMI20协议解析_Audio_Clock_Regeneration

HDMI20协议解析_Audio_Clock_Regeneration 1.版本说明 日期作者版本说明20240918风释雪初始版本 2.概述 当通过HDMI传输音频信号时&#xff0c;Audio Clock Regeneration&#xff08;ACR&#xff09;是必须要传输的数据包之一&#xff1b; HDMI传输过程中&#xff0c;音频采样…

数学建模-线性规划讲解(Matlab版本)

引言 相信不少小伙伴刚开始接触数学建模时&#xff0c;第一个学习的算法就是运筹学的重要分支--数学规划&#xff0c;而数学规划当中重要的分支就是线性规划了。在这里笔者参考了司守奎和孙玺菁老师的《数学建模算法与应用》(第三版&#xff09;这本书&#xff0c;以此来讲讲关…

同等学力申硕英语多少分及格

同等学力申硕全国统考与往年的分数线一样&#xff0c;英语、学科综合均为60分合格通过制&#xff0c;满分均100分。 单科分数未达到及格线的考生&#xff0c;次年5月可以参加单科的补考 同等学力申硕的意义和作用 授予同等学力人员硕士学位是国家为同等学力人员开辟的获得学位…

前端——阿里图标的使用

阿里图标 将小图标定义成字体&#xff0c;通过引入字体的方式来展示这些图标 1.打开阿里图标库 https://www.iconfont.cn/ 2.登录 / 注册一个账号 3.选中你需要使用的图标 并且把它加入购物车 4.全部选择完之后 点击右上角 购物车 然后下载代码 5.解压后你下载的文…

MySQL数据库的日志你知道几个?

1、前言 MySQL相信大家都用过&#xff0c;但MySQL中都有哪些日志&#xff0c;是干什么的&#xff0c;估计有小伙伴还没有搞清楚。可能有小伙伴只知道最重要的三个&#xff1a;undolog、redolog、binlog。其实这是不全的&#xff0c;MySQL中的日志有&#xff1a; undolog&…

双端搭建个人博客

1. 准备工作 确保你的两个虚拟机都安装了以下软件: 虚拟机1(Web服务器): Apache2, PHP虚拟机2(数据库服务器): MariaDB2. 安装步骤 虚拟机1(Web服务器) 安装Apache2和PHP 更新系统包列表: sudo apt update安装Apache2: sudo apt install apache2 -y安装PHP及其Apac…

python学习第十二节:python开发图形界面

python学习第十二节&#xff1a;python开发图形界面 创建一个窗口实例化窗口对象调用窗口设置窗口大小设置窗口的标题设置窗口图标否能够改变窗口设置窗口的背景 创建容器组件容器组件的介绍组件参数的介绍label标签label添加标签控件 label添加标签定位label的relief参数label…

网站建设中,常用的后台技术有哪些,他们分别擅长做什么网站平台

PHP、Python、JavaScript、Ruby、Java和.NET各自适用于不同类型的网站平台。以下是对这些编程语言适用场景的具体介绍&#xff1a; PHP Web开发&#xff1a;PHP是一种广泛使用的开源服务器端脚本语言&#xff0c;特别适合Web开发。全球有超过80%的网站使用PHP作为服务器端编程语…

SaaS(Software as a Service)软件的主流技术架构

在当今数字化时代&#xff0c;SaaS&#xff08;Software as a Service&#xff0c;软件即服务&#xff09;软件以其灵活、高效和成本效益高的特点&#xff0c;成为企业信息化建设的首选。为了实现SaaS软件的稳定、可靠和高效运行&#xff0c;其技术架构的设计显得尤为重要。本文…

页面在移动设备上显示不正常的原因及解决方案

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介页面在移动设备上显示不正常的原因及解决方案1. 缺少 viewport 元标签1.1 问题描述1.2 解决方案1.3 注意事项 2. 响应式设计未实现或设计不当2.1 问题描述2.2 解决方案示例&#xff1a;媒体查询的使用 2.3 常见的媒体查询断点 3. 固…

基于传感网技术的职业院校安防系统实训室

一、引言 随着信息技术的飞速发展和城市化的不断加速&#xff0c;智能楼宇及安防系统已成为现代城市建设的重要组成部分。高职院校作为培养技术型人才的重要基地&#xff0c;应积极响应市场需求&#xff0c;建设符合时代潮流的安防系统实训室&#xff0c;以提升学生的专业技能…

Linux之实战命令11:tload应用实例(四十五)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…