Git не делает ничего, кроме чтения из файла. Это точно не сломает трубу. Вы даже можете создать репозиторий git для каталога только для чтения -и зафиксировать файлы только для чтения -. Пока вы только добавляете и фиксируете вещи, а не делаете что-то, что проверяет или изменяет рабочий каталог, единственное место, где Git должен писать, находится внутри каталога Git(.git
по умолчанию, но вы можете поместить его куда-нибудь. иначе сgit --git-dir=…
).
Если вы действительно беспокоитесь, вы можете убедиться в этом, посмотрев исходный код Git. Или посмотрите, что делает git для фиксации файла…
strace -o commit.strace -f git commit -m wibble foo
Вы увидите только вызовы lstat
и open(…, O_RDONLY)
на foo
.
Что может потерпеть неудачу, так это git add
действие. Если процесс пишет в файл, пока Git его читает, Git может заметить, что файл изменился, и сдаться. Это не влияет на исходный файл в любом случае:git add myfile
не должно ничего делать в случае сбоя, но даже если Git каким-то образом содержит ошибки и не восстанавливается должным образом, это повлияет только на индекс Git, а не на файл данных, который Git открывается только для чтения -. Я думаю, что сообщение об ошибке будет «запутано из-за нестабильных исходных данных объекта» , но я не проверял, может быть какая-то другая проверка размера, которая срабатывает первой. Учитывая вашу скорость передачи данных, если git add
не работает, сделайте паузу на секунду и повторите попытку.
объединить обе команды в одну;
find /some/path -depth \( \( -type f -daystart -mtime +100 \) -o -type d -empty \) -ls
замените -ls
на -delete
после того, как вы подтвердили, какие файлы/каталоги будут удалены, ибудьте осторожны и знайте, что и по какому пути вы удаляете!!