最近因为工作需求,需要对时隔四五年以前的一个仓库进行维护,但要同时不留下任何修改痕迹我们都知道,你从git上远程下载一个仓库以后,哪怕只是对仓库里某一个文件进行一个标点符号的修改,都会在git status中看到修改痕迹,并且需要提交才会更新.为了同时进行仓库中批量代码的修改或者精确到某行代码的修改同时在git status中不留下修改痕迹,这就需要用到git fileter-repo命令.下面我将举例详解:
这里是一个举例仓库:图片中第一第二行是同样的代码,只不过前面所用的空格不一样,如果想知道代码前面有多少空格或者特殊字符,可以用notepad++打开并且打开这个设置
我们继续说这个例子,如果我想同时删掉第一第二以及第八行的adec_print,可以用
git filter-repo --replace-text <(echo "adec_print==>") --force,运行后是这个样子
我们可以看到代码中所有包含adec_print的字样全部被删除了,不管前面有多少空格,只要命令判定到这个字符他就会删除