Как своего рода продолжение этот вопрос, я хотел бы спросить о двоичных файлах (например, файлах Excel) и управлении версиями.
Допустим, я хочу использовать github для хранения проекта программирования. Нет проблем, так как большинство файлов текстовые (независимо от языка).
Но у меня есть еще документация. Что, если я положу его в папку проекта github? (Я видел проекты, которые так делают)
Я читал, что git не подходит для этого, так как я могу работать с версиями, скажем, для файлов Excel?


//FIRST RUN THIS COMMAND
//npm install xlsx jsonfile
//CHANGE INPUT FILE NAME TO sample.xlsx and OUTPUT file is data.json
var XLSX = require('xlsx'),
request = require('request');
var fs = require('fs');
var jsonfile = require('jsonfile')
var file = 'data.json'
var buf = fs.readFileSync("sample.xlsx");
var wb = XLSX.read(buf, {type:'buffer'});
console.info(wb.Sheets);
jsonfile.writeFile(file, wb.Sheets, function (err) {
console.error(err)
})Интересный вопрос, простой ответ на него - напишите код для преобразования вашего файла Excel (.xls или .xlsx) в файл json и загрузите его содержимое в git.
Эта идея действительна только для простого листа Excel, а не для сложных, включающих много математики и диаграмм.
Вы можете сохранить свой Excel как .fods, который представляет собой обычный файл .ods, сохраненный как плоский XML. Этот формат, вероятно, не поддерживается MS Office, поэтому вам может потребоваться установить для этого Либре Офис (это бесплатно).
Поскольку .fods - это обычный XML, для него можно использовать версии как обычный текстовый файл с различиями и (если повезет) даже с поддержкой слияний между ветвями.
Вы также можете сохранить другие форматы Open Document как плоские XML:
.fodt для обработки текстовых (текстовых) документов.fods для электронных таблиц.fodp для презентаций.fodg для графикиТак что, если переход на Libre Office не представляет проблемы, это, вероятно, лучшее решение.
Если это не вариант, вы можете рассмотреть возможность использования Git LFS для хранения двоичных файлов. Но если файлы маленькие и вы не часто меняете их, вы можете просто игнорировать всю проблему - несколько небольших двоичных файлов не повредят вашему репозиторию. Вы должны просто прикинуть - если вы начнете управлять версиями двоичного файла размером 1 МБ и сохраните его 100 версий, это увеличит размер вашего репозитория примерно на 100 МБ (он может быть меньше, если файл можно сжать). Вам нужна действительно большая кодовая база, чтобы достичь 100 МБ в репозитории только с текстовыми исходными файлами, поэтому в этом случае ваш репозиторий будет заполнен в основном двоичными файлами.
Кстати: GitHub выпустил инструмент для измерения размера репозитория git: мерзавец. Это может дать вам несколько подсказок о потенциальных проблемах с вашим репозиторием.