мерзавец - Удаленный большой файл, но контроль и .pack файлы, все еще огромные

В случае множественных разрывов строк (символов новой строки) и если могут быть оба \r или \n, и вам необходимо заменить все последующие разрывы строк на один пробел , используйте

var new_words = words.replace(/[\r\n]+/g," ");

См. regex demo

Чтобы сопоставить все символы перевода строки Unicode и заменить / удалить добавьте \x0B\x0C\u0085\u2028\u2029 к приведенному выше регулярному выражению:

/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g

/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g означает:

  • [ - начало положительного класса символов, соответствующего любому определенному определенному символу внутри него:
    • \r - (\x0D) - \n] - возврат каретки (CR)
    • \n - (\x0A) - символ перевода строки ( LF)
    • \x0B - табуляция строк (LT)
    • \x0C - подача форм (FF)
    • \u0085 - следующая строка (NEL)
    • \u2028 - разделитель строк (LS)
    • \u2029 - разделитель абзацев (PS) ] - конец класса символов
  • + - квантификатор, который заставляет механизм регулярных выражений совпадать с предыдущим атомом (класс символов s здесь) один или несколько раз (совпадают последовательные разрывы строк)
  • /g - найти и заменить все вхождения в предоставленной строке.

var words = "car\r\n\r\nhouse\nhome\rcomputer\ngo\n\nwent";
document.body.innerHTML = "
OLD:\n" + words + "
"; var new_words = words.replace(/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g," "); document.body.innerHTML += "
NEW:\n" + new_words + "
";

6
задан 14 May 2009 в 04:12
поделиться

1 ответ

Если вы сделали такую ​​фиксацию, но не отправили свои изменения в какой-либо другой репозиторий, то от нее легко избавиться с помощью git-rebase или более мощного git-filter-branch . Однако похоже, что вы уже отправили эти большие файлы вверх по течению.

Если эти изменения уже были распространены среди множества разных репозиториев, особенно тех, к которым была применена дополнительная работа, то это может быть трудно очистить, не вызывая срыв. Если изменения еще не получили широкого распространения, вы можете использовать что-то вроде git-filter-branch , чтобы обработать «главный» репозиторий (какой бы он ни был) для удаления больших файлов. Затем замените старый главный репозиторий новым созданным и продолжайте с этого момента.

4
ответ дан 17 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: