技术背景

在git操作中,有时候为了保障线上分支的简洁性,会在.gitignore文件中屏蔽一些关键词,比如可以加一个*.txt来屏蔽掉项目中所有带txt后缀的文件,还可以加上*test*来屏蔽所有的本地测试文件或者目录(当然,这个操作需要谨慎,有时候线上版本也需要同步测试案例)。那么如果想在被屏蔽的文件中找几个特殊案例,传到线上版本去,要如何操作呢?

操作流程

  1. .gitignore文件中添加屏蔽关键词,比如我们添加一个pdb后缀的屏蔽关键词:*.pdb
  2. 首先我们进入一个空的目录,并创建一个pdb后缀的文件:
  1. $ ll
  2. total 8
  3. drwxr-xr-x 2 dechin dechin 4096 Jun 16 09:25 ./
  4. drwxr-xr-x 7 dechin dechin 4096 Jun 16 09:25 ../
  5. $ git status
  6. On branch constraint
  7. Your branch is up to date with 'origin/constraint'.
  8. nothing to commit, working tree clean
  9. $ touch test.pdb
  10. $ ll
  11. total 8
  12. drwxr-xr-x 2 dechin dechin 4096 Jun 16 09:25 ./
  13. drwxr-xr-x 7 dechin dechin 4096 Jun 16 09:25 ../
  14. -rw-r--r-- 1 dechin dechin 0 Jun 16 09:25 test.pdb

此时如果我们查看再次查看git status,会跟前面一次得到一样的结果,因此我们创建的是一个pdb后缀的文件,而在.gitignore文件中已经屏蔽了所有pdb后缀的文件,因此git操作会自动忽略这个文件。

  1. $ git status
  2. On branch constraint
  3. Your branch is up to date with 'origin/constraint'.
  4. nothing to commit, working tree clean
  1. 使用git add -f强制传到线上版本。
  1. $ git add -f test.pdb
  2. $ git status
  3. On branch constraint
  4. Your branch is up to date with 'origin/constraint'.
  5. Changes to be committed:
  6. (use "git reset HEAD <file>..." to unstage)
  7. new file: test.pdb

可以看到此时的git状态中已经补充了对该pdb文件的更新,如果要传到线上版本,补充一步git commit -m 'xxx'git push即可。而如果我们想要取消上传的话,就需要走下面这一步操作。

4. 直接使用git reset xxx.pdb终止提交,或者也可以使用git reset HEAD <file>...来回退到某个指定的版本。

  1. $ git reset test.pdb
  2. $ git status
  3. On branch constraint
  4. Your branch is up to date with 'origin/constraint'.
  5. nothing to commit, working tree clean
  6. $ ll
  7. total 8
  8. drwxr-xr-x 2 dechin dechin 4096 Jun 16 09:25 ./
  9. drwxr-xr-x 7 dechin dechin 4096 Jun 16 09:25 ../
  10. -rw-r--r-- 1 dechin dechin 0 Jun 16 09:25 test.pdb

可以看到操作之后在git的状态中已经没有了这个pdb文件,但是在系统上这个文件依然存在。另外如果需要回退到指定的版本,可以先用git log来查看相关的提交信息:

  1. $ git log --oneline -n 5
  2. 0dfd492 (HEAD -> constraint, origin/constraint) Update the
  3. ch3 model
  4. d73457b Update the add hydrogen module
  5. 880a93e Update molecule file from dev
  6. e873d8e Delete unused data
  7. 43cb306 Move the params module into forcefield

总结概要

使用.gitignore来屏蔽一些文件名的关键字是一个比较常规的操作,其目的是可以过滤掉一些只需要在本地保留而不是上传到远程仓库上面的这样一些文件。但是如果存在一些冲突,比如我们需要传到远程仓库上的文件的文件名,刚好在屏蔽的关键字清单内,此时就需要使用到本文介绍的一些操作方法,来强制上传文件。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/gitaddf.html

作者ID:DechinPhy

更多原著文章请参考:https://www.cnblogs.com/dechinphy/

打赏专用链接:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

腾讯云专栏同步:https://cloud.tencent.com/developer/column/91958

CSDN同步链接:https://blog.csdn.net/baidu_37157624?spm=1008.2028.3001.5343

51CTO同步链接:https://blog.51cto.com/u_15561675

