GitHub: суштина, могућности и како ради

Аутор: IT Sectr Објављено: 2026-05-09 Време читања: 8 мин

GitHub — је највећа веб платформа за хостовање Git репозиторијума, заједнички развој и аутоматизацију процеса, у власништву компаније Microsoft. Она пружа не само складиштење кода са контролом верзија, већ и комплетан скуп алата за управљање пројектима: Issue Tracking, Pull Request са прегледом кода, Actions за CI/CD и Wiki за документацију. Према подацима GitHub, 2024, платформа броји преко 100 милиона програмера и 420 милиона репозиторијума.

Главно

  • GitHub — веб платформа за Git репозиторијуме са алатима за преглед кода, CI/CD и управљање пројектима.
  • Pull Request — основни механизам за уношење измена са дискусијом и провером кода.
  • GitHub Actions омогућава аутоматизацију изградње, тестирања и имплементације без спољних CI сервиса.
  • Issues и Projects — уграђени систем за праћење задатака и управљање спринтовима.
  • GitHub Pages пружа бесплатан хостинг за статичке сајтове и документацију.

Шта је GitHub?

GitHub — је веб сервис за складиштење и заједнички рад на Git репозиторијумима, основан 2008. године од стране Тома Престона-Вернера, Криса Ванстрата и П.Џ. Хајета. 2018. године компанију је купио Microsoft за 7,5 милијарди долара. Платформа пружа веб интерфејс за све Git операције, додајући изнад тога друштвене функције: форкове, звездице, претплате, преглед кода и уграђени систем континуиране интеграције.

Кључна разлика GitHub-а од конкурената — отворени екосистем и највећа заједница програмера. На GitHub-у се налазе изворни кодови Android-а, Kubernetes-а, React-а, Swift-а, Kotlin-а и хиљада других open-source пројеката. То чини платформу не само алатом за складиштење кода, већ и друштвеном мрежом за програмере: могуће је пратити пројекте, дискутовати о изменама и доприносити путем pull request-а.

Према извештају Microsoft-а (2024), кроз GitHub дневно прође преко 10 милиона нових Pull Request-а, а број месечних активних корисника премашио је 100 милиона. Платформа подржава преко 500 програмских језика, аутоматско откривање језика по екстензији датотека и истицање синтаксе кода.

Основне могућности GitHub-а

Функционалност GitHub-а далеко превазилази обичан хостинг Git-а. Платформа пружа: GitHub Actions — уграђени CI/CD систем; GitHub Packages — регистар пакета и контејнера; GitHub Codespaces — облачна развојна окружења заснована на VS Code-у; GitHub Discussions — форум за заједницу; GitHub Security — Dependabot за аутоматско ажурирање зависности и скенирање рањивости; GitHub Copilot — AI асистента за писање кода.

За организације GitHub нуди GitHub Enterprise — корпоративну верзију са сопственим хостингом (GitHub Enterprise Server) или облачном имплементацијом (GitHub Enterprise Cloud). Корпоративне функције укључују SAML/SSO аутентификацију, ревизију активности, политике безбедности репозиторијума и SLA од 99,95% доступности. Enterprise верзију користе компаније попут Google-а, Apple-а и Airbnb-а.

Важна карактеристика GitHub-а — GitHub CLI (gh), који омогућава извршавање свих операција на платформи из командне линије без коришћења веб интерфејса. Помоћу gh-а можете креирати репозиторијуме, управљати Issues-има, прегледати Pull Request-ове и покретати Actions директно из терминала, што убрзава рад програмера навикнутих на командну линију.

ФункцијаНаменаДоступност
ActionsCI/CD и аутоматизацијаБесплатно 2000 мин/мес
CodespacesОблачно IDE засновано на VS Code-уПлатно, 60 ч/мес бесплатно
PackagesХостинг пакета и Docker сликаБесплатно 500 MB
DependabotАутоматско ажурирање зависностиБесплатно за јавне репозиторијуме
PagesХостинг статичких сајтоваБесплатно

Pull Request и преглед кода

Pull Request (PR) — је основни механизам уношења измена у пројекат на GitHub-у. Програмер креира грану са изменама, објављује је на GitHub-у и шаље захтев за спајање (Pull Request) у главну грану. Остали учесници пројекта виде разлику (diff) између грана, могу остављати коментаре на одређене линије кода, предлагати измене и одобравати или одбијати захтев.

