GitHub-репозитории, о которых должен знать каждый разработчик
Подборка репозиториев, которые помогут вам стать разноплановым разработчиком
Published in
NOP::Nuances of Programming
3 min read
Aug 6, 2020
В данной статье мы поговорим о GitHub-репозиториях для разработчиков на любом языке. Здесь найдется все: от подкастов до бесплатных книг и иллюстраций для «дорожных карт».
1. Awesome Resources RoadMap
Этот репозиторий неспроста возглавляет мой список, ведь он — настоящий оплот знаний для любого разработчика. Здесь можно найти бесплатные книги по программированию, подкасты и даже онлайн-уроки по различным направлениям разработки и языкам программирования.
Если вы хотите изучить новый язык или концепцию программирования, то этот репозиторий просто обязателен для посещения.
2. free-programming-books
Как следует из названия, здесь можно найти список бесплатных книг по любому языку или концепции программирования. Причем список этот весьма увесистый. Он уже набрал 143 000 звезд и 34 900 форков. Репозиторий доступен на многих языках и состоит, в основном, из книг по программированию.
3. Best-websites-a-programmer-should-visit
В процессе своего обучения вы посещаете множество сайтов, на которых получаете новые знания или углубляете уже существующие. В этом репозитории выложен просто гигантский список полезных сайтов. Здесь можно найти подкасты, новостные сайты, ресурсы по спортивному программированию, советы о том, чем заняться, когда скучно и т.д.
4. Project Guidelines
В этом репозитории выложены лучшие примеры JS-проектов. Эти подсказки облегчат вашу работу по написанию и поддержке проектов и сократят объем возможных трудностей. Здесь же можно найти лучшие практики по Git, документации, окружению, зависимостям, тестированию и т.д.
Если вы хотите поделиться качественным примером или считаете, что какую-то рекомендацию следует удалить, то смело создавайте pull request .
5. App Ideas Collection
Бывало ли так, что вам хотелось создать что-то этакое, но вы не знали, как? Иногда писатели испытывают творческий кризис, но ему подвержены и разработчики. Этот репозиторий предлагает список идей для приложений. Все идеи делятся на три категории, в зависимости от опыта в разработке.
Приложения из этой подборки помогают усовершенствовать навыки в программировании и познакомиться с новыми технологиями.
6. JavaScript Algorithms and Data Structures
В мире технологий сейчас модно говорить об алгоритмах. Так что в них нужно разбираться. В этом потрясающем репозитории можно найти исчерпывающую информацию по теме.
Самое классное то, что каждый алгоритм написан на JavaScript и протестирован, поэтому изучать их стало еще проще.
7. Web Developer Road Map
В этом репозитории хранятся визуальные схемы для «дорожной карты» веб-разработчика. Такая карта нужна для того, чтобы вы понимали, как все устроено и куда двигаться дальше на случай, если запутаетесь в программе обучения.
Упрощенная версия для новичков находится в стадии разработки. Сама схема обновляется каждый год и отражает все новые тренды. Так что можно не сомневаться в актуальности информации.
- Пять алиасов Git, без которых мне не прожить
- Способы публикации библиотеки JavaScript: CDN, NPM, GitHub
- Прекращайте пользоваться Git CLI
На каком движке основан Github?
На каком движке основан Github? Мне бы хотелось такой поставить на свой собственный сервер. А если гитхабовский движок закрыт, то не могли бы вы мне подсказать наиболее функциональный и интуитивно понятный движок для собственного git-репозитория?
Rinaldus ★★★★★
30.05.14 17:15:12 MSK

noomorph ★
( 30.05.14 17:15:58 MSK )

GitLab
GitHub закрыт, ставь GitLab.
Camel ★★★★★
( 30.05.14 17:17:11 MSK )
backbone ★★★★★
( 30.05.14 17:32:41 MSK )
У него большая инфраструктура с кучей всего.
Debasher ★★★★★
( 30.05.14 17:43:59 MSK )
У гитхаба есть корпоративная версия, которую можно ставить на свой сервер.
Reset ★★★★★
( 30.05.14 19:59:20 MSK )
apache allura можно ещё (двиг sourceforge)
xsektorx ★★★
( 30.05.14 21:05:35 MSK )

Самый простой вариант — cgit.
CYB3R ★★★★★
( 30.05.14 21:31:41 MSK )

то ли Joomla, то ли WordPress или какой-то там DLE
umren ★★★★★
( 30.05.14 22:19:20 MSK )
Ответ на: комментарий от umren 30.05.14 22:19:20 MSK

