Начало работы с Git и GitHub
11.11.2010 технологии изучение Линукса
Извините, не буду тратить время на длинные предисловия и рассказ о том, что такое Git и GitHub — программистам это и так известно, а если нет, то есть Google. Записываю это в большей степени для себя, чтобы не забыть, и для тех, кто также как я уже знает что-то по этой теме, хочет начать, но пока не решается.
Итак, Git у меня уже был установлен давно (то ли сразу в дистрибутиве был, то ли я ставил и забыл), я даже освоил уже команду git clone для клонирования некоторых интересных проектов с программерской социалки и хранилища исходников GitHub. Но хотелось большего. Сделать свой репозиторий и научиться работать с системой на более высоком уровне.
Регистрация в GitHub и настройка
Зарегистрироваться проблем совсем нет, но когда я захотел работать с хранилищем, выяснилось, что необходим публичный ключ. Как его делать? Ну, вообще-то, он может уже быть у вас, если существует файл ~/.ssh/id_rsa.pub.
У меня не было ни каталога ни файла. Поэтому для генерации ключа можно воспользоваться специальной командой ssh-keygen -t rsa -C 'email@example.com'. Естественно, в качестве email стоит ставить свой адрес.
А потом просто скопировать появившийся вышеуказанный файлик в соответствующее окошко гитхаба. Всё по-инструкции.
Загрузка кода в репозиторий
Нужно залогиниться в гитхаб и создать новый репозиторий, и там сразу же появляется инструкция. Как, что, зачем. Вот ровно по ней я и сделал. И получилось! :) Сделал уже три «коммита» (какой русский аналог придумать?).
Что же дальше?
Команды Git у меня пока почти никак в голове не отложились, мне не очень понятно. Читаю книгу Магия Git, надеюсь прояснится. Пока что это всё кажется жутко неудобным — слишком много действий на каждый пук. Скорей всего так просто кажется, пока нет опыта. Будем изучать. Может, посоветуете чего?
Комментарии
Комментирование этой статьи закрыто.
Действий особо нет —
git commit -am «Описание»
git push
git pull
git branch -n «Имя ветки»
git checkout «Имя ветки»
git merge «Имя ветки»
— вот все основные кейсы моей работы.
А с «то есть Google» каламбур-с получился: у Гугла есть конкурент гитхабу — code.google.com.
Кстати, когда будешь разрабатывать закрытые приложения, придётся либо покупать платный доступ на Гитхабе, либо юхать свои хостинги, что не так удобно/секюрно.
progit.org/book/ru/ – поможет? =)
Samlowry, для коммерческих проектов есть assembla.com
samlowry, насчёт своего хостинга – спорно. Всё тоже вполне секурно, особенно если без веб морды делать.
ну тебе одному то кроме commit и push особо ничего и не пригодится. ну clone и pull если че обновить. если в команде работать, там уже всякая жесть есть, и с ветками
Jeck, так assembla же тоже платная.. С таким успехом и GitHub оплатить можно, 7$/мес не дорого.
Samlowry, для коммерческих проектов я буду локально пользоваться Git + вебхуки, или как их там. В общем, всё хорошо будет :)
Aktuba, не, она как-то переведена куцо, мне «Магия Git» больше нравится, и я её скачал локально в HTML, удобней так. Как справочник можно использовать.
>Всё тоже вполне секурно
Да не, ребзя, есть даже те, кто для 1-2 репозиториев закрытых дают бесплатный хостинг. Но Гит всё-тки более топовый проект, надежды, что там не проебут, больше. Хотя может, это просто психологическое.Секюрность тут не в плане безопасности. А в плане того, что как бэ сама идея гита — это сохранность инфы. Так что продолжая эту идею, центральный репозиторий лучше держать в 3м месте.
ЗЫ: я юзаю платный гитхаб.
Сэм, а тебе как Git? Долго привыкал? Что нравится, что нет?
Можно репозитарий хранить в папке дропбокса.
У гитхаба есть 1 бесплатный репозитарий приватный, кажется.
Миша, у ГитХаюа бесплатно только открытые.
Кстати, мои любимые маны:
www.spheredev.org/wi… — базовые вещи, коротко без ботвы, название говорит само за себя.
www.sourcemage.org/G… — тут всякие адвансные вещи. Тоже удобнее, чем в оригинальных доках.
Торм, Гит нравится распределённостью. Вернее — нравился, потом для разработчиков сайтов они всё-таки стали навязывать центральный репозиторий чисто для хранения кода (забыл, как это они зовут). Раньше как было: центральный репозиторий = сайт. Секюрно-несекюрно, но если это не гигантская команда, то как-то пох. Но там вытекал концептуальный косяк: как только ты пушишь туда изменения, то если ты на сервере делаешь git status — он показывает инвертированную ситуацию: мол, у вас куча новых изменений на винте, извольте закомитить. Т. е. он так думал — сравнивая старые файлы с твоими новыми коммитами. Приходилось делать forced checkout. Вот из-за этого они и ввели обязательный центральный репозиторий, который только для хранения изменений используется (на винте нет ничего). Ну вроде несмертельно — можно сделать его в какой-нить другой папке сервака того же. Но я просто обновил где-то гит — у меня рабочий процесс полетел в жопу, я долго концы искал, вычитывая, что же не нравится Гиту.
В остальном — я не юзал старых, централизованных систем, мне не с чем сравнивать особо. А децентрализованные обладают идентичной логикой и набором команд.
Если ты про то, как мне вообще под гитом — ахуенно. Я параноик. Люблю, чтобы все версии хранились и хранилище было размножено в x экземплярах.
Кроме последнего абзаца нифига не понял :) Но ладно, пойму позже.
Есть решение для того чтобы загружать по фтп измененные и только измененные с последнего сабмита файлы?
В идеале вообще начинать закачку сразу после сабмита.
Есть у меня например сайт к которому есть доступ только по фтп. Я делаю множество мелких правок в самых разных файлах сайта. Чтобы упростить себе жизнь я хочу сделать локальную копию файлов сайта и работать уже с этой копией, но после каждого сабмита обновлять изменения и на сайте.
Это реально? Поискал, но точно того что я хочу не нашел. Только похожие решения есть.
Кто что знает по теме?
Хм, ну ты можешь монтировать ftp в локальную файловую систему, например, и потом делать cp -uR /from/* /to.