git添加被.gitignore忽略的文件

网友投稿 1293 2022-11-25

git添加被.gitignore忽略的文件

git添加被.gitignore忽略的文件

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

技术背景

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

操作流程

在​​.gitignore​​​文件中添加屏蔽关键词,比如我们添加一个pdb后缀的屏蔽关键词:​​*.pdb​​。首先我们进入一个空的目录,并创建一个pdb后缀的文件:

$ lltotal 8drwxr-xr-x 2 dechin dechin 4096 Jun 16 09:25 ./drwxr-xr-x 7 dechin dechin 4096 Jun 16 09:25 ../$ git statusOn branch constraintYour branch is up to date with 'origin/constraint'.nothing to commit, working tree clean$ touch test.pdb$ lltotal 8drwxr-xr-x 2 dechin dechin 4096 Jun 16 09:25 ./drwxr-xr-x 7 dechin dechin 4096 Jun 16 09:25 ../-rw-r--r-- 1 dechin dechin 0 Jun 16 09:25 test.pdb

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

$ git statusOn branch constraintYour branch is up to date with 'origin/constraint'.nothing to commit, working tree clean

使用​​git add -f​​强制传到线上版本。

$ git add -f test.pdb$ git statusOn branch constraintYour branch is up to date with 'origin/constraint'.Changes to be committed: (use "git reset HEAD ..." to unstage) new file: test.pdb

可以看到此时的git状态中已经补充了对该pdb文件的更新,如果要传到线上版本,补充一步​​git commit -m 'xxx'​​​和​​git push​​​即可。而如果我们想要取消上传的话,就需要走下面这一步操作。 4. 直接使用​​​git reset xxx.pdb​​​终止提交,或者也可以使用​​git reset HEAD ...​​来回退到某个指定的版本。

$ git reset test.pdb$ git statusOn branch constraintYour branch is up to date with 'origin/constraint'.nothing to commit, working tree clean$ lltotal 8drwxr-xr-x 2 dechin dechin 4096 Jun 16 09:25 ./drwxr-xr-x 7 dechin dechin 4096 Jun 16 09:25 ../-rw-r--r-- 1 dechin dechin 0 Jun 16 09:25 test.pdb

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

$ git log --oneline -n 50dfd492 (HEAD -> constraint, origin/constraint) Update the ch3 modeld73457b Update the add hydrogen module880a93e Update molecule file from deve873d8e Delete unused data43cb306 Move the params module into forcefield

总结概要

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

作者ID:DechinPhy

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:circos 可视化手册- images 篇
下一篇:【Github】 Github如何修改仓库的基本信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~