то ли Joomla, то ли WordPress или какой-то там DLE
А под ASP .NET заведётся?
om-nom-nimouse ★★
( 30.05.14 23:02:22 MSK )
Ответ на: комментарий от om-nom-nimouse 30.05.14 23:02:22 MSK

под обычный ASP да, под .NET вроде не работает, только с кряком если
umren ★★★★★
( 30.05.14 23:37:33 MSK )
Ответ на: комментарий от umren 30.05.14 23:37:33 MSK
s9gf4ult ★★
( 31.05.14 00:54:32 MSK )
Ответ на: комментарий от umren 30.05.14 22:19:20 MSK
рельсы же, версии 2.3 где-то
Od1n
( 31.05.14 03:43:25 MSK )

Ставь лучше trac, ну или cgit, да.
Umberto ★☆
( 31.05.14 03:49:00 MSK )
iSage ★★★★
( 31.05.14 10:25:58 MSK )
Ответ на: комментарий от Od1n 31.05.14 03:43:25 MSK

umren ★★★★★
( 31.05.14 11:21:28 MSK )
Ответ на: комментарий от umren 31.05.14 11:21:28 MSK
The software that runs GitHub was written using Ruby on Rails and Erlang[5] by GitHub, Inc. (previously known as Logical Awesome) developers Chris Wanstrath,[6] PJ Hyett, and Tom Preston-Werner.
Если честно, то я натыкался на просторах гитхаба на репозиторий рельсов, на которых гитхаб был основан. Но вот не могу найти подтверждение своим словам.
Od1n
( 31.05.14 11:41:35 MSK )
Ответ на: комментарий от Od1n 31.05.14 11:41:35 MSK

Врут, инструмент пендосов для запутывания наших умов, мы то знаем что там на джумле все крутится
Языки программирования на GitHub
Что может быть лучше сравнения популярности и использования языков программирования в интерактивном режиме? Главный помощник программисту в этом деле, как известно, — сайт GitHut, использующий данные сервиса GitHub для сравнительного рейтинга актуальности языков, пишет i-programmer.info.

Трудно переоценить возможность наблюдать за тем, как другие пользователи выбирают языки программирования. Мы тратим много времени на усвоение языка и его экосистемы, потому не удивительно, что мы хотим знать как можно больше про наш объект наблюдения.
Сервис GitHub стал основным способом размещения ИТ-проектов и их совместной разработки. Как результат, данные о количестве проектов, написанных на тех или иных языках, дают представление об их популярности.
Если быть более точным, рейтинг языков формируется исходя из данных об активных репозиториях по каждому из них. Глядя на общее количество пушей, пушей на количество репозиториев и новых форков на количество репозиториев, можно получить представление о том, насколько сообщество этого языка активно на GitHub. Вы также можете обратить внимание на показатель числа проблем на репозиторий и количество новых подписчиков на репозиторий, но данная информация менее понятна для восприятия.
«Дополнительная информация кроется во множестве записей, не указывающих язык программирования. То же можно сказать и о невозможности определить язык репозитория при создании. Из-за этого не представляется возможным назвать наиболее популярные языки в зависимости от количества недавно созданных репозиториев. Потому значение активности (количества внедрённых изменений) считается наилучшим показателем популярности языка программирования», — отмечает GitHut.
На githut.info вы можете выбрать любой язык по горизонтали и увидеть его положение в рейтинге по другим параметрам. Верхнюю строчку занимает JavaScript с наибольшим количеством репозиториев и пушей. Однако среднее количество пушей на репозиторий и количество новых форков указывает на то, что этот язык используется не так активно, как некоторые другие.
В целом, чем новее язык, тем меньше по нему репозиториев. В то же время, такой язык имеет более высокий средний показатель использования.
Существуют также любопытные различия в поведении языков программирования. К примеру, обратите внимание на язык R. У него нет большого числа репозиториев на GitHub и количество пушей на репозиторий сравнительно низкое. Тем не менее, R занимает первое место по количеству новых форков. Почему? Получается, для статистических программ проще взять репозиторий целиком и подправить его, чем внести необходимые изменения в основной проект?
Такая же картина характерна и для нового языка Swift от Apple.
Конечно, при упомянутых статистических расчётах невозможно избежать ошибок. Большой проблемой GitHub также является классификация проектов на основе используемых в нём расширений файлов. Такие показатели нередко могут быть ошибочными. Поэтому не воспринимайте рейтинг как истину в последней инстанции.
Практическое занятие: Управляем контентом в Wiki Github
На этом занятии мы рассмотрим процесс публикации на одной из самых распространенных платформ для разработчиков: GitHub. Созданный репозиторий на GitHub имеет свою Wiki, к которой можно добавлять страницы. Wiki удобна, если исходный код хранится на GitHub. Хотя GitHub может и не быть платформой, на которой мы будем публиковать свою документацию, понимание того, как работать с этой платформой важно для понимания контроля версий.
Изучение GitHub позволит ознакомиться с рабочими процессами управления версиями, которые являются общими для многих инструментов docs-as-code. По этой причине на этом курсе есть подробное руководство по использованию GitHub. Независимо от того, используется GitHub в качестве инструмента публикации, это руководство познакомит с рабочими процессами работы Git с контентом.
О Wiki на GitHub
Wii на GitHub можно использовать в качестве сайта документации. Вот пример API Basecamp, который размещен на GitHub.

