Git с человеческим лицом для тех, кто устал терять данные


Посвящается всем тем, у кого хоть раз в жизни пропадали файлы с важной информацией. Эта статья о том, как очень легко и быстро пользователю наколдовать «машину времени», которая будет возвращать потерянные файлы с возможностью восстановления любой предыдущей версии. Без программирования и программистов, без командных строк и системных администраторов. Руками любого бухгалтера, менеджера, секретаря или аналитика.

О том, что такое Git, написано очень много скучнейших книг, сайтов, статей и видеокурсов, которые своими заумными объяснениями слабо проливают свет на предмет, но отлично лечат от бессонницы. Сегодня же я расскажу, как использовать эту штуку, которую даже не все программисты понимают, обычному пользователю для самых простых нужд, далёких от "контроля версий" и "нелинейной разработки".

Какие проблемы мы будем решать:

 

Качаем

 

Устанавливаем

 

Готовимся

 

Настраиваем хранилище

 

Несколько хранилищ

 

 

Работа с хранилищем

 

Всё, что ниже, можно не читать, пока файлы на месте и никаких проблем с ними не возникает. Ну или пока не возникнет необходимость посмотреть предыдущую версию файла.

Страховой случай

 

Упражнение со звёздочкой

 

Заключение

 

 

61 Comments

  1. script

    Спасибо за статью.

    Можно Вас попросить написать, как создать несколько репозиториев.

    Например я хочу сделать отдельную ветку для каждого своего клиента по имени клиента.

    И какой объем этого хранилища на Гите?

    Reply
  2. webester

    (0) Использовать гит для версионирования бинарных да и вообще любых не текстовых файлов, не имеет смысла. Ничем не отличается от программы которая умеет создавать дифф бекапы. Если хочется красивый гуи к гит попробуйте https://www.sourcetreeapp.com/ или штатную прогу от гитхаб. Очень хорошо помогает понять суть гит проект https://githowto.com/ru без воды все понятно и по существу. Но да, для архивирования бинарных данных там 99% информации не к чему.

    (1)Ищите на картинках Create new repository

    Reply
  3. Ta_Da

    (2) если конкретно про docx или xlsx говорить, то можно ж их перед коммитомраспаковывать до xml. Или с помощью какого-нить https://pandoc.org/ в markdown конвертировать.

    Reply
  4. for_sale

    (2) Спасибо за информацию, но красивый гуи мне ни к чему, для тех пары команд мне и этого достаточно. Я сейчас вообще тортуаз использую из-за того, что в нём всё через контекстное меню. Но в статью его включать не стал, чтобы не усложнять. В конце концов эта штука в данном контексте — это «настроил и забыл». И пару раз в день на две кнопки нажал, если надо сохраниться.

    Ничем не отличается от программы которая умеет создавать дифф бекапы

    У них сразу несколько проблем. Во-первых, как обычно, половина платных или на фримиуме. Во-вторых, у каждой свой интерфейс, форматы и прочие забубоны. В-третьих, пользователю иногда даже найти их сложно, потому что не понятно, что искать. В четвёртых, закрытые исходники, я свои некоторые файлы им бы не доверил. А в пятых, найдёшь такую бесплатную классную программу, отличную — а через месяц разработчики снимут её сразработки. А тут — бесплатно, всё открыто, всё просто.

    Reply
  5. Evil Beaver

    Эхее… Взять бы этого Канта, да за такие инструкции — года на три в Соловки!

    Для бэкапов есть более удобные инструменты. С функцией машины времени в том числе. Конечно, можно и отверткой супу поесть, кто бы спорил.

    Но за популяризацию гита спасибо. Теперь бы показать его с правильной стороны в столь же задорном ключе…

    Reply
  6. for_sale

    (5) А за такие конструктивные комментарии — на сколько в Соловки?

    «Креатив г***о, автор м***к, не то, что я, д’Артаньян, всем спасибо». Пока вы тут комментариями швыряетесь, люди данные теряют каждый день, а в интернете шаром покати на эту тему, одни «умные» комментарии.

    Для бэкапов есть более удобные инструменты

    Например? Они точно удобные? И бесплатные? И без рекламы? И без установки самого-лучшего-в-мире бесплатного антивируса аваст и яндекс.бара и мейлру.амиго как браузера по умолчанию? И без подписки по емейл и номеру телефона? И с открытыми исходниками? И не надо в очередной раз изучать новую систему?

    с правильной стороны

    А правильность стороны вы определяете? Или совет из победителей в номинации «Самый конструктивный комментарий года»? Рискну предположить, что ваша «правильная» сторона — это разработка для 1С, где гит, как и любая другая система контроля версий, кроме стандартного хранилища, совершенно бесполезен. Хотя, конечно, можно и отвёрткой супу поесть.

    По существу у вас есть какие-то аргументы, чем в данном контексте гит хуже ваших удобных инструментов?

    Reply
  7. for_sale

    (1) Спасибо за конструктив. Добавил раздел в статью по Вашему вопросу.

    Про объём хранилища вопрос не понятен. Если Вы про Гитхаб, то это не то, в данном случае хранилище находится полностью на Вашем компьютере. Если вы о размере, которое хранилище занимает на диске, то каждое хранилище изначально равно размеру папки и увеличивается по мере сохранений. Поэтому я особое внимание уделил вопросу правильного расположения файлов, чтобы сохранялось только то, что нужно. У меня в папке размером 1Мб за полтора года хранилище доросло до 5Мб.

    Reply
  8. for_sale

    (2) Кстати, с версионированием вордовских файлов гит умеет работать, у меня в сравнении показывает именно изменённый текст (правда, с поломанной кодировкой), а не бинарный код.

    Reply
  9. Evil Beaver

    Не ожидал такой бури эмоций, если честно… Персонаж, говоривший про Соловки был не самым умным человеком, что, в данном случае, должно было показать некоторую иронию и несерьезность. Не прошло, ну да ладно…

    В описываемых вами сценариях банальный дропбокс или облако от мэйл.ру на терабайт (!) — намного полезнее, т.к. хранение бэкапов на том же физическом устройстве, что и данные — это немного за гранью…

    Гит эффективен на небольших текстовых отличиях между версиями. Для версионирования произвольных двоичных файлов он неэффективен. Жрет место и превращается в отвертку, вместо ложки.

    При установке клиента «Облака» просто не забывайте снимать галочки, чтобы не ставить себе лучшие в мире антивирусы. Или не ставьте его вообще (я, например, не ставлю, но тем не менее хранилищем пользуюсь активно)

    Reply
  10. webester

    (6)

    Например? Они точно удобные? И бесплатные? И без рекламы? И без установки самого-лучшего-в-мире бесплатного антивируса аваст и яндекс.бара и мейлру.амиго как браузера по умолчанию? И без подписки по емейл и номеру телефона? И с открытыми исходниками? И не надо в очередной раз изучать новую систему?

    cobian backup точно бесплатный, много лет, без браузера баров и тд. Только то, что нужно. Но в (9) правильно все сказал. Про гит и 1С на этом сайте есть много информации как сделать его полезным. Вот тут https://github.com/allustin/awesome-1c тоже можно что-то интересное найти.

    Reply
  11. for_sale

    (9)

    дропбокс или облако от мэйл.ру

    Вы серьёзно? Или опять шутить изволите? Т.е. вы предлагаете хранить личные документы даже не с помощью приложений с закрытым кодом, а вообще в интернете?

    Вы хоть понимаете, что ваши комменты может прочесть простой пользователь и действительно, не дай бог, поставит себе какое-нибудь облако от мейлру, начнёт сливать туда какие-нибудь балансы, расчётки, сканы паспортов, чёрную бухгалтерию и прочие прелести. Вы забыли ещё подсказать, чтобы они туда текстовые файлики с паролями выкладывали — от 1С и соцсетей. И сразу фотки банковской карты с обеих сторон.

    При установке клиента «Облака» просто не забывайте снимать галочки

    Простите, не в обиду будет сказано, но заявление типичного программиста 1С 🙂 Который живёт в волшебном мире и программирует для умных, вдумчивых пользователей, которые читают то, что им пишет система и никогда не меняют наименование элементов справочника, на которые у него весь код завязан. Я недавно подключался к пользователю, у которого 1С стоит полтора года, а у него при заходе в базу выскакивает окно с 1Совским спамом. В этом окне есть флажок — Не показывать больше. Но он полтора года каждый день закрывает это окно. А вы тут пишете «ПРОСТО не забывайте снимать галочки».

    Повторяю, статья писалась для простых пользователей. Смотришь на картинку, делаешь, забываешь. А не для тех, кто ПРОСТО не забывает снимать галочки, для них действительно есть другие решения.

    Гит эффективен на небольших текстовых отличиях между версиями. Для версионирования произвольных двоичных файлов он неэффективен. Жрет место и превращается в отвертку, вместо ложки.

    Именно поэтому я уделил внимание правильной организации папки с файлами. Если в этой папке хранить ворды и эксели (99% файлов целевой аудитории этой статьи), то «сожрёт» оно копейки. Я в таком хранилище храню внешние обработки, места занимает очень немного.

    Reply
  12. for_sale

    (10)

    cobian backup

    Да, неплохая штука.

    Из минусов — закрытый код, почти ноль информации в интернете, очень как-то сложно всё создаётся, глаза разбегаются. Могу сказать, что простому пользователю такая вещь без подробной инструкции не подойдёт. Ну и опять же — а в чём преимущество? Только в том, что есть автомат. Но по сути если ты работаешь с небольшим количеством файлов, то это не проблема, две кнопки нажать, плюс работал я на проекте, каждый день сохранял, потом ушёл в отпуск, а архивы так и гонит. Какие ещё претензии? За размер тут многие волнуются, бинарники — у этой штуки размеры архивов такие же будут, если не больше. В общем, как обычно, дело вкуса.

    Reply
  13. Evil Beaver

    Я сказал, что по сравнению с хранением на диске D того же самого компьютера — облака полезнее. Критичные данные защищают шифрованием. А складывать на соседний раздел — проще сразу удалить, чем жить в мнимой безопасности.

    Reply
  14. Evil Beaver

    Ну и пароли от соцсетей воруют иным образом и гит тут вообще не при чем.

    Reply
  15. webester

    (11)

    Вы хоть понимаете, что ваши комменты может прочесть простой пользователь и действительно, не дай бог, поставит себе какое-нибудь облако от мейлру, начнёт сливать туда какие-нибудь балансы, расчётки, сканы паспортов, чёрную бухгалтерию и прочие прелести.

    Тааак и что же произойдет? Я весь в предвкушении. Страшное ФСБ проанализирует переписку или злые хакеры взломают?

    Мы говорим немного о разных вещах одними словами. Товарищ вам говорит, что вы версионирование используете в целях бекапов, оно то конечно можно, ничего страшного. Но смысл? Вы просто используете ту особенность гит, что она делает копии, но как бы откладывает только изменения. Ну так и копируйте данные, если вам нужны бэкапы. В посредниках мне кажется не особо большой смысл. Еще один неприятный минус, если у вас будут храниться зашифрованные данные(архив с паролем, по моему даже офисные данные запароленные). При шифровании достаточно изменить один байт в исходном документе, что бы файл изменился полностью. И вы получите все полные копии вашего файла. Это я к тому, что бинарные файлы не всегда меняются так, как вы ожидаете. И да соглашусь с (13) бекапы данных рядом с самими данным это как бы такой себе бекап 🙂 можно сказать ненужный.

    Reply
  16. Xershi

    (11) но ведь так обычный пользователь и делает! Поделились и хорошо!

    А тот обычный пользователь про которого вы говорите уже не тот обычный, а прошаренный, который вот как раз про черную и ищет, чтобы никто и никак, остальным начхать и все в инете хранят, так даже безопаснее!

    Reply
  17. for_sale

    (14) ну пароли так и воруют — установите наш самый лучший в мире браузер, а заодно и облако. Гит тут и правда не при чём.

    Reply
  18. for_sale

    (15)

    Тааак и что же произойдет? Я весь в предвкушении. Страшное ФСБ проанализирует переписку или злые хакеры взломают?

    Бинго! гуглите СОРМ. Хотя, тут и без СОРМа всё отлично, он не нужен, если человек сам согласен сливать свои данные на сервер компании, управляемой «соратниками» и находящейся в этой же юрисдикции.

    Да и банально — половина компаний, в которых я работал на проектах, не разрешает лить ничего в Междусеть. Как быть в этом случае? Более того, некоторые админы настолько ответственно относятся к своим обязанностям, что не ставят ничего с закрытым кодом или не разрешённое руководством Т.е. даже не получится упросить поставить себе вышеупомянутый кобиан.

    Про бинарные данные все тут совсем испугались. Мне интересно, у кого-то есть решение, которое хранит именно отличия между файлами любых типов, а не их полные копии? т.е. кобиан мне развернёт внешнюю обработку 1С и сохранит именно разницу в ней? С удовольствием изучу такое решение. Правда пока только одно назвали (неподходящее под этот критерий), остальные уже двадцать комментариев упоминаются только как «другие». И, кстати, гит в вордовских файлах действительно хранит разницу, а не полную бинарную версию.

    То, что бекап рядом с данными — да, в этом есть минус. Но из своей практики могу сказать, что бОльшая часть потерь данных — это затёртый сохранением файл, файл который просто перестал открываться (сюда идёт и внешняя обработка 1С с «Неверным форматом данных» — если бы мне лет пять назад рассказали про Гит, сколько работы не пришлось бы делать второй раз; сюда же поломанные архивы относятся), файл который удалили непонятно как и зачем, битые сектора на диске, из-за которых файл не открывается, а файл рядом — открывается. Добавьте сюда ещё один довольно часто встречающийся вопрос пользователей о версионировании («Я прошлую версию ТЗ писала, а потом заказчик отказался, я переписала, а теперь он опять хочет первую версию, мы же можем её восстановить???») — и назовите мне решение с открытым кодом, бесплатное, без необходимости лезть в инет, без мейлруамигояндексбаров и простое в использовании, которое бы сюда подходило лучше. Возможно, они есть, но ещё никто не назвал ни одного, мы только поняли, что «гит точно не подходит, но есть очень много других, которые нельзя называть».

    Reply
  19. for_sale

    (16) В этом и есть задача нас, «чуть более обычных пользователей» — решать проблемы просто обычных пользователей. Пользователи (да и программисты тоже) постоянно теряют данные, но власти скрывают в интернете ничего об этом не пишут, а когда пишешь решение, которое будет работать здесь и сейчас — все резко бегут писать, что это чушь, никому это не надо, есть много гораздо «более лучших» решений (без упоминания оных).

    Reply
  20. webester

    (18)

    Более того, некоторые админы настолько ответственно относятся к своим обязанностям, что не ставят ничего с закрытым кодом или не разрешённое руководством Т.е. даже не получится упросить поставить себе вышеупомянутый кобиан.

    Даже 1С нельзя и ворд и эксель ай ай ай а они с закрытым кодом. А про виндовс(для него же написана статья) я вообще молчу, там мало того, что код закрыт, так еще он прямо иногда говорит, что возьмет то, что посчитает нужным как же к этому относятся добропорядочные админы? ))) ужас какой-то. Никто не говорит, о секретных решениях, потому, что они никому не нужны вот и нет на слуху а гуглить лень. Я использовал для этого дропбокс когда для меня важны были версии, поигрался какое-то время и бросил. И совсем непонятно, то у вас все серьезно и админы и политика не ставить без открытого кода и тд(используйте частную реализацию дробпокса которую можно развернуть на своем сервере с открытым исходным кодом), то надо что бы просто и любая домохозяйка раз два и готово(используйте дропбокс он умеет версионирование и бекап будет вам бонусом). И кстати сорм тут будет бесполезен. Шифрование и серваки в штатах. А их бояться винду не юзать.

    Reply
  21. for_sale

    (20)

    Даже 1С нельзя и ворд и эксель ай ай ай а они с закрытым кодом

    Выделю то, что уже писал:

    некоторые админы настолько ответственно относятся к своим обязанностям, что не ставят ничего с закрытым кодом или не разрешённое руководством

    Т.е., например, раскладку клавиатуры Чистова мне не разрешили ставить. А Git — разрешили. Надеюсь, так понятнее.

    Reply
  22. for_sale

    (13) мне прям даже стало интересно, где это террабайт целый раздают! Но нашёл только 128 гб за 150 рублей в месяц! Отличная альтернатива бесплатной программе! 🙂

    Reply
  23. t.v.s.

    (11)

    mega.nz — Открытый код, шифрование на стороне клиента, клиенты под все распространенные платформы

    Reply
  24. for_sale

    (23) Да, неплохо, но тот же мелкий шрифт и звёздочки — из 50 гб реально можно юзать 15, остальные 35 даются на 30 дней, ограничения на трафик и т.п. Про открытый исходный код не нашёл, но приманка в виде дополнительных 20 гб за установку клиента на комп и ещё 15 за мобильный напоминают поговорку о бесплатном сыре.

    Опять же — если говорить о продвинутых пользователях — то я сам использую облака, вроде яндекса и гугла, мегу тоже попробую. Но ТОЛЬКО с трукриптом! Обычному пользователю такие решения можно только навязывать, пользуясь неосведомлённостью. Возможно, кому-то это подходит, но многим (и мне на их месте) — нет, поэтому я не пишу о сервисах с подводными камнями, требующих заумных слов вроде «шифрование на стороне клиента» или «трукрипт».

    Клиенты таких сервисов ставить себе на комп — это вообще жесть, я задолбался удалять Яндекс.Диск. Это не сервис, это вирус! В куче папок пользователей прописался, в службы, причём так, что я его только через реестр нашёл, в реестре тоже в миллион мест и под разными именами! Запустил загрузку файла через него — остановить не получилось даже перезагрузкой! Отключение в настройках синхронизации — ноль эмоций! Убить процесс получилось только анлокером, который показал, что эта хрень себя под видом эксплорера записала. Вот такие вот клиенты для удобства.

    Reply
  25. webester

    (22)Маил ру действительно выдавал террабайт раньше. Акции нет той уже давно. Мега дает 50гигов из тех кто дает много со старта. Еще если у вас больше одного компьютера, то удобно использовать btsync, там нет ограничений на размер папки, он кстати хранит версии файлов. Для любителей открытого кода есть Syncthing я не знаю, что у него с версионированием.

    Reply
  26. mistermp3

    Статья понравилась. Короткое howto. Стоит продолжить — написать о версионировании при коллективной разработке таким же лаконичным слогом.

    В качестве альтернативы применению, описанному именно в этой статье, может выступать теневое копирование средствами Windows — машина времени без необходимости коммититить и устанавливать дополнительное ПО

    Reply
  27. tsukanov

    Для таких целей на винде есть «гит» гораздо проще и прямо из коробки. Это теневые копии.

    Ну это как вариант просто. (add: блин, запостил и только увидел комментарий выше. пардон (: )

    А вообще хотелось бы видеть статьи почему гит плох для балансу.

    Я хоть и сам активный юзер гита для всего.

    Но вот это повальное увлечение всех и вся такой примитивной технологией удручает.

    Reply
  28. t.v.s.

    (24)

    Исходники лежат на гитхабе в открытом доступе https://github.com/meganz

    Лично мне мега нравится как раз тем, что там нет таких приколюх как у яндекса и мэйла, ничего лишнего не ставит, нигде не прописывается, удалять легко. Но жто все мое личное мнение, ни в коем случае не призываю пользоваться именно ей

    Reply
  29. nvv1970

    Помнится еще до появления облачных дисков приходилось как-то извращаться. Да и со скоростями интернета тогда были трудности…

    С приходом того же дропбокса, а за ним и прочих гуглов и яндексов, зачем все эти качели нужны??? Объясните… и приведите примеры???

    Без сравнения преимуществ статья выглядит… кхе-кхе… как-то не очень. В свете программирования, хранилищ разработки — понятно. Но статья построена на примерах работы с офисными файлами. Буду рад подробностям.

    ПС: А вы знаете, что, как минимум, в дроп и скайдрайв версионирование тоже есть? А скайдрайв позволяет еще разным пользователям совместно редактировать, например, word прямо из приложения (без вебморды)?

    ППС: все мои файлы на гитхабе будут публичные?? Частные репозитории только за деньги?

    Reply
  30. webester

    (30)Гит и гитхаб это не одно и тоже. Если нужны бесплатные приватные репозитории используйте bitbucket. У них деньги берут только с команды.

    Reply
  31. the1

    (21) Ну ппц. У Чистова же простая текстовуха, её глазами пробежать можно, что она может сделать.

    Reply
  32. herfis

    (30) На bitbucket (тоже облачный git) есть бесплатные приватные репозитории (сколько-то штук бесплатно, потом платно). Но можно и на гитхабе покупать. Облачное версионирование с веб-инструментарием — классно же.

    Дропбокс версионирование не пробовал, но общепринятая CVS всяко получше для версионирования будет 🙂

    Reply
  33. webester

    (33)

    На bitbucket (тоже облачный git) есть бесплатные приватные репозитории (сколько-то штук бесплатно, потом платно)

    неограниченное количество бесплатно

    Reply
  34. Fox-trot

    так и не понятно для чего здесь именно гит

    Reply
  35. for_sale

    тут есть множество НЕпрограммистов, для них и писалось. Последний абзац специально писал, чтобы разъяснить «почему именно так», но наверное непонятно получилось.

    Хардрезет в описанных случаях лучшее решение, если есть аргументы почему нет — пишите. Может когда-нибудь в интернетах начнут писать не «вот это вот — г**** «, а «вот это вот г****, потому что…, а на самом деле лучше бы вот так…».

    Reply
  36. for_sale

    (30) уже несколько раз в комментарий объяснял — почему, почитайте, пожалуйста

    Reply
  37. alex_sh2008

    (0)А чем не устраивают службы теневых копий?

    Reply
  38. 2PRV

    Ваша статья вызвала много вопросов:

    1) Вот вы пишите

    И вот тот чёрный день, к которому мы так готовились, настал.

    Файл исчез и его нужно восстановить:

    А что мешает исчезнуть таким же образом папке с репозиторием? Если клиент может удалить нужный файл, то ничего ему не мешает удалить и папку с репозиторием.

    2)


    -Изменили файл, сохранили, закрыли и теперь хотим сохранить его в хранилище, чтобы не потерять.

    -Открываем Git GUI.

    -Жмём на кнопку Stage Changed.

    -Пишем комментарий в нижнем поле.

    -Жмём кнопку Commit.

    Правда, ничего сложного?

    Вы правда считаете, что ничего сложного? Когда работаешь только с одним файлом целый день, то конечно проблем нет. А что делать, если открыто 100500 файлов? Немного поменял тут, немного там — замучаешься отслеживать и переключаться из любимого Word в Гит, а в идеале после каждого сохранения нужно открывать гит и делать коммит. Если вас это не напрягает — значит у вас все хорошо с самоорганизацией и ничего вам не мешает точно с таким же успехом создавать каждый вечер архив вашей нужной папки и складывать его на другой физический носитель.

    3) У многих организаций есть что то вроде файлового сервера (обзовем его общая папка)и все рабочие файлы хранятся там. К этой общей папке имеют доступ много пользователей. И когда пользователю нужно поменять файл он не копирует его к себе на машину, а меняет сразу на сервере. Что делать в этом случае? Создавать репозиторий на сервере и заставлять всех пользователей использовать гит?

    4) Для обычного пользователя слишком много ненужных и непонятных кнопок.

    Почему то мне кажется, что данный подход это про то как забивать микроскопом гвозди.

    Reply
  39. speshuric

    (2)

    Использовать гит для версионирования бинарных да и вообще любых не текстовых файлов, не имеет смысла.

    Почему это? Ну да, если файл сжатый, то object в папке .git на каждую версию будет того же размера, что и сам файл. Да, тот же sourcetree не покажет дифф, но версионирование вполне имеет смысл и тот же GitLab обращает внимание на особенности работы с нетекстовыми данными (в частности для гейм-девелопмента).

    Reply
  40. webester

    (40)

    Почему это?

    Ну я уже писал об этом. Потому что бинарный файл может изменяться не так, как ты этого ожидаешь. Решит программа перестроить индексы или поменять какие то вещи внутри документа и мы получим другой бинарник, изнутри, но абсолютно идентичный при работе с ним через программу. Офисные документы к примеру это пожатые xml файлы.

    Reply
  41. Makushimo

    Верстка статьи очень удобная.

    Reply
  42. VmvLer

    из инструкции в сабже

    Нажать нужно будет несколько раз, в окне будут мелькать всякие непонятные слова — ни в коем случае не читайте их и не меняйте никакие настройки, только нажимайте на одну вышеупомянутую кнопку

    После такой рекомендации чувствуешь себя не очень и уважение к продукту падает почти до нуля.

    почему бы не переименовать инфостар в форум «хозяюшки» или «кухарки»

    Reply
  43. for_sale

    (43) А что в этих мелькающих словах вам очень нужно в свете описанного применения? Конвертация символов окончания строки линукс в виндавс? Или использовать Вим или встроенный блокнот?

    Reply
  44. speshuric

    (41) Не соглашусь. Гиту по большому счету плевать бинарник это, текст или еще что. Более того, почти во всех публичных значимых репозиториях достаточно много нетекстовых файлов, например картинки, документация в pdf, особо нужные версии библиотек, тестовые файлы, драйверы периферийных устройств (которые производители отдают бинарниками). Да, в большинстве случаев diff не получить (хотя картинки некоторые уже сравнивают). Да, бывает, что идентичный по смыслу файл будет отличаться. Но в целом версионирование таких файлов смысл имеет. И по большому счету достаточно удобно версионировать медиа-файлы при работе с аудио и с графикой.

    Если закарываться внутрь движка, то на самом этапе коммита работа с «полностью изменяющимися бинарниками» и «на небольших текстовых отличиях между версиями» практически идентична. Файл изменился? В индекс! Хотя и Evil Beaver в (9) прав — если репозиторий состоит из больших и сильно меняющихся файлов, то он будет расти гораздо быстрее, чем при небольших компактных отличиях.

    Reply
  45. webester

    (45)Может я непонятно объяснил? Попробую в третий раз и на пальцах. Если в текстовом файле ты изменил одну букву, то гит и запишет изменение в одну букву. Если ты изменил в екселе одну букву, то может оказаться, excel решит что будет оптимально переместить эту секцию и так как файл пожат, то изменится весь файл. И будет при незначительном изменении у тебя лежать весь файл. То есть содержимое файла ты не контролируешь. Очень удобно при пушах да. Бинарники в репозиториях подозреваю не от хорошей жизни. А потому, что они нужны при сборке проекта. Я не знаю, как у вас происходит работа. Но я делаю коммит где-то один, два раза в день. Если весь день работаю над проектом который лежит в репах. И когда я делаю коммит я почти каждый раз, когда пишу коммент к коммиту, начинаю вспоминать, чего там делал,то? Если правки мелкие и много. Лезу смотреть в дифы(допускаю, не у всех такая дыра в голове, как у меня). Если там бинарник, эта задача усложнится 🙂

    Reply
  46. collider

    А есть информация, зачем вот это вот всё, если есть уже встроенная в windows служба «Volume Shadow Copy«?

    Reply
  47. speshuric

    (46) Может это я непонятно объяснил?

    1. При коммите гит запишет изменение файла в виде нового object (если не найдёт такой же файл по хешу). Не факт, что гит будет хранить в этом виде потом, но при коммите один фиг — создаст новый object. Я же специально даже ссылочки приложил на почитать.

    2. Проблема сравнения — исключительно проблема инструментария. Если инструментарий может показать разницу удобно, то никого не заволнует насколько реально различаются файлы. Так-то и текстовые файлы могут доставить много веселого при сравнении. Помню в какой-то из 1С 8.0 разработчики платформы поломали переводы строк и в модулях были 0x0D0D0A вместо 0x0D0A или как-то так. Это взрывало мозг не только 1С-ному сравнению, но и куче других внешних инструментов. Похожим образом некорректные utf-8 файлы сводят с ума diff tools.

    3. Бинарники в репозитариях потому что этот бинарник — часть проекта. Да, гит эффективнее работает с текстовыми изменениями. Но почти любой проект будет содержать не только текст.

    4. Я когда разрабыатваю, то коммит — почти как «сохранить», т.е. 10-20 в день — минимум. Ну правда перед пушем делаю squash и вообще причесываю.

    Reply
  48. VmvLer

    (44) суть в отношении к потребителю, а не в мелькающих словах.

    Такой абзац в инструкции намекает на то, что отношение к потребителю скотское!

    Если я не прав, значит у меня обостренное чувство справедливости)

    Reply
  49. kote

    Git не про бекапы. Он — про управление версиями и совместную работу над ресурсами.

    Конечно, и так можно использовать. Но лучше настройте что-то типа «тайм-машин» как системную службу на нужных каталогах и не парьтесь..

    Я выделял под документы отдельный раздел диска и использовал ComodoTimeMichine (freeware) — настроил её делать снепшоты раз в сутки (можно ярлычок сделать с командой на рабочем столе).. очень достойная штука. Жаль, что перестали поддерживать — последняя версия на Win7 (но опытным путем установлено, что работает оно и с WinServer2012).

    Посмотрите на современные аналоги этой программы — может быть будет проще..

    Reply
  50. DDA4746

    Как-то до конца статьи был уверен, что речь про облачное хранение версий…

    Спасибо комментариям, понял, что суть статьи — «как усложнить простое».

    Нужно версионирование отдельных небольших рабочих файлов?

    Сохраняйте их в формате «Имяфайла_версия 1». При наличии в папке даже нескольких сотен объектов поиск нужного занимает секунды — конечно, если само «Имяфайла» начинается с корректного идентификатора.

    Например, у меня есть файлик-реестр (или система управления заявками на изменение, не суть); начинаю название файла с одинаковых символов и номера заявки: «ЗИ 1-111 ЧТЗ 2 Доработка чего-то там вер.1». и при сортировке по наименованию в папке вижу выстроенные сначала по номеру заявки и затем — по версии ЧТЗ файлы. Рядом лежат макеты (например, в экселе) — они называются ЗИ 1-111 Макет (нужны версии макетов — добавляю их по тому же принципу в название).

    Немножко привычки — и трудоемкость поиска нужного документа уменьшается на порядок.

    Нужен бекап? Работаем на сервере по РДС и бекапимся штатными средствами сервера.

    Для колхоза и пользователей с локальными машинами — лет ..цать назад использовал банальное и очевидное «эникейское» решение: суем в менеджер расписаний винды вызов какого-нить архиватора с параметрами запуска, который жмет всю нашу папку со всеми версиями в архив с датой/временем в наименовании, и кладет архив на сетевую файлопомойку. Даже если папка будет весом в полгига, архив жмется до 5% исходного объема; цена хранения — копейки, и периодически (раз в полгода?) можно удалять ненужные архивы вручную.

    Все — без участия юзверя и утомительных ручных операций по созданию версии каждого файла.

    Для несекретных данных — можно использовать OneDrive или гуглодиск; если кто-то из специалистов захочет получить ваши даннные — он их получит даже из сейфа методом терморектального криптоанализа, случайные же люди вряд ли разберутся в обычной папке обычного пользователя, даже получив к ней доступ 🙂

    Reply
  51. for_sale

    (32) а мне так и ответили — закрытый исходный код, приходите ещё.

    Reply
  52. for_sale

    (49) Такой абзац в инструкции намекает на то, что пользователю из целевой аудитории наплевать на символы конца строки, у него есть задача, которую надо выполнить, не забивая себе голову. А разглагольствования некоторых авторов материалов, тешащие их самолюбие ощущением всезнания там, где пользователю наплевать, очень утомляют, по себе знаю.

    Reply
  53. for_sale

    (51)

    Сохраняйте их в формате «Имяфайла_версия 1»

    Многих знаете, кто так делает? Я так делал — именно после того, как это очень задолбало, начал искать альтернативы.

    Нужен бекап? Работаем на сервере по РДС и бекапимся … суем в менеджер расписаний …

    Простой пользователь (а для него и писался материал) умеет это всё? Более того, я непростой пользователь, но меня даже читать этот процесс утомило, не то, что делать, так и не понял, чем это выгоднее того, что я описал? Вот у меня папка с внешними обрабтками, я её берегу, ваше решение чем лучше моего в этой конкретном случае? Или вы решили ешё больше «усложнить простое»?

    методом терморектального криптоанализа

    Из сейфа — возможно. Но для электронных данных гуглите Трукрипт и правдоподобное отрицание.

    Reply
  54. DDA4746

    (54)

    Вы считаете разумной альтернативой делать то же самое (но вместо имени файла писать в описание версий), имея при этом огромное количество дополнительных кликов для создания версии? Нуфф сказал..

    Простому пользователю куда проще погуглить «менеджер расписаний», чтоб найти, как это запустить — а дальше все интуитивно понятно. Это если мы работаем в деревне и вынуждены сами заботиться о бекапах своих данных.

    Для всего остального есть мастеркард.. т.е. сисадмин, прямой обязанностью которого является организация бекапов. Опять же, мы не рассматриваем варианты, когда админ — рукожоп и не делает таких элементарных вещей; в таком случае лучше сменить место работы 🙂

    Reply
  55. amon_ra

    (1)делать скорее не ветку надо, а именно репозиторий. как создавать репозитории можно почитать именно статьи по работе с git.

    Reply
  56. blackhole321

    А чем не подошли Volume Shadow Copy + Предыдущие версии, если клиент Windows?

    Reply
  57. ivanov660

    Не увидел описания решения конфликтов. Если с ГИТ будет работать более одного человека, то конфликты будут появляться довольно часто. И при первой проблеме будет стоп в работе и круглые глаза у неподготовленного пользователя.

    На практике автор использовал данное решение с пользователями не программистами?

    Reply
  58. Serg O.

    есть свои +++

    например, доступ к файлам (версиям) в любое время… и из любого места (извне)

    но есть и «—»

    вопрос «кто это сделал?» кто удалил файл… или заменил его на копию недельной давности

    в ситуации, когда commit делает 1 человек (или некий робот по расписанию)…

    или вы предлагаете всем дать доступ к этому репозитарию… и как-то заставить после изменения…

    ещё и заставить пользователей комитить свои изменения под своей учёткой… как-то сложновато.

    систем версионирования и синхронизации на данный момент… очень и очень много

    кроме того даже в Word (office) и в Windows (синхронизация) — есть свои варианты

    Reply
  59. gubanoff

    (57)

    Volume Shadow Copy + Предыдущие версии, если клиент Windows?

    Напишите, плиз, инструкцию, как это дело настроить на Windows 10. Реально не умею.

    Reply
  60. blackhole321
  61. Serj1C

    как настроить автоматическое сканирование изменений и коммит ежедневно?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *