我在 GitHub 上的公开小说中保留的内容之一是我想自动设置第一行的单词列表,即字典中的单词数。我的第一个选择是编写一个预提交挂钩来读取文件、计算单词、重写第一行并再次写回。这是代码
PRE_COMMIT {
my ($git) = @_;
my $branch = $git->command(qw/rev-parse --abbrev-ref HEAD/);
say "Pre-commit hook in $branch";
if ( $branch =~ /master/ ) {
my $changed = $git->command(qw/show --name-status/);
my @changed_files = ($changed =~ /\s\w\s+(\S+)/g);
if ( $words ~~ @changed_files ) {
my @words_content = read_file( $words );
say "I have $#words_content words";
$words_content[0] = "$#words_content\n";
write_file( $words, @words_content );
}
}
};
但是,由于文件已经暂存,我收到此错误
错误:您对以下文件的本地更改将被结帐覆盖:text/words.dic 请在切换分支之前提交您的更改或存储它们。中止
将其作为提交后挂钩并为下一次提交进行更改可能会更好吗?或者做一些完全不同的事情?一般的问题是:如果您想在提交期间处理和更改文件的内容,那么正确的做法是什么?