В отличие от других Wiki, создаваемый Wiki на GitHub — это собственный репозиторий, который можно клонировать и работать локально. (Если посмотреть на ссылку «Клонировать эту Wiki локально», то увидим, что это хранилище, отдельное от основного хранилища кода.) С файлами можно работать локально, и фиксировать их в хранилище Wiki. Можно расположить ссылки на вики-страницы на боковой панели.
Wiki-страницы на GitHub используют синтаксис Markdown. Для этого есть специальная версия, названная Github-flavored Markdown или GFM. Эта версия Markdown позволяет создавать таблицы, классы для блоков кода (для корректной подсветки синтаксиса) и т.д.
Поскольку с вики-файлами можно работать локально, можно использовать другие инструменты (например, генераторы статичных сайтов или даже DITA) для генерации файлов Markdown при желании. Работая локально, можно обрабатывать переиспользование, условную фильтрацию и другую логику за пределами вики-сайта GitHub. После чего можно вывести свой контент в виде файлов Markdown и зафиксировать их в своем хранилище GitHub.
Warning: Git используется только для отслеживания текстовых файлов. Не работает Git c большими двоичными файлами, такими как аудиофайлы, видеофайлы, файлы Microsoft Word или файлы Adobe PDF. Системы контроля версий действительно не справляются с такими форматами, и размер репозитория будет возрастать в геометрической прогрессии. Используя Git для управления документацией, такие файлы исключаются через файл .gitignore. Можно также исключить изображения, так как они увеличивают размер вашего репо.
Ограничения wiki на GitHub
Github имеет некоторые ограничения:
- ограниченный дизайн: все Wiki GitHub в значительной степени выглядят одинаково;
- открытый доступ в Интернете: если документация должна быть приватной, GitHub вряд ли будет подходящим местом для хранения (однако, есть опция делать репозитории приватными);
- нет структуры: Вики-страницы GitHub выдают пустую страницу и позволяют добавлять разделы. Но нет возможности делать какие-либо продвинутые стили или интерактивные функции.
Note: Здесь речь именно о встроенной функции Wiki на GitHub, а не GitHub Pages. Для стилизования и автоматического создания контента можно использовать такие инструменты, как Jekyll. Более подробно GitHub Pages рассмотрим в руководстве по Jekyll.
Установка Git
Прежде чем начать работать с GitHub нужно настроить Git и установить все необходимые инструменты и учетные данные для работы с GitHub (особенно если вы работаете в Windows).
Установка на Mac
Установка Git на Mac: Installing on Mac
После установки можно пользоваться Git несколькими вариантами:
- в предустановленном терминале, выбрав Applications > Utilities > Terminal;
- установить сторонний терминал iTerm;
- использовать PlatformIO IDE Terminal в Atom (наверное самый удобный способ работы с проектами)
Установка на Windows
Самый подходящий установщик для Windows это Git for Windows
Этот инсталлятор включает в себя эмулятор терминала Git BASH, который позволят использовать команды Git и Unix.
Проверить, установлен ли у вас Git, открыв терминал и введя следующее:
git --version
Настройка автоматической аутентификации GitHub
Git можно настроить так, чтобы не приходилось каждый раз вводить имя пользователя и пароль каждый раз при внесении изменений в GitHub. Как настроить можно почитать по ссылкам:
- Set up Git
- Generating a new SSH key and adding it to the ssh-agent
- Adding a new SSH key to your GitHub account
- Associating text editors with Git
Чтобы настройки вступили в силу терминал нужно перезапустить.
Note: GitHub и Git — это разные вещи. Git обеспечивает распределенный контроль версий. GitHub — это платформа, которая помогает управлять проектами Git. GitHub также предоставляет графический интерфейс, который позволяет выполнять множество команд Git.
Практическое занятие: Создаем Wiki на GitHub и публикуем пример страницы
Создаем wiki на GitHub и публикуем контент на пробной странице
В этом упражнении создадим новый репозиторий на сайте GitHub и опубликуем файла.

