Просмотр изменений в истории
Для просмотра истории предыдущих коммитов в обратном хронологическом порядке можно использовать команду . Ей можно передать разные опции:
показывает изменения в каждом коммите;
показывает сокращённую статистику для коммитов, например изменённые файлы и количество добавленных/удалённых строк в каждом их них;
показывает n последних коммитов;
и позволяет отфильтровать коммиты по промежутку времени, например покажет коммиты с 1 января 2019 года;
позволяет указать формат логов (например, ), также можно использовать для большей кастомизации, например ;
и фильтруют коммиты с сообщениями/изменениями кода, которые содержат указанную строку, например, позволяет посмотреть добавление/удаление функции;
пропускает коммиты со слиянием веток;
позволяет посмотреть, какие коммиты из ветки 2 не находятся в ветке 1 (полезно при слиянии веток)
Например, покажет, каких коммитов из ветки test нет в master (о ветках поговорим чуть позже).
показывает коммиты, которые есть либо в ветке 1, либо в ветке 2, но не в обеих; знак обозначает коммиты из , а — из .Обратите внимание: используется три точки, а не две;
принимает аргумент или и показывает историю изменений переданного набора строк или функции в файле.. Другой полезной командой является , которая для каждой строки файла показывает автора и контрольную сумму последнего коммита, который изменил эту строку. позволяет ограничить эту команду заданными строками
Это можно использовать, например, для выяснения того, какой коммит привёл к определённому багу (чтобы можно было его откатить)
Другой полезной командой является , которая для каждой строки файла показывает автора и контрольную сумму последнего коммита, который изменил эту строку. позволяет ограничить эту команду заданными строками. Это можно использовать, например, для выяснения того, какой коммит привёл к определённому багу (чтобы можно было его откатить).
Наконец, есть команда , которая ищет по всем файлам в истории коммитов (а не только в рабочей директории, как ) по заданному регулярному выражению. Опция отображает соответствующий номер строки в файле для каждого совпадения, а показывает количество совпадений для каждого файла.
Примечание Не путайте с ! Первый ищет по файлам среди коммитов, а последний смотрит на сообщения логов.
What is Git?
What Is GIT?
GIT is an acronym for Global Information Tracker; An open-source tool created in 2005. It plays a vital role in shaping standard projects. One can install git in the local system that allows tracking and recording of a project at every step. The best part being it runs on the cloud, and the internet does not pose a problem.
GIT is a Version Control System (VCS); A source tool that helps in tracking and managing codes. It was designed to assist programmers working in coordination and tracking changes in any of the files associated with the local directory. Unlike other version control systems, GIT is hassle-free, fast, and absolutely free of cost to use.
Features of Git
- Distribution: One of the fine features of GIT is that it has a distributed system. It allows multiple people to work on a project simultaneously without interfering with each other’s work. Once completed, a user can push or transfer his part of the work to a git repository, and others can pull it locally from the git repository. This feature also helps, if in case the main system goes down. The local system that has pulled the latest part of the work can restore the entire project.
- Branching: GIT allows users to work parallelly on different domains through branching. Through this, multiple users can try the same feature in various ways and then merge the one they feel is the best to the main branch. Branching and merging are simple through a few git commands. Users can create any number of branches for a single project.
- Secure: GIT records all the commits done by the users on their local copy. It uses SHA1, a cryptographic algorithm, to store the developer’s data while also helping to diagnose the issues through the log entries.
Подробнее о внутреннем строении Git
Репозитории
Репозиторий (репо, реп) – это хранилище файлов проекта. То есть все компоненты, относящиеся к одному приложению (код, изображения, конфигурационные файлы, стили, скрипты и т.п.). С ним как раз и работают люди, ведущие совместную работу над одним продуктом.
При создании репозитория в папке с файлами формируется .git-директория, включающая в себя информацию, необходимую для корректной работы с системой контроля версий (количество коммитов, ветвей разработки и прочих необходимых деталей).
По умолчанию каталог .git скрыт, но его видят git-приложения, например git, Sublime Merge, Gitfox и другие аналоги.
Коммиты, пуши и стейджинг
Коммит – это единица контента, хранящая в себе информацию о том, какие компоненты репозитория были изменены на текущий момент времени.
За счет них и работает контроль версий. Допустим, вы решили немного поменять оформление сайта. Открываете файл .css, вводите туда новое значение шрифтов или цветов, а потом сохраняете их. Чтобы это изменение отразилось в git, нужно создать коммит (git commit — m, «описание коммита»). Теперь вы можете в любой момент вернуться к этому этапу в разработке сайта.
Стейджинг-зона – это временное пристанище измененных файлов. Отправляясь в стейджинг-зону (git add), они помечаются как «в разработке», но при этом из них все еще можно выбрать готовые файлы, чтобы непосредственно их закоммитить. Файлы хранятся в стейджинг-зоне (git add) до тех пор, пока пользователь не сделает коммит и не запушит (git push) изменения на сервер, то есть не выгрузит с локального репозитория в удаленный.
Удаленные репозитории (GitHub, GitLab и т.п.)
Большинство разработчиков хранят репозитории не на локальных машинах, а в хранилищах наподобие GitHub, BitBucket, GitLab и в их аналогах. Это специализированные веб-ресурсы, поддерживающие все функциональные особенности git и позволяющие работать десяткам разработчиков над одним проектом параллельно, используя единое пространство для хранения всех файлов, их версий и прочих компонентов приложения или сайта.
Коммиты остаются в локальном репо, но с помощью команды push можно отправить их в GitHub. А при помощи команды pull можно вытащить их в локальный реп, чтобы иметь под рукой самую новую версию проекта для дальнейшей разработки новых функций.
Ветви и мерджинг
Две функции, вокруг которых строится параллельная разработка.
Ветви (branches) – это разные состояния одной программы. Например, есть ветка master (иногда ее называют main) – в ней обычно хранится приложение с полным набором функций и дизайном, готовое к деплою (то есть публикации в App Store или загрузке на сервер). Есть ветка develop, в которой программисты корпят над нововведениями. Веток может быть неограниченное количество, хоть по одной для каждой функции.
С помощью ветвей можно избежать изменений в программе до того, как новшества будут протестированы. А еще это помогает вносить срочные изменения в main-ветку, не добавляя при этом в программу недоделанные функции или изменения в дизайне.
Мерджинг (merging) – это процесс объединения одной ветки с другой. Чаще всего – ветки develop с веткой main.
Пул-реквесты
Pull Request – это запрос на проверку и одобрение кода. Когда один из программистов заканчивает свою работу, он отправляет PR своим коллегам. Те проводят аудит кода и выносят вердикт, публикуется этот код или нет.
При этом сам пул-реквест является не просто оповещением о готовности куска кода – это целая система взаимодействия и обсуждения. Один PR может превратиться в десятки комментариев и правок кода. После «обработки» PR превращается в мердж.
Клонируем форк на компьютер — git clone
Клонировать форк — значит скачать его, чтобы работать с кодом на своём компьютере. Тут нам и пригодится SSH.
Открываем терминал и переходим в папку с будущим проектом — для этого используем команду . Если вы хотите, чтобы проект лежал в папке , введите
Если такой папки на компьютере нет, то сначала введите , чтобы создать эту папку, а затем . Когда перейдёте в папку, введите команду для клонирования репозитория:
Замените на ваше имя пользователя на GitHub, а на название проекта. Проще всего их найти прямо наверху страницы репозитория.
Если вы правильно настроили SSH-ключи, Git скопирует репозиторий на ваш компьютер.
Если вы видите ошибку , скорее всего, вы ошиблись в настройке SSH-ключа. Вернитесь в этот раздел инструкции и повторите процесс настройки.
Кстати, если вы хотите, чтобы название папки с проектом у вас на компьютере отличалось от имени репозитория, можете дополнить команду клонирования, добавив в конце другое название:
Теперь на вашем компьютере в папке или в той, название которой вы указали, находится полная копия репозитория c GitHub.
В каждом репозитории есть как минимум одна основная ветка, которую создаёт сам Git — она называется . Обычно в ней хранят проверенную версию программы без ошибок.
А если вы хотите исправить ошибку в коде или добавить что-то в проект, но не хотите сломать код в основной ветке, нужно создать новую ветку из и работать из неё. Каждая ветка — что-то вроде второстепенной дороги, которая затем снова соединится с основной.
Ummmmm … что? Могу ли я сделать это на сайте?
Вы можете!
Один из способов сделать это — просто проверить кнопку, о которой мы упоминали ранее, когда редактировали файл README. Супер просто!
Вы также можете в любое время создать новую ветку прямо на веб-сайте, перейдя в свой репозиторий, щелкнув раскрывающееся меню в левой и средней части экрана с надписью «Branch: master», введя имя ветви и выбрав Ссылка «Создать ветку» (или нажмите Enter на клавиатуре). Теперь у вас есть две ветви, которые выглядят одинаково! Это отличное место для внесения изменений и их тестирования, прежде чем вы захотите, чтобы они повлияли на основную ветку.
Создание ветки
Если вы работаете с отдельной веткой, ваши изменения влияют только на эту ветку.
Если вы довольны своими изменениями и хотите объединить их с главной веткой, вы можете открытьтянуть запрос, Таким образом, если бы вы были в команде, вы бы предложили свои изменения и попросили бы кого-нибудь рассмотреть их или включить ваш вклад и объединить их в свою ветку.
Вы можете открыть запрос на удаление, как только сделаете коммит, даже если вы еще не закончили свой код. Вы можете сделать это прямо на сайте, если вам удобнее. Если вы внесли некоторые изменения в свою ветку и хотите объединить их, вы можете
- Нажмите вкладку запроса на извлечение рядом с верхним центром экрана.
- Нажмите зеленую кнопку «Новый запрос на извлечение»
- Перейдите в поле «Примеры сравнений» и выберите ветку, которую вы сделали, чтобы сравнить с исходной веткой.
- Посмотрите свои изменения, чтобы убедиться, что они действительно то, что вы хотите зафиксировать.
- Затем нажмите большую зеленую кнопку «Создать запрос на извлечение». Дайте ему название и напишите краткое описание ваших изменений. Затем нажмите «Создать запрос на извлечение!»
Новый запрос на извлечениеСоздать пул-запрос
Теперь, если это ваш репозиторий, вы можете объединить ваш запрос на извлечение, нажав зеленую кнопку «Слить запрос на извлечение», чтобы объединить изменения в мастер. Нажмите «Подтвердить слияние», затем удалите ветвь после того, как ваша ветвь была включена с помощью кнопки «Удалить ветвь» в фиолетовом поле.
Если вы участвуете в проекте, у людей в команде (или у рецензента) могут возникнуть вопросы или комментарии. Если вам нужно что-то изменить, это время! Если все хорошо, они могут развернуть изменения прямо из ветки для окончательного тестирования перед тем, как объединить их. И вы можете развернуть свои изменения, чтобы проверить их в производстве.
Если ваши изменения были проверены, вы можете пойти дальше и объединить ваш код в основную ветку. Пул-запросы сохранят запись ваших изменений, а это значит, что вы можете просмотреть их в любое время, чтобы понять изменения и принятые решения.
Both Git and GitHub Handle Commands Differently
Git developers themselves perform a command-line tool where code changes like commit and merge within the Git tool on their own local devices. By contrast, GitHub provides its cloud-based graphical interface where these tasks are performed. The interface also offers developers access control, collaboration features, and various task-management tools.
When it comes to commands, Git focuses exclusively on SCM tasks like push and pull, commit, reset, fetch, and merge. GitHub, meanwhile, serves as a host for Git repository teams to store their code in a centralized location. While Git is a tool that’s used to manage multiple versions of source code edits that are then transferred to files in a Git repository, GitHub serves as a location for uploading copies of a Git repository.
In a sense, then, there’s no comparison when it comes to Git vs. GitHub as far as their function. They complement rather than compete with each other in this space.
Как работает GitHub
Для работы с GitHub нам потребуется установить клиент контроля версий (в GitHub, это GitHub Desktop) и создать репозиторий. Репозиторий можно создать, как через веб-сайт, так и через клиент.
Принципы работы с репозиторием GitHub
- С помощью клиента копируем весь репозиторий на свой компьютер (pull).
- Вносим различные правки, сохраняем, вносим правки и т.д. в различные файлы репозитория.
- Просим клиента внести изменённые файлы в репозиторий. Внесение измененных файлов в репозиторий называется фиксацией изменений или «коммитом» (commit).
- После коммита версия вашего локального репозитория изменилась.
- На данный момент изменения фиксированы только на локальном репозитории, чтобы они отобразились на сайте GitHub, требуется еще одна функция «синхронизация репозиториев» (push).
- Теперь ваш главный репозиторий, расположенный в GitHub, такой же, как на вашем компьютере.
Такая стандартная схема применима, когда над проектом работает один человек. Если над одним файлом проекта одновременно работает несколько человек, тут не обойтись без конфликтов, слияний, ручных разрешений конфликтов.
Слияние, конфликт, разрешение конфликта
Для понимая нужен пример. Влад и Артем сделали копию репозитория (pull) с фалом версии 1 с GitHub, внесли разные изменения в этот файл, оба зафиксировали изменения (commit) → версии фала в локальных репозиториев изменились, у Влада версия 2, у Артем 2А. И затем Влад запушил (синхронизировал репозитории- push). Теперь на GitHub добавилась версия файла 2. Артем тоже решил запушить свои изменения, т. к. на GitHub есть версия которой нет у Артема (у него нет версии 2), система откажется принимать его репозиторий для сохранения версии 2.
Для того, чтобы внести свои изменения, Артему нужно опять скопировать репозиторий (pull) с GitHub с дополнительной версией этого файла. При копировании произойдет конфликт.
На самом деле сильно конфликтов бояться не надо, при работе в большой команде их не избежать, это становится привычной рутиной.
Способы решения конфликта:
- Автоматическое слияние. Сравнивая построчно код Влада и Артема, GitHub может решить совместить куски кода в файле, при этой получится новая версия файла. При таком подходе в репозитории будут находиться версии 1, 2, 2А, и 3, а Артем теперь может запушить все отсутствующие версии файла.
- Разрешение конфликта вручную. Git пометит, какой код конфликтует, и вам нужно будет решить, какой вариант оставить или вообще внести третий. Создается версия 3, и Артем может запушить отсутствующие версии файла.
Master / не master, Fork, Pull request
Ветки — это своеобразные папки со всеми файлами проекта. Ветка Master — это самая главная папка вашего проекта, она всегда существует. Дополнительные ветки создаются под всякие дополнительные нужды.
Пример модели работы с ветками:
В Master лежит последняя стабильная версия, где вы можете вносить незначительные изменения; development — ветка для непосредственной разработки; dev-adaptive — ветка разработки, связанная с планируемым расширением функционала.
Что такое Fork? К примеру, на GitHub вам понравился какой-то проект, но вы заметили в нем ошибку и знаете, как ее решить, но доступа к редактированию чужого проекта у вас нет. Для этого вам нужно создать fokr. Теперь у вас есть доступ для редактирования файлов проекта. Вы справились с багом, но ваши труду пропадут даром т. к. изменения не отобразится в master ветке проекта. Чтобы такого не произошло и создан Pull request.
Pull request — это обращение к владельцам проекта с предложением внести в главную ветку ваши изменения.
Что такое Git? Что такое GitHub?
Существует множество способов использовать Git и GitHub, но начинать работу с GitHub не обязательно. Вам не нужно быть каким-то мастером-программистом или кем-то еще. Вы даже можете делать самые важные вещи прямо на сайте GitHub!
Тем не менее, это хорошая идея, чтобы найти свой терминал и получить хоть малейший комфорт с ним. Терминальные команды делают вещи намного быстрее! Я обязательно покажу вам, как начать пользоваться сайтом GitHub. Я также покажу вам некоторые команды терминала, которые вы, возможно, захотите использовать, чтобы сделать свою жизнь немного лучше.
Я собираюсь дать вам много объяснений здесь, но это все терминальные команды, которые вам действительно нужно знать, чтобы начать:
git clonegit statusgit addgit commit -m “ “git push
Это оно! Это большие! Если у вас есть с этим справиться, вам хорошо идти. Вы можете начать работу над своими проектами немедленно!
Мы также поговорим о
git initgit branchgit mergegit checkout
Возможно, вы работаете с другими людьми или захотите внести изменения и проверить их, прежде чем действительно их зафиксировать. Команды выше — это то, что вам нужно для начала совместной работы.
также очень полезно, если вы только начинаете! Мы тоже это обсудим.
(Если вы работаете на Mac, у вас уже есть терминал! Вы можете найти его, щелкнув по значку увеличительного стекла в верхнем правом углу экрана и выполнив поиск по слову «терминал».)
GitFlic. Российский GitHub. Рассмотрение сервиса и его нюансы +8
•
mepihin
•
#569484
•
Хабрахабр
•
•
12000
Git, Облачные сервисы, Управление разработкой
Рекомендация: подборка платных и бесплатных курсов продакт-менеджеров — https://katalog-kursov.ru/
Начнем с простого, что мне пришло письмо на почту такого вот содержания:
Смотрим сразу, что пригласили на тесты, но также обговорили момент о платном контенте. Ну ладно, всем надо как-то зарабатывать. Теперь перейдем на их сайт и посмотрим…
По сути, основное, что надо для работы в команде отсутствует. Прикольно, что они сразу подключат интеграцию с телегой. В нашей компании пользуются локальным GitLab, а бота для телеги мы написали сами, что заняло очень мало времени. Так что, как крутую фичу считать не будем. Да, многие скажут, что это же тест версия, поэтому тут нет много функционала… Да, соглашусь, но работа с ветками и так очевидна и проста, для этого не требуется супер технологий и знаний, а вот работа с трекерами и обсуждением кода — принципиальна.
Пойдем читать пользовательское соглашение. Сразу встречаем пункт о платных фичах:
Но, на сайте ни слова не указано о том, что это за фичи… Очень интересный подход… Скорее всего, просто посмотрят чем чаще пользуются и сделают платным Типичная тема в рашке.
Интересный момент по возрастным ограничениям. Вообще не понятен. То есть, хостить код можно только 18+??? Серьезно? А в чем смысл ограничений таких? Уменьшить аудиторию? Или еще чего?
Не хватает только кнопки «Войти через ГОСУСЛУГИ» :-D. Или круче: «Хостинг кода только для вакцинированных».
Ну по просмотру соглашения все. Особо много тут не написано, что тоже странно, но хоть как-то более менее ясно о чем речь. Теперь, давайте создадим аккаунт и попробуем что-нибудь.
Git
Если вы знакомы с централизованными системами управления версиями (например, Team Foundation Server, SharePoint или Visual Source Сейф), вы заметите, что Git имеет уникальный рабочий процесс вклада и терминологию для поддержки распределенной модели. Например, блокировка файлов обычно не связана с операциями проверка-out/проверка. Вместо этого Git обеспокоен изменениями на более тонком уровне, сравнивая байты файлов байтами.
Git также использует многоуровневую структуру для хранения содержимого проекта и управления им.
- Репозиторий — это единица хранения самого высокого уровня. Репозиторий содержит одну или несколько ветвей.
- Ветвь — это единица хранения с текущими файлами и папками, которые формируют содержимое проекта. Дополнительные сведения о ветвях см. в этой статьи.
Участники взаимодействуют с Git, чтобы обновлять репозитории и управлять ими локально и на уровне GitHub.
- Для локального взаимодействия участники используют такие инструменты, как консоль Git Bash, которая поддерживает команды Git для управления локальными репозиториями и обмена данными с репозиториями GitHub.
- Кроме того, участники используют сайт www.github.com с интегрированной системой Git для управления согласованием изменений, возвращаемых обратно в основной репозиторий.
Как пользоваться Git?
Дальше я буду предполагать, что вы выполнили установку и базовую настройку git. Кроме установки, вам нужно указать правильный адрес электронной почты и имя пользователя для доступа к серверу Git, например, на GitHub. Если вы этого еще не сделали смотрите инструкцию установка Git в Ubuntu 16.04.
Обычно, структура проекта в Git будет зависеть от масштаба и сложности вашей программы. Но для начала мы будем использовать проект, состоящий только из одной ветви. Каждый проект содержит одну ветку по умолчанию, она называется master. Наш первый проект будет называться test.
Создание проекта
Когда настройка git завершена перейдем к вашему проекту. В самом начале вам достаточно создать папку для файлов проекта. Если вы собираетесь работать над несколькими проектами, создайте папку git в вашем домашнем каталоге, а уже туда поместите папки ваших проектов:
Эта команда создаст нужную структуру папок и переводит текущий каталог в только что созданный. Теперь создадим первый файл нашего проекта:
Проект готов, но система контроля версий git еще не знает об этом.
Настройка проекта в git
Перед тем как git начнет отслеживать изменения, нужно подготовить все необходимые конфигурационные файлы. Сначала инициализируем пустой репозиторий в нашей папке:
После того как репозиторий будет создан, вам нужно добавить свои файлы в него. Каждый файл нужно добавлять отдельно или сказать утилите, что необходимо добавить все файлы явно. Пока вы не добавите файл сам он не будет отслеживаться. Новые файлы в будущем тоже нужно добавлять, они не добавляются автоматически. Сначала добавим текущую папку:
Если все прошло хорошо, то команда ничего не выведет.
Фиксация изменений
Изменения тоже автоматически не отслеживаются. Фиксация изменений выполняется с помощью команды commit. Вам нужно указать что было изменено с помощью небольшого комментария, буквально в несколько предложений. Хорошая практика выполнять фиксацию перед каждым серьезным изменением.
Таким образом, вы будете хранить все версии проекта, от самой первой и до текущей, а также сможете знать что, когда и где было изменено. Чтобы создать свой первый коммит выполните:
Команде необходимо передать два параметра, первый — это -m, ваш комментарий, второй -a, означает, что нужно применить действие ко всем измененным файлам. Для первого раза используется этот параметр, но обычно вам нужно указать измененные файлы или каталоги. Например, можно делать так:
Отправка изменений
До этого момента мы делали все в локальном репозитории. Вы можете использовать git локально, если нужен только контроль версий, но иногда нужно обменяться информацией с другими разработчиками и отправить данные в удаленный репозиторий.
Сначала нужно добавить удаленный репозиторий с помощью команды remote. Для этого нужно передать ей URL:
Затем можно посмотреть список удаленных репозиториев:
Вы можете использовать не только github сервера, но и любые другие. Теперь для отправки ваших изменений используйте такую команду:
Команда push указывает, что нужно отправить данные в удаленный репозиторий, origin — наш настроенный репозиторий, а master — ветвь.
Управление ветвями
Для простых проектов достаточно одной ветви. Но если проект большой и он имеет несколько версий, в том числе тестовую, то может понадобиться создать для каждой из них отдельную ветвь. Сначала смотрим доступные ветви:
Опция -a указывает что нужно вывести все ветви, даже не синхронизированные. Звездочка указывает на активную ветвь. Теперь создадим ветвь для разработки с помощью команды checkout:
Переключаться между ветвями можно тоже с помощью той же команды:
Теперь создадим еще один файл:
И добавим его в нашу новую ветвь develop:
Сделаем коммит для внесенных изменений:
Дальше проверим существует ли этот файл в основной ветке master или только в дополнительной. Смотрим текущую ветку:
Затем переключаемся на ветку master и снова смотрим:
Здесь файла нет, так и должно быть. В git есть такая полезная вещь, как слияние. С помощью нее вы можете объединить две ветви. Например, переместить код из рабочей ветки в стабильную. Для этого достаточно выполнить команду merge:
Перед тем как будет выполнено слияние вам нужно ввести комментарий, зачем это нужно. Затем если вы еще раз выполните ls, то увидите, что здесь уже есть нужный файл. Наши примеры git подошли к концу.
Popularity and Growth
Even though the tool’s popularity doesn’t matter that much in the development process itself, it’s best to motivate your developers to learn trending instruments. It’s going to be easier to recruit candidates who have experience working with the service, introduce new practices, and drive transformation in the organization.
So, let’s take a look at current popularity, growth dynamics, future trends, and user profiles. The number of users is important, but it’s also great to know who these users are. For instance, GitHub is known as a go-to destination for Ruby and Ruby on Rails developers because it hosts most gems and add-ons.
GitHub Statistics
GitHub is the biggest code repository, used both by organizations for private access and open-source collaboration. The platform is so popular that people often think it’s synonymous with Git itself – hence, the Git versus GitHub doubts emerge. According to Statista, GitHub hosts leading open-source tools, including Flutter, Microsoft’s VS Code and Azure Docs, Facebook’s React Native, Tensor Flow, Kubernetes, and others.
Currently, GitHub is used by , according to the data released in January 2020. It’s used by Microsoft, Facebook, Google, and other large corporations. In terms of popularity, this distributed version control service is the leader.
According to Google Trends, the popularity of GitHub has been fairly consistent over the last two years. The community will likely keep growing.
BitBucket Statistics
Jira’s popularity is constantly growing, and this trend is driving new users to BitBucket as well. BitBucket is used by Slack, Accenture, Figma, Paypal, and other companies. The open-source community on BitBucket is much less developed. Typical clients of the platform are active users of the Atlassian ecosystem – not open-source contributors.
Unfortunately, BitBucket doesn’t publish regular statistics on the number of users. According to their official news, in 2019, the product was used by 10 million developers. According to search trends, the service’s popularity nowadays is lower than GitHub’s or GitLab’s.
GitLab Statistics
According to GitLab’s case studies page, the tool is used by Drupal, Ticketmaster, BI Worldwide, and other enterprises.
Here’s the list of open-source initiatives hosted on GitLab. Rather than big business projects, it accommodates scientific initiatives and NGOs.
Unfortunately, GitLab doesn’t have official statistics on user count. According to some sources, the service is used by 200,000 – 500,000 organizations and developers. As for Google search trends, the service gets more mentions than BitBucket but much less than GitHub.
How does Version Control actually work?
Think of version control like a tree. The tree starts out small but eventually grows over time. There is a main trunk. Then there are branches. And leaves too.
Here’s what’s going on:
- The blue circles in the middle represent each change to a single file (or even a set of files) over time. This is like the main trunk of the tree.
- The arrows indicate the flow of time.
- The green circles represent changes to the file but are “branched” off the main trunk. That’s where a developer wanted to make changes to the file without changing the main trunk. Like they are thinking of building a new feature in the “branch”. So a branch has its own change history independent of the main trunk. And a branch can be created from another branch too.
- The dotted arrows indicate changes from branches that were then included (“merged”) back into the main trunk. That’s where a developer now thinks their changes are in good shape and wants them part of the main trunk or main program.
- The purple circle is like a leaf, meaning a change that never gets merged into the main trunk. That’s where a developer tried something but decided it wasn’t such a good idea after all. That happens
Настройка описания репозитория
Основное описание вашего GitHub-проекта задаётся в файле Readme.md, который можно создать вместе с репозиторием или после. Расширение md — это просто сокращение от названия популярного языка упрощённой разметки контента — Markdown.
Содержимое файла Readme отображается на главной странице репозитория и отвечает на вопрос, что это за проект, чем он может быть полезен другим разработчикам и как им воспользоваться.
Чтобы оформить Readme со вкусом, можно воспользоваться руководством GitHub по markdown-разметке. Вот как будет выглядеть Readme нашего репозитория-примера после прокачки (первый и второй экран соответственно).
Настройка файла Readme GitHub-репозиторияСкриншот: Skillbox Media
Настройка файла Readme GitHub-репозиторияСкриншот: Skillbox Media
Обратите внимание: в оформлении можно использовать всё что угодно — заголовки разных уровней, выделение жирным/курсивом, изображения, эмодзи, ссылки и так далее