Процес прегледа кода на GitHub-у је изграђен око PR-а. Сваки коментар се везује за одређену линију diff-а и може бити три типа: Comment (обичан коментар), Request Changes (захтева исправке) и Approve (одобрење). Након уношења измена, аутор ажурира PR новим комитом и процес прегледа се понавља. Када су све примедбе отклоњене и PR одобрен, измене се спајају у циљну грану.

bash
# Креирање feature гране и push
git checkout -b fix-login-bug
git add src/
git commit -m "Fix login validation error"
git push -u origin fix-login-bug

# Креирање PR-а преко CLI
gh pr create --base main --title "Fix login validation" \
    --body "Fixed edge case with empty email field"

# Преглед и merge PR-а
gh pr review --approve fix-login-bug
gh pr merge --squash fix-login-bug

GitHub подржава заштиту грана (branch protection rules): може се забранити директни push у main, захтевати обавезан број одобрења пре merge-а, покретати Actions провере и захтевати ажурност гране пре спајања. Заштита грана се подешава у Settings → Branches и обавезна је пракса за production пројекте, спречавајући случајно уношење нестабилног кода у главну грану.

GitHub Actions и CI/CD

GitHub Actions — је уграђена CI/CD платформа која омогућава аутоматизацију токова рада директно у репозиторијуму. Workflow се описује у YAML датотекама, смештеним у директоријуму .github/workflows/. Сваки workflow се састоји од једног или више job-ова, који се извршавају на runner-има — виртуелним машинама са Linux, Windows или macOS.

Actions подржава модел вођен догађајима: workflow се покреће при push-у, креирању PR-а, објављивању release-а, по распореду или путем webhook-а. Ово омогућава аутоматизацију изградње, покретање тестова, статичку анализу кода, објављивање у продавницама апликација и имплементацију на сервер без учешћа програмера. Испод је пример workflow-а за Android пројекат:

yaml
name: Android CI

on:
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up JDK 17
        uses: actions/setup-java@v4
        with:
          java-version: '17'
      - name: Build with Gradle
        run: ./gradlew assembleDebug

Екосистем Actions укључује преко 20 000 готових акција у GitHub Marketplace-у. Популарне акције: checkout (клонирање репозиторијума), setup-java/setup-node/setup-python (подешавање окружења), upload-artifact (чување артефаката изградње), cache (кеширање зависности за убрзање), slack-notify (слање обавештења у Slack). Actions такође подржава матричну изградњу — истовремено покретање на више верзија ОС или језика.

GitHub Projects и Issues

Issues — је уграђени систем за праћење задатака на GitHub-у. Сваки Issue има наслов, опис, ознаке (labels), додељене извршиоце (assignees), прекретнице (milestones) и повезане Pull Request-ове. Issues могу бити шаблонизирани — за пријаве грешака, захтеве за функцијама или питања користе се различити шаблони који се аутоматски замењују при креирању.

GitHub Projects (раније Projects Beta) — је алат за управљање пројектима заснован на табли, сличан Jira-и и Trello-у. Projects подржава прилагођена поља (статус, приоритет, спринт), повезивање са Issues-има и Pull Request-овима, аутоматизацију померања картица при промени статуса задатка и аналитику у облику дијаграма сагоревања задатака (burndown chart). Projects је доступан у два режима: Table (табеларни приказ) и Board (канбан табла).

За управљање издањима GitHub нуди Milestones — групе Issue-а и PR-ова, обједињене заједничким циљем са роком. Свака прекретница показује напредак извршења: колико је задатака отворено, колико затворено и да ли се рок поштује. Milestones се интегришу са Releases-има — при објављивању издања може се повезати са прекретницом и аутоматски генерисати листа промена у CHANGELOG-у на основу затворених Issue-а.

GitHub Pages и Wiki

GitHub Pages — је бесплатан хостинг за статичке сајтове, који аутоматски објављује садржај репозиторијума на адреси https://username.github.io/repository. Pages подржава HTML, CSS, JavaScript и статичке генераторе: Jekyll (уграђен), Hugo, Next.js (извоз) и MkDocs. Подешавање укључује избор гране и директоријума за објављивање, као и подршку за прилагођени домен.

