Git - порядок файлов)))

Добрый вечер, для меня сейчас вечер. Однажды, разрабатывая один проект с множеством файлов с исходными кодами и параллельно составляемой документацией мне пришлось столкнуться с проблемой. А именно, для решения новой для меня задачи, приходилось создавать множество копий проектов с метками о версиях, а когда получалась стабильная версия, но нужно было добавить функциональности то папки росли как грибы под грибным дождиком. ( В детстве мне говорили что грибным дождь назван по-тому, что именно в такую погоду лучше всего растут грибы). Папки с метками вида "v_2_0_exp" , "v_2_1_main" и так далее меня стали доставать, а когда по ошибки редактируешь файл не в той папке - всё, капец. И тут я понял, пора взрослеть и повсюду использовать системы контроля версий, но какую выбрать, их так много.... Тут меня сманил милый символ GitHub - осмикошка (кошка + осминожка - как символ поощрения создания веток) и я зачитался.

Чем Git мне приглянулся, первое - это удобный интерфейс и большая популярность среди разработчиков свободного ПО - весомый аргумент для меня, тем более многие свободные проекты мигрировали в GIT и мигрируют по сей день.
Потом очень лёгкий процесс ветвления, и простое объединение веток - максимальная гибкость в этом деле, а я большой любитель экспериментировать. Но git, если уж что-то закоминчено (сохранено в системе - так говорить нельзя, там довольно сложный процесс хранения) то это уже не потерять - эксперименты безопасны!!! И это одно из главных преимуществ. И ещё, что немаловажно - это то что с git, я имею у себя локальный репозиторий, и могу работать с проектом без интернета, и когда нужно выкладывать свои результаты на сервер. Можно использовать свой сервер или выкладывать на GitHub. Воля.... У других систем контроля версий больший проблемы возникают при отключения интернета.

А теперь о том, как научиться пользоваться. Дело в том, что научиться пользоваться системой мне надо было срочно и поэтому я не стал как обычно читать большие официальные книжки и смотреть видео на английского языке а стал рыскать в интернете по блогам, статьям, форумам - и зря. Там пишут обрывками, и довольно непонятно. Их можно использовать в качестве быстрой справки иногда, но и то как-то они хиловаты для этого. Для справки может пригодиться этот сайт: http://www.calculate-linux.ru/main/ru/git, а так, не рекомендую поступать как я, а сразу прочитать книгу ProGit Скота Шакона которая есть как на английском так и на русском. Там прочитаете несколько глав и уже всё поймёте, для большинства целей - вполне реально освоить за вечер, ну и ещё для старта полезен онлайн курс try git

Вот и всё собственно. Так что если вы только попали на этот сайт, то вам повезло и вы не потратите время на бесполезное чтение форумов и иных блогов по этому вопросу. Читайте Офф документацию сперва - это мой совет. Один мой друг, часто испытывал проблемы при одной разработки, и сильно затормаживался в работе из-за лени читать офф. документацию - так как она больше по объёму чем статейки на форумах. Иллюзия, на мой взгляд, иллюзия....

Удобной вам разработки.

хм. а по-моему - краткая инфа бывает полезна .
напр. - список основных команд и т.д.

но спасибо за заметку)

humanmashine's picture

Я ни на кого не нападал)))) Полностью согласен.
Просто я хотел подчеркнуть, что для начала надо смотреть официальную документацию, так как обычно там есть всё: и краткие справки и многое другое.
Просто именно по Git очень хорошая офф информация. А статьи в нете путают. И более того, я последнее время стал встречать много блогерров которые пишут "бесполезные статьи".
"Бесполезные статьи" - тут этим термином обозначены все материалы, которые написаны языком полным терминологией специфичной, который пригоден для обмена знаниями между сведущими в вопросе людьми, но при этом статья направленна на новичков. Тоесть, для сведущих она бесполезна так как содержит знания и так имеющиеся у таких людей, а для новичков она бесполезна так как они просто не понимают о чём речь, ещё хуже, если создаётся иллюзия понимания.
Вот на такие материалы я и наткнулся по Git-у. Вроде бы там написано как делать коммиты, но чтобы из сделать нужно было поменять некоторые параметры, а чтобы это сделать нужно было понимать как это работает, а чтобы понять как это работает и концепцию пришлось читать офф документацию. Вот так.

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

начал использовать Git )
решил попробовать выложить модуль в "песочницу" drupal.org

относительно темы - есть такой вот шаблон создания "первого коммита" = http://fkn.ktu10.com/?q=node/2101 (немного переработал версию, предлагаемую тех. документацией друпала)
там две функции не совсем ясно что обозначают =

master - это ,насколько я понимаю, название ветки?

humanmashine's picture

Я просил, чтобы не появлялись такие вопросы, читать книжку, это не так много времени но позволяет понять целостную картину. Функции довольно понятные если знать как работает Git.
Master - это главная ветка. Origin - это базовый удалённый репозиторий для нашей рабочей папки.
естественно команда git push origin master - кладёт данные из ветки мастер в ветку мастер вашего базового репозитория под именем origin. А какой именно базовый, вы определяете командой add.
Если честно - это нужно для работы с удалёнными репозиториями, а я с ними работал только ради знакомства, пока меня устраивают локальные возможности git. Кстати их много и их даже нужно изучить для чего я советовал книжку.
И ещё, для добавления файлов и их окммита я советую пользоваться командой git add -A она добавит все наблюдаемые (staged) файлы, и всё будет закоминчено, а для того чтобы игнорировать файлы использовать файл настройки .gitignore

каюсь прошу прощения)
тем не менее базовые примеры использования нужны, так как мегакниги пугают)

humanmashine's picture

Может мега книги и пугают, но для профессионального использования они необходимы))) А примеры.. Да, да, да!! Они необходимы, как и псевдонимы)))