git添加被.gitignore忽略的文件的更多相关文章

  1. Git 小技巧:忽略某些文件的更改

    *以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/dp9Mwq7vf0ASF_FftBN8Ww 作为一枚合格的代码贡献 ...

  2. 修改Atom 隐藏.gitignore忽略的文件/文件夹的配置

    参考链接:.gitignored files are hidden from tree view regardless of setting 假如Atom打开的文件夹有.gitignore 文件,会隐 ...

  3. .gitignore文件说明-git提交时可忽略的文件

    在我们平时做项目时,总有一些文件不想提交到服务器的版本管理上 这时就要设置相应的忽略规则,来忽略这些文件的提交 规则 作用/mtk 过滤整个文件夹*.zip 过滤所有.zip文件/mtk/do.c 过 ...

  4. Git中使用.gitignore忽略文件的推送

    转载自:https://blog.csdn.net/lk142500/article/details/82869018 windows下可以用另存为生成gitignore 文件 1 简介 在使用Git ...

  5. Github用.gitignore忽略指定文件

    .gitignore Github提供.gitignore这种功能,可以自己指定哪些文件可以不被管理.具体方法是在版本管理的根目录下(与.git文件夹同级)创建一个.gitignore. 应用实例 项 ...

  6. SVN、Git设置提交时忽略的文件

    个人正在使用的:global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.pyc *.pyo [Tt]humbs.db [Bb]in [ ...

  7. git提交时如何忽略一些文件

    起因 在使用git对软件进行版本管理的时候我们总有一些不需要提交到版本库里的文件和文件夹,或者在管理一个实际应用的开源项目的时候,不可以把带有数据库信息的文件上传到开源平台当中,这个时候我们就需要让g ...

  8. mac上通过git推送时忽略node_modules文件夹

    node_modules出现改动一般不需要通过git推送,如果不忽略node_modules每次安装新的包会出现几千条新变动,并没有必要推送 1.通过终端进入项目根目录 创建 .gitignore 文 ...

  9. git使用小技巧-忽略提交文件设置

    前言 我们可以把自己的代码放到github上,但是我们有的文件或者文件夹不想提交到github上,这时候用到一个忽略文件 操作方法 * 在项目根目录创建一个 .gitignore文件 * 打开.git ...

  10. 【Git】Git-add之后-忽略部分文件的方法

    Git-add之后-忽略部分文件的方法 SparkKafkaDemo - Streaming Statistics git add 部分_百度搜索 (1 封私信)git 中如何撤销部分修改? - 知乎 ...

随机推荐

  1. ES集群搭建和Kibana管理集群

    搭建实例 先复制2份解压后的完整目录,将里面的data和log删除. elasticsearch-6.8.23-node2 elasticsearch-6.8.23-node3 修改3个实例的配置文件 ...

  2. wasm+pygbag让你在网页上也能运行Python代码:【贪吃蛇游戏】

    引言 最近小伙伴告诉我一种新的方法,可以使用wasm来使浏览器网页能够运行Python代码.这一下子激起了我的兴趣,因为这意味着用户无需安装Python环境就能直接运行我的demo,这真是太方便了.所 ...

  3. springsecurity 使用浅谈(一)

    1. 背景 springsecurity框架主要用于Web应用的认证和授权.所谓认证就是验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户.而授权就是经过认证后判断当前用户是否有权 限进行 ...

  4. 虚拟化H搭建

    虚拟化H搭建 H搭建所需要的硬件配置 最大值:所有组件不能超过160个cpu 按安装H需要2G内存+若干个guest(不明确多大),最大支持2个TB内存 最小磁盘2G 一个千兆网卡 lscpu信息 [ ...

  5. UE5: UpdateOverlap - 从源码深入探究UE的重叠触发

    前言 出于工作需要和个人好奇,本文对UE重叠事件更新的主要函数UpdateOverlaps从源码的角度进行了详细的分析,通过阅读源码,深入理解重叠事件是如何被触发和更新的. 解决问题 阅读本文,你将得 ...

  6. C# 创建Excel气泡图

    气泡图(Bubble Chart)是可用于展示三个变量之间的关系.通过绘制x 值, y 值和大小值即可确定图表中气泡的坐标及大小.下面通过后端C#代码及VB.NET代码展示如何来实现在Excel中创建 ...

  7. 华为云PB级数据库GaussDB(for Redis)揭秘第九期:与HBase的对比

    摘要: 高斯Redis,兼具开源Redis和HBase各自优点,提供成本更低.性能更好.灵活性更强的数据库服务! 本文分享自华为云社区<华为云PB级数据库GaussDB(for Redis)揭秘 ...

  8. 云图说|云数据库MySQL内核小版本升级全攻略

    摘要:华为云数据库MySQL支持自动或手动升级内核小版本,内核小版本的升级涉及性能提升.新功能或问题修复等. 华为云有新的内核小版本发布时,您可以在"实例管理"页面看到内核小版本升 ...

  9. 本地已存在jar包,maven打包还是去下载

    解决方法 在pom文件里面添加以下: file后修改为本地仓库的位置 oss file:C:\Users\admin\.m2\repository <pluginRepositories> ...

  10. 火山引擎ByteHouse联合Apache Airflow,让数据管理更加高效

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   近日,火山引擎ByteHouse 正式宣布与 Apache Airflow 兼容,两者结合不仅可以高效地存储和 ...