За техничку документацију GitHub нуди Wiki — уграђени вики систем, који се такође чува као Git репозиторијум. Wiki подржава Markdown и омогућава уређивање страница како преко веб интерфејса, тако и локално путем push-а у вики репозиторијум. Свака Wiki страница има сопствену историју измена, што је згодно за документовање API-ја, архитектуре и процеса пројекта.

Комбинација GitHub Pages + Jekyll — популарно решење за сајтове документације. Jekyll аутоматски конвертује Markdown датотеке у статичке HTML странице, подржава теме, навигацију и претрагу. На пример, документација Android Developers-а раније је користила Jekyll на GitHub Pages-у, а сада — интерну платформу, али хиљаде open-source пројеката и даље користи ову комбинацију за своје сајтове.

GitHub CLI: управљање без прегледача

GitHub CLI (gh) омогућава извршавање свих операција на платформи путем командне линије: креирање репозиторијума, управљање Issues-има, прегледање и одобравање Pull Request-ова, покретање Actions-а. Команда gh repo create my-project --public креира удаљени репозиторијум и повезује га са локалним, а gh pr create креира Pull Request из тренутне гране. CLI убрзава рад програмера који преферирају терминал у односу на веб интерфејс.

GitHub API за аутоматизацију

GitHub REST API и GraphQL API пружају програмски приступ свим функцијама платформе: креирање Issue-а, управљање корисницима, добијање статистике и управљање Actions-има. GraphQL API је пожељнији за сложене упите, јер омогућава добијање само потребних поља у једном упиту. Rate limit за REST API — 5000 захтева на сат за аутентификоване кориснике. API се широко користи за интеграцију GitHub-а са спољним CI системима и интерним DevOps алатима.

GitHub Gist за брзе белешке

GitHub Gist — сервис за објављивање фрагмената кода без креирања пуног репозиторијума. Gist подржава истицање синтаксе, уграђивање на спољне сајтове и историју верзија. Сваки Gist може бити јаван (видљив у претрази) или тајни (доступан само преко линка). Gist се користи за брзу размену конфигурација, логова и примера кода у тимској преписци, као и као аналог Pastebin-а за програмере.

Често постављана питања

По чему се GitHub разликује од GitLab-а?

GitHub ставља нагласак на отворену заједницу и друштвене функције (форкови, звездице). GitLab нуди моћнији уграђени CI/CD и сопствени хостинг (Self-Managed) без ограничења у минутима Actions-а.

Колико кошта GitHub за тим?

GitHub Team кошта 4 долара по кориснику месечно и пружа неограничене приватне репозиторијуме, заштиту грана и Actions (3000 минута). Бесплатни тариф је погодан за мале open-source пројекте.

Како направити приватни репозиторијум?

При креирању репозиторијума изаберите Private уместо Public. У приватним репозиторијумима код виде само позвани учесници. На бесплатном тарифу приватни репозиторијуми су доступни са ограничењем до 3 сарадника.

Шта је GitHub Copilot?

GitHub Copilot — AI асистент заснован на OpenAI Codex-у, који нуди аутоматско довршавање кода у реалном времену. Ради у VS Code-у, JetBrains-у и Neovim-у, подржава све популарне програмске језике.

Како избрисати репозиторијум на GitHub-у?

Идите на Settings → Danger Zone → Delete this repository. Брисање је неповратно — сви комитови, Issue-и и Wiki биће избрисани без могућности обнављања. Претходно се уверите да имате резервну копију.

Резиме

  • GitHub — највећа платформа за хостовање Git репозиторијума са уграђеним CI/CD алатима и управљањем пројектима.
  • Pull Request обезбеђује процес прегледа кода са коментарима на линије, одобрењима и заштитом грана.
  • GitHub Actions аутоматизује изградњу, тестирање и имплементацију путем YAML конфигурације у репозиторијуму.
  • Issues и Projects замењују Jira-у и Trello за мале тимове са прилагођеним пољима и канбан таблом.
  • GitHub Pages и Wiki пружају бесплатан хостинг за документацију и статичке сајтове.
  • Екосистем укључује Copilot (AI кодирање), Codespaces (облачно IDE), Packages и Dependabot.
  • Започните креирањем репозиторијума и првог Pull Request-а — ово ће покрити основне потребе тима.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође