前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个非常好用的 Git 技巧

一个非常好用的 Git 技巧

作者头像
崔庆才
发布2024-05-18 09:16:38
1020
发布2024-05-18 09:16:38
举报
文章被收录于专栏:进击的Coder

# 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管理,想取消文件追踪,这样本地更改不再被管理

代码语言:javascript
复制
# 关闭跟踪某个文件,修改不提交
git update-index --assume-unchanged xxx.xxx

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

恢复跟踪

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

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

文件跟踪管理

代码语言:javascript
复制
# 列出关闭追踪的文件
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

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击的Coder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 1. Git 取消文件跟踪的场景
  • # 2. Git 取消文件跟踪的命令
    • 对于从未被git跟踪的文件
      • 对已经被git跟踪的文件
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档