- Открываем GitHub и логинимся там. После нажимаем кнопку + и выбираем New repository
- Вписываем имя репозитория, краткое описание, выбираем видимость public , выбираем Initialize the repo with a README и затем нажимаем Create repository (Не стоит обращать внимания на выбор лицензии настроек gitignore для этого упражнения).
- Переходим на вкладку Wiki в навигационной панели нового репозитория.
- Нажимаем кнопку Create the first page (Если wiki уже существует, то нажимаем New Page ).
- На начальной странице Home вставляем свой документ, предпочтительно написанный в Markdown. Или можно просто перетащить содержимое страницы fake endpoint called surfreport here.
- В поле Edit message вписываем краткое описание (коммит).
- Нажимаем Save Page
Обратите внимание, как GitHub автоматически преобразует синтаксис Markdown в HTML и стилизует его для удобства чтения.
Можно работать с этой вики-страницей GitHub в браузере, чтобы несколько человек могли совместно работать и редактировать контент. Однако, в отличие от других вики, с помощью GitHub вы также можете перевести весь контент в автономный режим и редактировать его локально, а затем зафиксировать свои изменения и отправить их обратно в online.
Практическое занятие: Делаем локальную копию репозитория
Клонируем репозиторий на локальную машину
До сих пор мы работали с GitHub в браузере. Теперь мы возьмем тот же контент и будем работать с ним локально. Это то, что делает вики GitHub уникальным среди других вики — это репозиторий Git, поэтому вы можете управлять контентом так же, как и любым другим репозиторием Git (работая локально, выдвигая, вытягивая, объединяя, разветвляя и т. Д.).

