О том, что такое Git, написано очень много скучнейших книг, сайтов, статей и видеокурсов, которые своими заумными объяснениями слабо проливают свет на предмет, но отлично лечат от бессонницы. Сегодня же я расскажу, как использовать эту штуку, которую даже не все программисты понимают, обычному пользователю для самых простых нужд, далёких от "контроля версий" и "нелинейной разработки".
Какие проблемы мы будем решать:
- В папке был вордовский (или экселевский) файл с очень важными данными, а теперь он куда-то пропал. Или случайно удалился в корзину, а потом случайно же удалился из корзины. Или в один прекрасный день перестал читаться, при открытии пишет ошибку.
- Другой важный файл, но его случайно затёрли — сохранили другой файл под его именем.
- Флешка уже давно барахлила, а теперь файлик на ней не открывается.
- Писал внешнюю обработку, отключилось электричество, включил компьютер, но обработка теперь не открывается, пишет "Неверный формат данных", а там — годы работы (у многих программистов на этом месте побежала слеза; у автора этих строк — целый поток слёз).
- Пишу ТЗ, нужно постоянно сохранять его версии, надоело копировать файл под тем же именем с номером версии.
От всех этих болезней поможет вылечить Git. Если говорить простым языком — это такая штука, которая сохраняет копии ваших файлов. Но делает это удобно, быстро и безошибочно, если правильно с ней работать.
Большинство вышеупомянутых книг и курсов по Git учит работать с ним из командной строки. Ни в коем случае так не делайте, если только вы не специально обученный программист и не собираетесь использовать его в команде на проекте!
Качаем
Скачиваем вот такую программку:
Устанавливаем
После того, как скачали, жмём на файле правой кнопкой и в меню выбираем "Запуск от имени администратора":
Рис.1
Откроется окно установки. В нём вам нужно постоянно нажимать на кнопку "Next". Только на одну эту кнопку! Нажать нужно будет несколько раз, в окне будут мелькать всякие непонятные слова — ни в коем случае не читайте их и не меняйте никакие настройки, только нажимайте на одну вышеупомянутую кнопку. В самом конце появится кнопка "Finish", нажмите на неё. Всё, программа установлена.
Готовимся
Прежде, чем мы начнём настраивать нашу программу, нам нужно понять, что именно мы хотим сберечь, какие файлы. Сразу скажу — настроить хранилище так, чтобы оно сохраняло весь диск C и диск D в придачу не получится. Дело в том, что хранилище сохраняет КАЖДЫЙ файл в папке. Поэтому если у вас в папке рядом с вордовским файлом, который нужно не потерять, лежат оставленные на всякий случай реестры по выплате ЗП из 1С, прошлогодние выгрузки клиент-банка, фотки и видео с корпоратива и только что скачанный новый сезон "Игры престолов", то ваше хранилище рискует забить всё свободное место на диске. Ещё хуже, если рядом с нужным файлом лежит папка с базой 1С, с которой вы работаете — каждый раз при выключении 1С файл базы будет незначительно изменяться, из-за чего каждый раз хранилище будет его целиком копировать.
Поэтому очень важно правильно организовать ваши файлы. Определитесь, какие файлы вам точно нельзя потерять, а какие не несут особой ценности.
Покажу на примере. Вот одна из папок, в которой хранится работа по клиенту:
Рис.2
Что мы здесь видим? Во-первых, сразу видны папки с базами 1С. Для баз 1С есть гораздо более подходящие способы сохранения данных, поэтому в нашем хранилище эти папки не нужны. В папках "Архив" и "Поставка" хранятся неактульные файлы или файлы, которые можно получить из других источников, т.е. ничего суперважного. Дальше идут файлы — типовые обработки, какие-то скриншоты, какие-то временные заглушки и файлы, полученные по почте. Тоже ничего важного и невосстановимого. А всё важное и требующее внимания хранится в папке "Хранилище", там несколько внешних обработок и вордов-экселей, которые восстановить неоткуда.
Размер всей папки — 6 гигабайт, размер папки "Хранилище" — 1 мегабайт, в 6000 раз меньше!. Почувствуйте разницу.
Поэтому важно понимать, что настраивать хранилище нужно именно на папку, все файлы которой очень нужно сохранить. Если у вас в папке лежат вперемешку важные и не очень важные файлы (или файлы, которые можно легко восстановить из почты, с других компьютеров или ещё откуда) — создайте внутри этой папки ещё одну, переложите в неё только важные файлы и уже на неё настраивайте хранилище.
Ещё один критерий — частая изменяемость важных файлов. Например, фотки с корпоратива тоже важны и их тоже нельзя потерять. Но настраивать на них хранилище бессмысленно, проще один раз скопировать их на флешку/домашний ноутбук/на компьютеры коллегам.
Настраиваем хранилище
Настройка выполняется один раз, поэтому можете не запоминать порядок действий, просто следуйте данной инструкции.
Для примера я создаю хранилище для вот такой папки:
Рис.3
В меню "Пуск" — "Все программы" после установки программы появился раздел Git. Внутри будут такие ярлыки:
Рис.4
Сейчас и вообще всегда вам будет нужен только тот, который я обвёл красным — Git GUI. Нажмите на него и увидите такое окно:
Рис.5
Нажмите на верхнюю синюю надпись — "Create New Repository". Появится такое окно:
Рис.6
Вначале нажмите на кнопку "Browse" (на картинке она под цифрой 1). Появится окно выбора папки, файлы в которой вы хотите сберечь. Выбрали папку, жмём кнопку "Create" (на картинке — 2). Теперь мы видим вот это:
Рис.7
Всё, хранилище создано.
В верхнем меню выберем пункт Edit, в появившемся меню выберем Options:
Рис.8
Открылось окно настроек. Заполните поля вверху как показано на картинке:
Рис.9
Жмём ОК, настройка завершена.
Несколько хранилищ
Если вам нужно оберегать несколько папок (а так, скорее всего и будет), то вам нужно будет создать несколько хранилищ. Я имею в виду не вложенные папки, а отдельные. Т.е. если вы хотите создать хранилище для папки D:Test, то все подчинённые папки тоже войдут в это хранилище, нет нужды создавать отдельное хранилище для папки D:TestНовая. Но если нужно сохранить ещё и папку D:Clients, например, то нужно будет создать ещё одно хранилище.
Порядок действий тут будет такой же, как в предыдущем разделе — открываете Git, Жмёте Create New Repository, выбираете папку, которую нужно сохранить и так далее. Отличие заключается в том, что НЕ нужно будет выполнять настройку на рисунках 8 и 9.
Работа с хранилищем
Опять запустим Git GUI, как это уже было показано на рисунке 4.
Откроется знакомое нам окно, но выглядит оно немного по-другому:
Рис.10
Теперь тут появилась ссылка на наше хранилище. Нажмём на неё и увидим окно, которое уже видели на рисунке 7. Посмотрим на него поближе.
Вверху справа, под жёлтой полосой ненужное нам поле, не обращаем на него внимания.
Вверху слева поле Unstaged Changes. Тут будут перечислены файлы, которые были добавлены в папку, изменены или удалены из папки со времени последнего сохранения в хранилище:
Рис.11
Справа снизу видим раздел Staged Changes. Тут будут файлы, которые уже готовы к сохранению в хранилище. Тут пока ничего нет, но мы сейчас начнём жать на кнопки и тут обязательно что-то появится:
Рис.12
Наконец, снизу до правого края — кнопки управления и поле для комментария:
Рис.13
Вся работа с хранилищем заключается в нажатии на кнопку Stage Changed, после которой файлы из верхнего левого поля перейдут в нижнее левое:
Рис.14
… написании комментария в поле внизу и нажатии на кнопку Commit:
Рис.15
Вот и вся работа с хранилищем!
Ещё раз порядок действий:
- Изменили файл, сохранили, закрыли и теперь хотим сохранить его в хранилище, чтобы не потерять.
- Открываем Git GUI.
- Жмём на кнопку Stage Changed.
- Пишем комментарий в нижнем поле.
- Жмём кнопку Commit.
Правда, ничего сложного?
По поводу комментария — комментарий нужно писать обязательно, без него не сохраняется. Можно, конечно, ставить просто единичку или букву, а можно расписать — что было изменено. Ещё можно сюда вписывать номер версии — подойдёт, если вы пишете, например, ТЗ или какую-то внешнюю обработку.
Всё, что ниже, можно не читать, пока файлы на месте и никаких проблем с ними не возникает. Ну или пока не возникнет необходимость посмотреть предыдущую версию файла.
Страховой случай
И вот тот чёрный день, к которому мы так готовились, настал.
Файл исчез и его нужно восстановить:
Рис.16
Опять запускаем наш Git GUI. В уже знакомом нам окне мы видим в поле Unstaged Changes наш файл. Система говорит нам, что он удалён. Спасибо, мы заметили. В верхнем меню нажимаем на первый пункт Repository. В появившемся меню выбираем Visualize master’s History:
Рис.17
Открывается большое и страшное окно с кучей непонятных слов:
Рис.18
На самом деле ничего страшного тут нет, можете вообще не смотреть никуда, кроме верхнего левого угла. Видите светофор? Нас интересует жёлтая точка с зелёной надписью master — это последнее сохранённое состояние, проще говоря — последняя живая копия нашего файла. Кстати, видите надписи правее от этих разноцветных точек — в.1, в.2, в.3? Это те комментарии, которые вы оставляете при сохранении хранилища (рисунок 15). Теперь понимаете, почему лучше писать осмысленные комментарии?
Итак, на последнем синем комментарии (у меня это в.3) нужно нажать правой кнопкой. Обратите внимание — именно на нём, а не на master. Нажали на комментарии правой кнопкой и в меню выбираем Reset master branch to here:
Рис.19
Выскакивает окошко, в котором мы выбираем нижний пункт и жмём ОК:
Рис.20
Теперь окно приняло вот такой вид:
Рис.21
Т.е. красная точка над master исчезла. Всё, готово!
Идём в нашу папку и видим:
Рис.22
Открываем его и видим:
Рис.23
Да, всё в порядке, это последняя версия файла.
Упражнение со звёздочкой
Если нужно не восстановить последнюю версию файла, а посмотреть-сохранить одну из прошлых версий, тогда нужно выполнить те же действия, только выбрать не в.3, а в.2, например. После того, как вы выполните все действия из прошлого раздела, окно примет такой вид:
Рис.24
А файл при открытии примет вид нужной версии:
Рис.25
Но здесь нужно быть внимательным. Так как файл, скорее всего, нужен нам не ВМЕСТО последней версии файла, а ВМЕСТЕ С ней, то нужно выполнить парочку дополнительных действий:
- Копировать полученный файл предыдущей версии в другую папку. Папка НЕ должна быть внутри папки с хранилищем.
- Опять выполнить все действия из предыдущего пункта, но на этот раз выбирать последнюю версию (в моём примере — в.3), чтобы вернуть файл к последнему состоянию. Если вы не выполните этот пункт, то потеряете все изменения, которые были сделаны после версии, которую вы восстановили (в этом примере — всё, что было после версии 2).
Заключение
Я постарался сделать эту инструкцию максимально простой и понятной для широкой публики. Поэтому тут нет углублений в теорию, сравнений разных программ для контроля версий, работы с командной строкой, тонкостей и приёмов в работе с Git.
Также Git тут рассматривается именно в контексте такой болезненной и всегда актуальной темы, как потеря данных, а не его применение в разработке на платформе 1С (доказательств того, что в этой области есть что-то лучшее, чем стандартное хранилище 1С, я ещё не нашёл, лет зе холивар бегин). Надеюсь, данное пояснение сняло половину назревавших комментариев 🙂
Related Posts
- Восстановление последовательности документов при закрытии месяца в Бухгалтерия 3.0 не завершается
- Заполнение табличных частей
- Формирование сводных актов выполненных работ
- Ввод поступления в переработку на основании передачи сырья (между организациями)
- Конспект по установке сервера 1С на linux
- Получение имени компьютера и его IP локально и в терминале
Спасибо за статью.
Можно Вас попросить написать, как создать несколько репозиториев.
Например я хочу сделать отдельную ветку для каждого своего клиента по имени клиента.
И какой объем этого хранилища на Гите?
(0) Использовать гит для версионирования бинарных да и вообще любых не текстовых файлов, не имеет смысла. Ничем не отличается от программы которая умеет создавать дифф бекапы. Если хочется красивый гуи к гит попробуйтеhttps://www.sourcetreeapp.com/ или штатную прогу от гитхаб. Очень хорошо помогает понять суть гит проект https://githowto.com/ru без воды все понятно и по существу. Но да, для архивирования бинарных данных там 99% информации не к чему.
(1)Ищите на картинках Create new repository
(2) если конкретно про docx или xlsx говорить, то можно ж их перед коммитомраспаковывать до xml. Или с помощью какого-нитьhttps://pandoc.org/ в markdown конвертировать.
(2) Спасибо за информацию, но красивый гуи мне ни к чему, для тех пары команд мне и этого достаточно. Я сейчас вообще тортуаз использую из-за того, что в нём всё через контекстное меню. Но в статью его включать не стал, чтобы не усложнять. В конце концов эта штука в данном контексте — это «настроил и забыл». И пару раз в день на две кнопки нажал, если надо сохраниться.
У них сразу несколько проблем. Во-первых, как обычно, половина платных или на фримиуме. Во-вторых, у каждой свой интерфейс, форматы и прочие забубоны. В-третьих, пользователю иногда даже найти их сложно, потому что не понятно, что искать. В четвёртых, закрытые исходники, я свои некоторые файлы им бы не доверил. А в пятых, найдёшь такую бесплатную классную программу, отличную — а через месяц разработчики снимут её сразработки. А тут — бесплатно, всё открыто, всё просто.
Эхее… Взять бы этого Канта, да за такие инструкции — года на три в Соловки!
Для бэкапов есть более удобные инструменты. С функцией машины времени в том числе. Конечно, можно и отверткой супу поесть, кто бы спорил.
Но за популяризацию гита спасибо. Теперь бы показать его с правильной стороны в столь же задорном ключе…
(5) А за такие конструктивные комментарии — на сколько в Соловки?
«Креатив г***о, автор м***к, не то, что я, д’Артаньян, всем спасибо». Пока вы тут комментариями швыряетесь, люди данные теряют каждый день, а в интернете шаром покати на эту тему, одни «умные» комментарии.
Например? Они точно удобные? И бесплатные? И без рекламы? И без установки самого-лучшего-в-мире бесплатного антивируса аваст и яндекс.бара и мейлру.амиго как браузера по умолчанию? И без подписки по емейл и номеру телефона? И с открытыми исходниками? И не надо в очередной раз изучать новую систему?
А правильность стороны вы определяете? Или совет из победителей в номинации «Самый конструктивный комментарий года»? Рискну предположить, что ваша «правильная» сторона — это разработка для 1С, где гит, как и любая другая система контроля версий, кроме стандартного хранилища, совершенно бесполезен. Хотя, конечно, можно и отвёрткой супу поесть.
По существу у вас есть какие-то аргументы, чем в данном контексте гит хуже ваших удобных инструментов?
(1) Спасибо за конструктив. Добавил раздел в статью по Вашему вопросу.
Про объём хранилища вопрос не понятен. Если Вы про Гитхаб, то это не то, в данном случае хранилище находится полностью на Вашем компьютере. Если вы о размере, которое хранилище занимает на диске, то каждое хранилище изначально равно размеру папки и увеличивается по мере сохранений. Поэтому я особое внимание уделил вопросу правильного расположения файлов, чтобы сохранялось только то, что нужно. У меня в папке размером 1Мб за полтора года хранилище доросло до 5Мб.
(2) Кстати, с версионированием вордовских файлов гит умеет работать, у меня в сравнении показывает именно изменённый текст (правда, с поломанной кодировкой), а не бинарный код.
Не ожидал такой бури эмоций, если честно… Персонаж, говоривший про Соловки был не самым умным человеком, что, в данном случае, должно было показать некоторую иронию и несерьезность. Не прошло, ну да ладно…
В описываемых вами сценариях банальный дропбокс или облако от мэйл.ру на терабайт (!) — намного полезнее, т.к. хранение бэкапов на том же физическом устройстве, что и данные — это немного за гранью…
Гит эффективен на небольших текстовых отличиях между версиями. Для версионирования произвольных двоичных файлов он неэффективен. Жрет место и превращается в отвертку, вместо ложки.
При установке клиента «Облака» просто не забывайте снимать галочки, чтобы не ставить себе лучшие в мире антивирусы. Или не ставьте его вообще (я, например, не ставлю, но тем не менее хранилищем пользуюсь активно)
(6)
cobian backup точно бесплатный, много лет, без браузера баров и тд. Только то, что нужно. Но в (9) правильно все сказал. Про гит и 1С на этом сайте есть много информации как сделать его полезным. Вот тутhttps://github.com/allustin/awesome-1c тоже можно что-то интересное найти.
(9)
Вы серьёзно? Или опять шутить изволите? Т.е. вы предлагаете хранить личные документы даже не с помощью приложений с закрытым кодом, а вообще в интернете?
Вы хоть понимаете, что ваши комменты может прочесть простой пользователь и действительно, не дай бог, поставит себе какое-нибудь облако от мейлру, начнёт сливать туда какие-нибудь балансы, расчётки, сканы паспортов, чёрную бухгалтерию и прочие прелести. Вы забыли ещё подсказать, чтобы они туда текстовые файлики с паролями выкладывали — от 1С и соцсетей. И сразу фотки банковской карты с обеих сторон.
Простите, не в обиду будет сказано, но заявление типичного программиста 1С 🙂 Который живёт в волшебном мире и программирует для умных, вдумчивых пользователей, которые читают то, что им пишет система и никогда не меняют наименование элементов справочника, на которые у него весь код завязан. Я недавно подключался к пользователю, у которого 1С стоит полтора года, а у него при заходе в базу выскакивает окно с 1Совским спамом. В этом окне есть флажок — Не показывать больше. Но он полтора года каждый день закрывает это окно. А вы тут пишете «ПРОСТО не забывайте снимать галочки».
Повторяю, статья писалась для простых пользователей. Смотришь на картинку, делаешь, забываешь. А не для тех, кто ПРОСТО не забывает снимать галочки, для них действительно есть другие решения.
Именно поэтому я уделил внимание правильной организации папки с файлами. Если в этой папке хранить ворды и эксели (99% файлов целевой аудитории этой статьи), то «сожрёт» оно копейки. Я в таком хранилище храню внешние обработки, места занимает очень немного.
(10)
Да, неплохая штука.
Из минусов — закрытый код, почти ноль информации в интернете, очень как-то сложно всё создаётся, глаза разбегаются. Могу сказать, что простому пользователю такая вещь без подробной инструкции не подойдёт. Ну и опять же — а в чём преимущество? Только в том, что есть автомат. Но по сути если ты работаешь с небольшим количеством файлов, то это не проблема, две кнопки нажать, плюс работал я на проекте, каждый день сохранял, потом ушёл в отпуск, а архивы так и гонит. Какие ещё претензии? За размер тут многие волнуются, бинарники — у этой штуки размеры архивов такие же будут, если не больше. В общем, как обычно, дело вкуса.
Я сказал, что по сравнению с хранением на диске D того же самого компьютера — облака полезнее. Критичные данные защищают шифрованием. А складывать на соседний раздел — проще сразу удалить, чем жить в мнимой безопасности.
Ну и пароли от соцсетей воруют иным образом и гит тут вообще не при чем.
(11)
Тааак и что же произойдет? Я весь в предвкушении. Страшное ФСБ проанализирует переписку или злые хакеры взломают?
Мы говорим немного о разных вещах одними словами. Товарищ вам говорит, что вы версионирование используете в целях бекапов, оно то конечно можно, ничего страшного. Но смысл? Вы просто используете ту особенность гит, что она делает копии, но как бы откладывает только изменения. Ну так и копируйте данные, если вам нужны бэкапы. В посредниках мне кажется не особо большой смысл. Еще один неприятный минус, если у вас будут храниться зашифрованные данные(архив с паролем, по моему даже офисные данные запароленные). При шифровании достаточно изменить один байт в исходном документе, что бы файл изменился полностью. И вы получите все полные копии вашего файла. Это я к тому, что бинарные файлы не всегда меняются так, как вы ожидаете. И да соглашусь с (13) бекапы данных рядом с самими данным это как бы такой себе бекап 🙂 можно сказать ненужный.
(11) но ведь так обычный пользователь и делает! Поделились и хорошо!
А тот обычный пользователь про которого вы говорите уже не тот обычный, а прошаренный, который вот как раз про черную и ищет, чтобы никто и никак, остальным начхать и все в инете хранят, так даже безопаснее!
(14) ну пароли так и воруют — установите наш самый лучший в мире браузер, а заодно и облако. Гит тут и правда не при чём.
(15)
Бинго! гуглите СОРМ. Хотя, тут и без СОРМа всё отлично, он не нужен, если человек сам согласен сливать свои данные на сервер компании, управляемой «соратниками» и находящейся в этой же юрисдикции.
Да и банально — половина компаний, в которых я работал на проектах, не разрешает лить ничего в Междусеть. Как быть в этом случае? Более того, некоторые админы настолько ответственно относятся к своим обязанностям, что не ставят ничего с закрытым кодом или не разрешённое руководством Т.е. даже не получится упросить поставить себе вышеупомянутый кобиан.
Про бинарные данные все тут совсем испугались. Мне интересно, у кого-то есть решение, которое хранит именно отличия между файлами любых типов, а не их полные копии? т.е. кобиан мне развернёт внешнюю обработку 1С и сохранит именно разницу в ней? С удовольствием изучу такое решение. Правда пока только одно назвали (неподходящее под этот критерий), остальные уже двадцать комментариев упоминаются только как «другие». И, кстати, гит в вордовских файлах действительно хранит разницу, а не полную бинарную версию.
То, что бекап рядом с данными — да, в этом есть минус. Но из своей практики могу сказать, что бОльшая часть потерь данных — это затёртый сохранением файл, файл который просто перестал открываться (сюда идёт и внешняя обработка 1С с «Неверным форматом данных» — если бы мне лет пять назад рассказали про Гит, сколько работы не пришлось бы делать второй раз; сюда же поломанные архивы относятся), файл который удалили непонятно как и зачем, битые сектора на диске, из-за которых файл не открывается, а файл рядом — открывается. Добавьте сюда ещё один довольно часто встречающийся вопрос пользователей о версионировании («Я прошлую версию ТЗ писала, а потом заказчик отказался, я переписала, а теперь он опять хочет первую версию, мы же можем её восстановить???») — и назовите мне решение с открытым кодом, бесплатное, без необходимости лезть в инет, без мейлруамигояндексбаров и простое в использовании, которое бы сюда подходило лучше. Возможно, они есть, но ещё никто не назвал ни одного, мы только поняли, что «гит точно не подходит, но есть очень много других, которые нельзя называть».
(16) В этом и есть задача нас, «чуть более обычных пользователей» — решать проблемы просто обычных пользователей. Пользователи (да и программисты тоже) постоянно теряют данные, но
власти скрываютв интернете ничего об этом не пишут, а когда пишешь решение, которое будет работать здесь и сейчас — все резко бегут писать, что это чушь, никому это не надо, есть много гораздо «более лучших» решений (без упоминания оных).(18)
Даже 1С нельзя и ворд и эксель ай ай ай а они с закрытым кодом. А про виндовс(для него же написана статья) я вообще молчу, там мало того, что код закрыт, так еще он прямо иногда говорит, что возьмет то, что посчитает нужным как же к этому относятся добропорядочные админы? ))) ужас какой-то. Никто не говорит, о секретных решениях, потому, что они никому не нужны вот и нет на слуху а гуглить лень. Я использовал для этого дропбокс когда для меня важны были версии, поигрался какое-то время и бросил. И совсем непонятно, то у вас все серьезно и админы и политика не ставить без открытого кода и тд(используйте частную реализацию дробпокса которую можно развернуть на своем сервере с открытым исходным кодом), то надо что бы просто и любая домохозяйка раз два и готово(используйте дропбокс он умеет версионирование и бекап будет вам бонусом). И кстати сорм тут будет бесполезен. Шифрование и серваки в штатах. А их бояться винду не юзать.
(20)
Выделю то, что уже писал:
Т.е., например, раскладку клавиатуры Чистова мне не разрешили ставить. А Git — разрешили. Надеюсь, так понятнее.
(13) мне прям даже стало интересно, где это террабайт целый раздают! Но нашёл только 128 гб за 150 рублей в месяц! Отличная альтернатива бесплатной программе! 🙂
(11)
mega.nz — Открытый код, шифрование на стороне клиента, клиенты под все распространенные платформы
(23) Да, неплохо, но тот же мелкий шрифт и звёздочки — из 50 гб реально можно юзать 15, остальные 35 даются на 30 дней, ограничения на трафик и т.п. Про открытый исходный код не нашёл, но приманка в виде дополнительных 20 гб за установку клиента на комп и ещё 15 за мобильный напоминают поговорку о бесплатном сыре.
Опять же — если говорить о продвинутых пользователях — то я сам использую облака, вроде яндекса и гугла, мегу тоже попробую. Но ТОЛЬКО с трукриптом! Обычному пользователю такие решения можно только навязывать, пользуясь неосведомлённостью. Возможно, кому-то это подходит, но многим (и мне на их месте) — нет, поэтому я не пишу о сервисах с подводными камнями, требующих заумных слов вроде «шифрование на стороне клиента» или «трукрипт».
Клиенты таких сервисов ставить себе на комп — это вообще жесть, я задолбался удалять Яндекс.Диск. Это не сервис, это вирус! В куче папок пользователей прописался, в службы, причём так, что я его только через реестр нашёл, в реестре тоже в миллион мест и под разными именами! Запустил загрузку файла через него — остановить не получилось даже перезагрузкой! Отключение в настройках синхронизации — ноль эмоций! Убить процесс получилось только анлокером, который показал, что эта хрень себя под видом эксплорера записала. Вот такие вот клиенты для удобства.
(22)Маил ру действительно выдавал террабайт раньше. Акции нет той уже давно. Мега дает 50гигов из тех кто дает много со старта. Еще если у вас больше одного компьютера, то удобно использовать btsync, там нет ограничений на размер папки, он кстати хранит версии файлов. Для любителей открытого кода есть Syncthing я не знаю, что у него с версионированием.
Статья понравилась. Короткое howto. Стоит продолжить — написать о версионировании при коллективной разработке таким же лаконичным слогом.
В качестве альтернативы применению, описанному именно в этой статье, может выступать теневое копирование средствами Windows — машина времени без необходимости коммититить и устанавливать дополнительное ПО
Для таких целей на винде есть «гит» гораздо проще и прямо из коробки. Это теневые копии.
Ну это как вариант просто. (add: блин, запостил и только увидел комментарий выше. пардон (: )
А вообще хотелось бы видеть статьи почему гит плох для балансу.
Я хоть и сам активный юзер гита для всего.
Но вот это повальное увлечение всех и вся такой примитивной технологией удручает.
(24)
https://github.com/meganz
Исходники лежат на гитхабе в открытом доступе
Лично мне мега нравится как раз тем, что там нет таких приколюх как у яндекса и мэйла, ничего лишнего не ставит, нигде не прописывается, удалять легко. Но жто все мое личное мнение, ни в коем случае не призываю пользоваться именно ей
Помнится еще до появления облачных дисков приходилось как-то извращаться. Да и со скоростями интернета тогда были трудности…
С приходом того же дропбокса, а за ним и прочих гуглов и яндексов, зачем все эти качели нужны??? Объясните… и приведите примеры???
Без сравнения преимуществ статья выглядит… кхе-кхе… как-то не очень. В свете программирования, хранилищ разработки — понятно. Но статья построена на примерах работы с офисными файлами. Буду рад подробностям.
ПС: А вы знаете, что, как минимум, в дроп и скайдрайв версионирование тоже есть? А скайдрайв позволяет еще разным пользователям совместно редактировать, например, word прямо из приложения (без вебморды)?
ППС: все мои файлы на гитхабе будут публичные?? Частные репозитории только за деньги?
(30)Гит и гитхаб это не одно и тоже. Если нужны бесплатные приватные репозитории используйте bitbucket. У них деньги берут только с команды.
(21) Ну ппц. У Чистова же простая текстовуха, её глазами пробежать можно, что она может сделать.
(30) На bitbucket (тоже облачный git) есть бесплатные приватные репозитории (сколько-то штук бесплатно, потом платно). Но можно и на гитхабе покупать. Облачное версионирование с веб-инструментарием — классно же.
Дропбокс версионирование не пробовал, но общепринятая CVS всяко получше для версионирования будет 🙂
(33)
неограниченное количество бесплатно
так и не понятно для чего здесь именно гит
тут есть множество НЕпрограммистов, для них и писалось. Последний абзац специально писал, чтобы разъяснить «почему именно так», но наверное непонятно получилось.
Хардрезет в описанных случаях лучшее решение, если есть аргументы почему нет — пишите. Может когда-нибудь в интернетах начнут писать не «вот это вот — г**** «, а «вот это вот г****, потому что…, а на самом деле лучше бы вот так…».
(30) уже несколько раз в комментарий объяснял — почему, почитайте, пожалуйста
(0)А чем не устраивают службы теневых копий?
Ваша статья вызвала много вопросов:
1) Вот вы пишите
Файл исчез и его нужно восстановить:
А что мешает исчезнуть таким же образом папке с репозиторием? Если клиент может удалить нужный файл, то ничего ему не мешает удалить и папку с репозиторием.
2)
-Изменили файл, сохранили, закрыли и теперь хотим сохранить его в хранилище, чтобы не потерять.
-Открываем Git GUI.
-Жмём на кнопку Stage Changed.
-Пишем комментарий в нижнем поле.
-Жмём кнопку Commit.
Правда, ничего сложного?
Вы правда считаете, что ничего сложного? Когда работаешь только с одним файлом целый день, то конечно проблем нет. А что делать, если открыто 100500 файлов? Немного поменял тут, немного там — замучаешься отслеживать и переключаться из любимого Word в Гит, а в идеале после каждого сохранения нужно открывать гит и делать коммит. Если вас это не напрягает — значит у вас все хорошо с самоорганизацией и ничего вам не мешает точно с таким же успехом создавать каждый вечер архив вашей нужной папки и складывать его на другой физический носитель.
3) У многих организаций есть что то вроде файлового сервера (обзовем его общая папка)и все рабочие файлы хранятся там. К этой общей папке имеют доступ много пользователей. И когда пользователю нужно поменять файл он не копирует его к себе на машину, а меняет сразу на сервере. Что делать в этом случае? Создавать репозиторий на сервере и заставлять всех пользователей использовать гит?
4) Для обычного пользователя слишком много ненужных и непонятных кнопок.
Почему то мне кажется, что данный подход это про то как забивать микроскопом гвозди.
(2)
Почему это? Ну да, если файл сжатый, то object в папке .git на каждую версию будет того же размера, что и сам файл. Да, тот же sourcetree не покажет дифф, но версионирование вполне имеет смысл и тот же GitLab обращает внимание на особенности работы с нетекстовыми данными (в частности для гейм-девелопмента).
(40)
Ну я уже писал об этом. Потому что бинарный файл может изменяться не так, как ты этого ожидаешь. Решит программа перестроить индексы или поменять какие то вещи внутри документа и мы получим другой бинарник, изнутри, но абсолютно идентичный при работе с ним через программу. Офисные документы к примеру это пожатые xml файлы.
Верстка статьи очень удобная.
из инструкции в сабже
После такой рекомендации чувствуешь себя не очень и уважение к продукту падает почти до нуля.
почему бы не переименовать инфостар в форум «хозяюшки» или «кухарки»
(43) А что в этих мелькающих словах вам очень нужно в свете описанного применения? Конвертация символов окончания строки линукс в виндавс? Или использовать Вим или встроенный блокнот?
(41) Не соглашусь. Гиту по большому счету плевать бинарник это, текст или еще что. Более того, почти во всех публичных значимых репозиториях достаточно много нетекстовых файлов, например картинки, документация в pdf, особо нужные версии библиотек, тестовые файлы, драйверы периферийных устройств (которые производители отдают бинарниками). Да, в большинстве случаев diff не получить (хотя картинки некоторые уже сравнивают). Да, бывает, что идентичный по смыслу файл будет отличаться. Но в целом версионирование таких файлов смысл имеет. И по большому счету достаточно удобно версионировать медиа-файлы при работе с аудио и с графикой.
Если закарываться внутрь движка, то на самом этапе коммита работа с «полностью изменяющимися бинарниками» и «на небольших текстовых отличиях между версиями» практическиидентична . Файл изменился? В индекс! Хотя и Evil Beaver в (9) прав — если репозиторий состоит из больших и сильно меняющихся файлов, то он будет расти гораздо быстрее , чем при небольших компактных отличиях.
(45)Может я непонятно объяснил? Попробую в третий раз и на пальцах. Если в текстовом файле ты изменил одну букву, то гит и запишет изменение в одну букву. Если ты изменил в екселе одну букву, то может оказаться, excel решит что будет оптимально переместить эту секцию и так как файл пожат, то изменится весь файл. И будет при незначительном изменении у тебя лежать весь файл. То есть содержимое файла ты не контролируешь. Очень удобно при пушах да. Бинарники в репозиториях подозреваю не от хорошей жизни. А потому, что они нужны при сборке проекта. Я не знаю, как у вас происходит работа. Но я делаю коммит где-то один, два раза в день. Если весь день работаю над проектом который лежит в репах. И когда я делаю коммит я почти каждый раз, когда пишу коммент к коммиту, начинаю вспоминать, чего там делал,то? Если правки мелкие и много. Лезу смотреть в дифы(допускаю, не у всех такая дыра в голове, как у меня). Если там бинарник, эта задача усложнится 🙂
А есть информация, зачем вот это вот всё, если есть уже встроенная в windows служба «Volume Shadow Copy«?
(46) Может это я непонятно объяснил?
1. При коммите гит запишет изменение файла в виде нового object (если не найдёт такой же файл по хешу). Не факт, что гит будет хранить в этом виде потом, но при коммите один фиг — создаст новый object. Я же специально даже ссылочки приложил на почитать.
2. Проблема сравнения — исключительно проблема инструментария. Если инструментарий может показать разницу удобно, то никого не заволнует насколько реально различаются файлы. Так-то и текстовые файлы могут доставить много веселого при сравнении. Помню в какой-то из 1С 8.0 разработчики платформы поломали переводы строк и в модулях были 0x0D0D0A вместо 0x0D0A или как-то так. Это взрывало мозг не только 1С-ному сравнению, но и куче других внешних инструментов. Похожим образом некорректные utf-8 файлы сводят с ума diff tools.
3. Бинарники в репозитариях потому что этот бинарник — часть проекта. Да, гит эффективнее работает с текстовыми изменениями. Но почти любой проект будет содержать не только текст.
4. Я когда разрабыатваю, то коммит — почти как «сохранить», т.е. 10-20 в день — минимум. Ну правда перед пушем делаю squash и вообще причесываю.
(44) суть в отношении к потребителю, а не в мелькающих словах.
Такой абзац в инструкции намекает на то, что отношение к потребителю скотское!
Если я не прав, значит у меня обостренное чувство справедливости)
Git не про бекапы. Он — про управление версиями и совместную работу над ресурсами.
Конечно, и так можно использовать. Но лучше настройте что-то типа «тайм-машин» как системную службу на нужных каталогах и не парьтесь..
Я выделял под документы отдельный раздел диска и использовал ComodoTimeMichine (freeware) — настроил её делать снепшоты раз в сутки (можно ярлычок сделать с командой на рабочем столе).. очень достойная штука. Жаль, что перестали поддерживать — последняя версия на Win7 (но опытным путем установлено, что работает оно и с WinServer2012).
Посмотрите на современные аналоги этой программы — может быть будет проще..
Как-то до конца статьи был уверен, что речь про облачное хранение версий…
Спасибо комментариям, понял, что суть статьи — «как усложнить простое».
Нужно версионирование отдельных небольших рабочих файлов?
Сохраняйте их в формате «Имяфайла_версия 1». При наличии в папке даже нескольких сотен объектов поиск нужного занимает секунды — конечно, если само «Имяфайла» начинается с корректного идентификатора.
Например, у меня есть файлик-реестр (или система управления заявками на изменение, не суть); начинаю название файла с одинаковых символов и номера заявки: «ЗИ 1-111 ЧТЗ 2 Доработка чего-то там вер.1». и при сортировке по наименованию в папке вижу выстроенные сначала по номеру заявки и затем — по версии ЧТЗ файлы. Рядом лежат макеты (например, в экселе) — они называются ЗИ 1-111 Макет (нужны версии макетов — добавляю их по тому же принципу в название).
Немножко привычки — и трудоемкость поиска нужного документа уменьшается на порядок.
Нужен бекап? Работаем на сервере по РДС и бекапимся штатными средствами сервера.
Для колхоза и пользователей с локальными машинами — лет ..цать назад использовал банальное и очевидное «эникейское» решение: суем в менеджер расписаний винды вызов какого-нить архиватора с параметрами запуска, который жмет всю нашу папку со всеми версиями в архив с датой/временем в наименовании, и кладет архив на сетевую файлопомойку. Даже если папка будет весом в полгига, архив жмется до 5% исходного объема; цена хранения — копейки, и периодически (раз в полгода?) можно удалять ненужные архивы вручную.
Все — без участия юзверя и утомительных ручных операций по созданию версии каждого файла.
Для несекретных данных — можно использовать OneDrive или гуглодиск; если кто-то из специалистов захочет получить ваши даннные — он их получит даже из сейфа методом терморектального криптоанализа, случайные же люди вряд ли разберутся в обычной папке обычного пользователя, даже получив к ней доступ 🙂
(32) а мне так и ответили — закрытый исходный код, приходите ещё.
(49) Такой абзац в инструкции намекает на то, что пользователю из целевой аудитории наплевать на символы конца строки, у него есть задача, которую надо выполнить, не забивая себе голову. А разглагольствования некоторых авторов материалов, тешащие их самолюбие ощущением всезнания там, где пользователю наплевать, очень утомляют, по себе знаю.
(51)
Многих знаете, кто так делает? Я так делал — именно после того, как это очень задолбало, начал искать альтернативы.
Простой пользователь (а для него и писался материал) умеет это всё? Более того, я непростой пользователь, но меня даже читать этот процесс утомило, не то, что делать, так и не понял, чем это выгоднее того, что я описал? Вот у меня папка с внешними обрабтками, я её берегу, ваше решение чем лучше моего в этой конкретном случае? Или вы решили ешё больше «усложнить простое»?
Из сейфа — возможно. Но для электронных данных гуглите Трукрипт и правдоподобное отрицание.
(54)
Вы считаете разумной альтернативой делать то же самое (но вместо имени файла писать в описание версий), имея при этом огромное количество дополнительных кликов для создания версии? Нуфф сказал..
Простому пользователю куда проще погуглить «менеджер расписаний», чтоб найти, как это запустить — а дальше все интуитивно понятно. Это если мы работаем в деревне и вынуждены сами заботиться о бекапах своих данных.
Для всего остального есть мастеркард.. т.е. сисадмин, прямой обязанностью которого является организация бекапов. Опять же, мы не рассматриваем варианты, когда админ — рукожоп и не делает таких элементарных вещей; в таком случае лучше сменить место работы 🙂
(1)делать скорее не ветку надо, а именно репозиторий. как создавать репозитории можно почитать именно статьи по работе с git.
А чем не подошли Volume Shadow Copy + Предыдущие версии, если клиент Windows?
Не увидел описания решения конфликтов. Если с ГИТ будет работать более одного человека, то конфликты будут появляться довольно часто. И при первой проблеме будет стоп в работе и круглые глаза у неподготовленного пользователя.
На практике автор использовал данное решение с пользователями не программистами?
есть свои +++
например, доступ к файлам (версиям) в любое время… и из любого места (извне)
но есть и «—»
вопрос «кто это сделал?» кто удалил файл… или заменил его на копию недельной давности
в ситуации, когда commit делает 1 человек (или некий робот по расписанию)…
или вы предлагаете всем дать доступ к этому репозитарию… и как-то заставить после изменения…
ещё и заставить пользователей комитить свои изменения под своей учёткой… как-то сложновато.
систем версионирования и синхронизации на данный момент… очень и очень много
кроме того даже в Word (office) и в Windows (синхронизация) — есть свои варианты
(57)
Напишите, плиз, инструкцию, как это дело настроить на Windows 10. Реально не умею.
(60)Ну вот к примеру:
https://www.ubackup.com/windows-10/volume-shadow-copy-windows-10.html
как настроить автоматическое сканирование изменений и коммит ежедневно?