Может ли git зафиксировать пустые версии некоторых файлов? Дело в том, что мне нужно, чтобы новые (неотслеживаемые), непустые файлы были сначала добавлены и зафиксированы как пустые файлы, чтобы пометить их содержимое как новое и просмотреть (полный , неотслеживаемый файл не должен быть добавлен в индекс; git diff
должно показывать только что добавленное содержимое путем сравнения файла с его зафиксированной пустой версией).
Есть git add -N file…
, который ставит в индекс file
с пустым содержимым, но это говорит только о том, что file
будет добавлено, а git commit
жалуется, что файл не добавлен. Дело в том, что добавлять надо не текущую, непустую версию, а только пустую версию нового файла.
Есть ли способ сделать это?
PS: этот вопрос задан в контексте программы, которая автоматически добавляет файлы в репозиторий git (моя программа следует тому, что пишут студенты). Незафиксированный код — это код, который мне еще предстоит утвердить. Таким образом, состояние, в котором запускается программа, созданная учащимся, должно быть пустым, даже если моя программа только что обнаружила новую непустую программу в их домашнем каталоге; это выполняется путем автоматической фиксации новой пустой версии любого нового файла студенческой программы в репозитории git. Таким образом, новые строки кода, которые они пишут, выглядят как новое добавленное содержимое по сравнению с последней зафиксированной ревизией git.
touch empty-file && git add empty-file && git commit
у меня работает. - person joschi   schedule 20.11.2010git diff
отлично работает для вновь созданного файла. Если вы сравните состояние, когда файл не существовал, с diff, когда в нем есть содержимое, вы увидите все добавленные строки, точно такой же diff, как при сравнении с пустым файлом. (Только модели разные.) - person Cascabel   schedule 20.11.2010git add -p
, я могу легко отметить, какие строки больше не требуют моего внимания. Я не вижу, как могут помочь коммиты выбора вишни, поскольку одобренный код может быть добавлен только черезgit add -p
и гранулярные коммиты. Может быть, я полностью упускаю из виду вашу мысль? :) - person Eric O Lebigot   schedule 21.11.2010