在我检出一个新分支时,自动删除*.pyc文件和其他空目录。

12 浏览
0 Comments

在我检出一个新分支时,自动删除*.pyc文件和其他空目录。

使用git和Python时,有个有趣的情况,我相信在其他情况下也会发生。

假设我创建了一个带有文件夹/foo/的git仓库。在该文件夹中,我放置了/foo/program.py。我运行program.py,会生成program.pyc。我在.gitignore文件中将*.pyc加入忽略列表,所以git不会跟踪它。

现在假设我创建了另一个分支,dev。在dev分支中,我完全删除了/foo/文件夹。

现在我切换回主分支,/foo/重新出现。我运行program.py,program.pyc文件重新出现。一切正常。

我切换回dev分支。/foo/目录应该消失。它只存在于主分支,而不是dev分支。然而,它仍然存在。为什么呢?因为被忽略的program.pyc文件阻止了在切换分支时删除该文件夹。

解决这个问题的方法是在切换分支之前递归删除所有的*.pyc文件。我可以使用以下命令轻松完成这个操作。

find . -name "*.pyc" -exec rm '{}' ';'

问题是,每次切换分支时都要记住执行这个操作非常麻烦。我可以为这个命令创建一个别名,但是我仍然要记住每次切换分支时输入它。我也可以为git-branch创建一个别名,但是那样不好。git branch命令除了切换分支之外还有其他功能,我不想每次使用它时都删除所有的pyc文件。哎呀,我甚至可能在非Python仓库中使用它,那该怎么办呢?

有没有办法设置一个只在我切换分支时执行的git钩子?或者有没有其他办法在切换分支时删除所有的*.pyc文件?

0