微软在 Reference Source 里开放了 .Net Framework 多个版本的源码。为了更方便地阅读这些源码,我们把每一个版本都下载下来后按顺序提交到 git 仓库中。

但是!!!居然忘了在第一次提交之前放一个 .gitignore 文件!如果没有这个文件,那我们每次打开源码查看都会带来一大堆不明所以的修改文件。那么多的源码,绝对不会想重新挨个版本再提交一次。于是找到了一条可以解决这个问题的 git 命令。


git filter-branch --index-filter "cp /C/仓库外面某个路径下的/.gitignore . && git add .gitignore"

执行之后,C:\仓库外面某个路径下的\.gitignore 文件就被添加到了当前分支的第一次提交里面,并且查看后面任何一次提交对应的全部文件时,都会有这个文件。

如果希望此操作对所有分支生效,则加一个 --all 参数,即:

git filter-branch --index-filter "cp /C/仓库外面某个路径下的/.gitignore . && git add .gitignore" -- --all

写这个命令时需要注意:

- git 在 Bash 里写的时候,C:\ 需要写成 /C/

- -- --all 中的 -- 是用来区分路径和提交的,官方说法是:

fatal: ambiguous argument 'cp /C/仓库外面某个路径下的/.gitignore . && git add .g
itignore': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

执行了此命令后,所有的提交其实都被重写了,提交号已经改变。如果你从未推送到远端过,那么恭喜,你已经在神不知鬼不觉中添加了一个 .gitignore 文件,就像是第一次提交就加了这个文件一样。

但是,如果此前有推送到过远程分支,请慎重!因为你的此次推送的命令和其他人首次拉取的命令将有所改变:

推送(所有分支,强制):

$ git push --all -f

拉取(获取 + 重置)

$ git fetch
$ git reset origin/master --hard

参考资料

最新文章

  1. Asp.net 网站防攻击安全设置
  2. 使用RMAN DUPLICATE...FROM ACTIVE DATABASE创建物理standby database
  3. mesos+marathon+zookeeper的docker管理集群亲手搭建实例(环境Centos6.8)
  4. NandFlash读写
  5. [CareerCup] 4.9 All Paths Sum 所有路径和
  6. 新浪微博数据抓取(java实现)
  7. MapReduce框架Partitioner分区方法
  8. Windows平台上C++开发内存泄漏检查方法
  9. 【转】c++重载、覆盖、隐藏——理不清的区别
  10. Kafka笔记--使用ubuntu为bocker(服务器)windows做producer和comsumer(客户端)
  11. UIView的常用方法
  12. Objective-C中的property
  13. Sequence one(hdu2610dfs+去重)
  14. Vmdk文件如何使用,vmdk导入虚拟机VMware8.0教程
  15. 第1章1zabbix快速入门
  16. 大数据平台搭建-spark集群安装
  17. 使用STS时遇到的小“麻烦”
  18. 自动化测试 selenium中WebDriver 和WebElement的区别
  19. 正则匹配ts的引用
  20. 问题:CMD安装mysql-server遇到找不到MSVCR120.dll问题(已解决)

热门文章

  1. Visual Studio 2010 C++ 属性设置基础
  2. asp.net mvc Route路由映射.html后缀 404错误
  3. Windows command line monitor
  4. java 判断一个字符串中的数字:是否为数字、是否包含数字、截取数字
  5. ffmpeg nvenc编码
  6. MongoDB 3.4 分片集群副本集 认证
  7. 捕获enter键盘事件绑定到登录按钮
  8. 使用curl调试openstack的api
  9. vue中element 的上传功能
  10. Sql sever 事务