社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

一个非常好用的 Git 技巧

Python编程时光 • 1 年前 • 197 次点击  

# 1. Git 取消文件跟踪的场景

我们在使用Git管理代码的时候,有时有一种场景,就是起初我们需要将某个文件提交到远程代码仓库,提交到代码库后,我们的后续对这个本地文件的更改就不再需要被Git跟踪了;典型的例子就是配置文件,比如我们Java  Spring Cloud项目配置文件或者Flask .env配置文件,我们需要将配置模版提交到代码库并在团队间共享或者直接开源到外部,由于配置文件里面有自己公司或者个人的敏感信息,我们在补充了配置模版里面具体的值后不能提交给别人。

以Flask .env配置文件为例

我起初交给git管理并提交到代码库的模版如下,里面没有敏感信息,可以公开给团队成员或者直接开源到外部

当我提交模版后,实际运行项目需要填入具体的参数,这时这些参数是敏感信息,所以不能提交到代码库也不需要git管理了。

# 2. Git 取消文件跟踪的命令

 对于从未被git跟踪的文件

如果一个文件从未被git本地跟踪过或者未提交到代码库,这时我们直接使用.gitignore中设置好不需要跟踪的规则即可

如下图我们指定了git忽略.env文件,这样如果你从未显式的将.env文件添加到本地或者远程代码库,那么git会自动忽略该文件

 对已经被git跟踪的文件

如果某个文件已经显式的被添加到git本地库或者已经被别人提交到了远程代码库,你想在本地取消git对这个文件的跟踪,那么需要了解如下的git命令

取消跟踪

文件已经纳入了Git管理,想取消文件追踪,这样本地更改不再被管理

# 关闭跟踪某个文件,修改不提交
git update-index --assume-unchanged xxx.xxx

#
 关闭追踪某个目录下的某种类型文件
git update-index --assume-unchanged /xxx/*.xxx

恢复跟踪

恢复跟踪已经被取消跟踪过的文件

#


    
 恢复跟踪文件,修改提交
git update-index --no-assume-unchanged xxx.xxx
# 恢复追踪某个目录下的某种类型文件
git update-index --no-assume-unchanged /xxx/*.xxx

文件跟踪管理

# 列出关闭追踪的文件
git ls-files -v | grep '^h\ '
# 提取文件路径
git ls-files -v | grep '^h\ ' | awk '{print $2}'
# 恢复所有文件追踪
git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged

作者:thinktik
链接:https://juejin.cn/post/7352964118503358514
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/169580
 
197 次点击