我们有一个包含数千个提交的代码库,使用非常老旧的代码约定,我们想用默认的 Microsoft 代码约定替换它。最简单的方法是仅对最新的提交运行代码格式化工具,但这样一来我们就会失去“责任”,历史记录变得更难以跟踪。
我们能否通过在每个提交上运行代码格式化工具(在我们的情况下是 https://github.com/dotnet/codeformatter)来实现此目标,从而保留更改历史记录,并且应该使用哪个版本的 filter-branch?
注:事实证明,我即将使用的工具在某些提交中崩溃了,所以 filter-branch 对我没有起作用,并且没有对提交应用任何更改。
注:事实证明,我即将使用的工具在某些提交中崩溃了,所以 filter-branch 对我没有起作用,并且没有对提交应用任何更改。
git filter-branch
的工作方式是通过将每个提交(使用--tree-filter
物理提取)提取到临时目录中,而不是普通的工作树目录。您必须将您的重构器指向临时目录(由git format-branch
运行的进程的当前目录)。 - torek