- Если на компьютере до сих пор не установлен клиент Git, тогда самое время его установить. (Проверить установку можно командой git —version в командной строке. Подробно об установке Gitвыше).
- Просматривая вики-страницу GitHub в своем браузере, обратим внимание на раздел Clone this wiki locally . Нажмите кнопку буфера обмена. (Копируется URL клона в ваш буфер обмена.)
Note: Вики имеет отдельный URL, не относящийся к репозиторию проекта. Убедитесь, что вы просматриваете вики, а не проект. URL клона будет включать .wiki.
В отличие от раздела Clone this wiki locally , кнопка «Clone in Desktop» запускает клиент GitHub Desktop и позволяет управлять репозиторием и вашими измененными файлами, фиксировать, передавать и извлекать через клиент GitHub Desktop. Об этом написано в практическом занятии Используем клиент GitHub для десктопа
- Открываем командную строку
- те кто пользуется Windows, открывают эмулятор терминала Git Bash,
- пользователи MacOS запускают Applications > Utilities > Terminal или iTerm
git clone https://github.com/tomjoht/weatherapi.wiki.gitНажимаем Enter и ждем пока система клонирует wiki. В это время видим на экране исполнение команды:
Cloning into 'weatherapi.wiki'. remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Compressing objects: 100% (2/2), done. remote: Total 9 (delta 0), reused 0 (delta 0), pack-reused 6 Unpacking objects: 100% (9/9), done.В примере Git создал папку weatherapi.wiki
Клонирование вики делает копию содержимого на вашем локальном компьютере. Git — это программное обеспечение для контроля версий, поэтому у каждого есть своя собственная копия. Когда вы клонируете репозиторий, вы создаете копию на своем локальном компьютере; версия в облаке на GitHub называется «origin». Таким образом, у вас есть два экземпляра контента.
Однако, когда вы клонируете репозиторий, вы не просто копируете файлы, а инициализируете Git в папке, куда сохранен репозиторий. Инициализация Git означает, что Git создаст невидимую папку Git в этом каталоге, и Git может начать отслеживать ваши изменения в файлах, обеспечивая контроль версий. С инициализацией Git вы можете запускать команды pull , чтобы получать обновления из онлайн-хранилища (источника) в локальную копию. Вы также можете фиксировать commit свои изменения и затем вернуть их «origin».
- Переходим в папку с клонированным репозиторием, чтобы посмотреть какие файлы клонированы.
Tip: Необязательно вводить полное имя каталога. Просто начните вводить первые несколько букв, а затем нажмите клавишу Tab , чтобы автоматически ввести полное имя.
Практическое занятие: Отправляем локальные изменения в удаленный репозиторий
Отправляем локальные изменения на удаленный репозиторий
- В текстовом редакторе открываем наш файл, скачанный с репозитория git Hub. Файл будет открыт в приложении по умолчанию, связанном с этим типом файла. Вы также можете открыть файл, перейдя к нему вручную и открыв его, как обычно (просмотр в Finder или Explorer).
- Внесем изменения и сохраним файл. Например напишем свое имя вверху документа.
- В терминале удостоверимся, что находимся в нужной папке.
Для просмотра впишем команду ls под текущей строкой. Потом введем команду сd/ для входа в папку или cd ../ для перемещения на уровень выше.
- Добавим все файлы:
git add .Git не отслеживает все файлы в той папке, где он был инициализирован. Git отслеживает изменения только для файлов, которые были «добавлены» в Git. Набрав git add . или git add —all , вы говорите Git начать отслеживать изменения всех файлов в этом каталоге. Вместо этого вы также можете ввести здесь определенное имя файла, например git add Home.md , чтобы просто добавить определенный файл (а не все файлы, которые были изменены) для отслеживания в Git.
После команды git add Git добавляет файлы в так называемую область подготовки. Используя спортивную аналогию, площадка для постановки похожа на беговую дорожку. Эти файлы готовы для фиксации, когда вы запускаете git commit .
- Просмотреть статус файла можно командой
git statusGit ответит сообщением, указывающим, какие файлы готовы для коммита.
Changes to be committed: (use "git reset HEAD . " to unstage) modified: Home.mdВ области подготовки перечислены все файлы, которые были добавлены в Git и которые вы каким-либо образом изменили.
Рекомендуется всегда проверять git status перед фиксацией файлов, потому что вы можете понять, что, набрав git add . , Вы могли случайно добавить некоторые файлы, которые вы не собирались отслеживать (например, большие двоичные файлы). Если вы хотите удалить этот файл из промежуточной области, вы можете ввести команду git reset HEAD Home.md , чтобы удалить его.
- Коммитим изменения
git commit -m "updated some content"Коммит создает слепок файла в данный момент времени для версионирования.
Команда git commit -m является ярлыком для фиксации и ввода сообщения коммита. Обновления таким способом гораздо проще фиксировать.
Если ввести только git commit, то будет предложено ввести описание коммита в режиме редактора Bash. Опишите изменения в верхней строке, а затем сохраните и закройте окно.
На Mac новое окно не открывается. Вместо этого в терминале открывается режим редактора Vim. («Vi» обозначает visual, а «m» — режим, но это не очень визуальный редактор.) Для выхода из редактора нажимаем клавишу Escape. Затем вводим q , чтобы выйти. (См. Здесь команды Vim.) Возможно захочется настроить терминал так, чтобы открывался внешний редактор, такой как Sublime Text. Подробности в разделе Связывание текстовых редакторов с Git.
- Отправляем изменения на удаленный репозиторий командой
git pushЕсли автоматическая аутентификация на GitHub не настроена, то будет предложено ввести ваши учетные данные: логин и пароль (Ваш username — это логин ID на GitHub).
Обратите внимание: когда вы набираете git push или git pull и не указываете ветку, GitHub использует ветку по умолчанию из источника. Ветвь по умолчанию на GitHub называется master . Таким образом, фактически переданная команда — это git push origin master (это означает: отправить эти изменения в удаленный репозиторий origin, в ветке master). Некоторые разработчики предпочитают указывать хранилище и ветвь, чтобы обеспечить взаимодействие с нужными хранилищами и ветвями.
Окно терминала на Mac, будет выглядеть примерно так:

- Теперь проверим наши изменения. Заходим на удаленный репозиторий и посмотрим изменения.
Предотвращение конфликтов слияния при редактировании онлайн и локально
Визуальный редактор на GitHub.com может быть легким способом для специалистов в предметной области, в то время как технические писатели, вероятно, захотят клонировать репо и работать локально. Если некоторые люди вносят изменения в браузер, а другие редактируют локально, то можно столкнуться с конфликтами слияния. Чтобы избежать конфликтов слияния, всегда запускайте git pull перед запуском git push . Если два человека одновременно редактируют один и тот же контент между коммитами, вероятно, потребуется разрешить конфликты слияния.