Một trong những điều tôi lưu giữ trong số open novel in GitHub là list of words Tôi muốn đặt tự động dòng đầu tiên, là số từ trong từ điển. Tùy chọn đầu tiên của tôi là viết một móc trước khi commit, đọc tập tin, đếm các từ, viết lại dòng đầu tiên và viết lại nó. Dưới đây là đoạn codeBạn có thể thay đổi nội dung tập tin trong git commit không?
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);
}
}
};
Tuy nhiên, kể từ khi tập tin đã được dàn dựng, tôi nhận được lỗi này
error: Your local changes to the following files would be overwritten by checkout: text/words.dic Please, commit your changes or stash them before you can switch branches. Aborting
nó có thể là tốt hơn để làm điều đó như một cam kết nối và có nó thay đổi cho cam kết tiếp theo? Hoặc làm một cái gì đó hoàn toàn khác nhau hoàn toàn? Câu hỏi chung là: nếu bạn muốn xử lý và thay đổi nội dung của một tập tin trong khi cam kết, cách thích hợp để làm điều đó là gì?
Vì vậy, về cơ bản nó là một đứa trẻ khác hack, phải không? Thực hiện theo cách của tôi, tập tin được thay đổi, nhưng không được cam kết cho đến khi tập tin tiếp theo – jjmerelo
Có.Tôi không chắc tôi sẽ thực sự hạnh phúc với một trong hai cách tiếp cận; Tôi muốn có một cái gì đó như một Makefile để cập nhật những thứ cần thiết, và một cái gì đó nhiều hơn một chút hướng dẫn sử dụng. Nhưng nó sẽ hoạt động. – torek
Có thể thực hiện sau cam kết sẽ chính xác hơn? – jjmerelo