hrh123 发表于 2023-7-17 09:34

去除.gitignore文件中的重复,空行和注释

相信大家用Git进行版本控制都会为`.gitignore`文件发过愁吧,像我就去GitHub官方的库<https://github.com/github/gitignore>去下载.可这就出现一个问题,比如,我按照我的需求,对应将Python,Vim,JetBrains,C和C++的内容筛选后复制到我的`.gitignore`文件里,这时我的`.gitignore`文件已经有将近900行,有不少注释,空行,以及一些重复的内容,真是让强迫症无语,还平白增加仓库体积,于是就写了个简单的程序来应对(封装成类主要是为了有其他相同需求的文件使用此程序时更方便些).
```python
class Cleaner:
    def __init__(self, filename):
      self.filename = filename

    def clean(self):
      with open(self.filename, "r", encoding="utf-8") as f:
            seen = set()
            result = []
            for line in f:
                line = line.strip()
                if not line or line.startswith("#"):
                  continue
                if line not in seen:
                  result.append(line)
                  seen.add(line)

      with open(self.filename, "w", encoding="utf-8") as f:
            for line in result:
                f.write(line + "\n")

# 调用示例
# cleaner = Cleaner(".gitignore")
# cleaner.clean()
```

流泪的小白 发表于 2023-7-17 09:51

感谢分享,强迫症表示感谢

suifeng6518 发表于 2023-7-17 10:11

感谢分享

bhleo 发表于 2023-7-17 10:37

感谢分享

Vvvvvoid 发表于 2023-7-17 10:45

.gitignore 咋会有 900行啊
有一个快捷的命令可以去重去空
cat .gitignore | sort | uniq > .gitignore_new

Paulwalkera 发表于 2023-7-17 11:16

可以可以 python胶水语言处理这里很占优势

hrh123 发表于 2023-7-17 12:17

Vvvvvoid 发表于 2023-7-17 10:45
.gitignore 咋会有 900行啊
有一个快捷的命令可以去重去空
cat .gitignore | sort | uniq > .gitignore_n ...

就是有900多行,是把那个仓库里的一些对应需求的给复制进去,当然有一些不是我本人提交的,到最后没去重复,空行和注释前确实有900行

hrh123 发表于 2023-7-17 12:30

本帖最后由 hrh123 于 2023-7-17 12:32 编辑

Vvvvvoid 发表于 2023-7-17 10:45
.gitignore 咋会有 900行啊
有一个快捷的命令可以去重去空
cat .gitignore | sort | uniq > .gitignore_n ...
给你看下我仓库本来的gitignore

lucklys 发表于 2023-7-17 14:44

gitignore不是过滤提交文件的吗,搞这么多行..........

hrh123 发表于 2023-7-17 14:48

lucklys 发表于 2023-7-17 14:44
gitignore不是过滤提交文件的吗,搞这么多行..........

调试,测试完再删文件不是很麻烦吗?主要项目涉及的语言和人员多,一劳永逸啦
页: [1] 2
查看完整版本: 去除.gitignore文件中的重复,空行和注释