Какие типы URL используются в Git для подключения к удалённым репозиториям?

Ответ

В Git для работы с удалёнными репозиториями используются URL, различающиеся по протоколу и формату:

Основные типы URL:

  1. HTTPS URL

    • Формат: https://hostname.com/path/to/repo.git
    • Использование: Стандартный способ, не требующий дополнительной настройки на клиенте. Часто запрашивает логин/пароль.
      git clone https://github.com/user/example-repo.git
  2. SSH URL

    • Формат: git@hostname.com:user/repo.git или ssh://git@hostname.com:port/path/to/repo.git
    • Использование: Безопасный протокол, использующий пару ключей (публичный/приватный). Не требует ввода пароля при каждом обращении.
      git clone git@github.com:user/example-repo.git
      # С указанием порта
      git clone ssh://git@example.com:2222/user/repo.git
  3. Git URL (устаревший)

    • Формат: git://hostname.com/path/to/repo.git
    • Использование: Специальный, нешифрованный протокол Git. Не рекомендуется из-за отсутствия аутентификации и шифрования.

Дополнительные форматы и параметры:

  • URL с учётными данными (небезопасно): Встраивание логина и пароля прямо в URL.
    git clone https://username:password@github.com/user/repo.git
  • Локальные пути: Для репозиториев в локальной файловой системе.
    git clone /opt/git/project.git
    git clone file:///opt/git/project.git

Как посмотреть URL текущего удалённого репозитория:

git remote -v
# origin  git@github.com:user/repo.git (fetch)
# origin  git@github.com:user/repo.git (push)

Ответ 18+ 🔞

Да ты посмотри, какая хуйня творится в этом вашем Гит-то! Там же, блядь, целый зоопарк этих URL-адресов, и каждый со своим характером, как сука в баре. Разбираться надо, а то наебнёшься с первого же клона.

Вот основные типы, которые тебя ждут:

  1. HTTPS URL — для ленивых и доверчивых

    • Как выглядит: https://hostname.com/path/to/repo.git
    • Суть: Дефолтный путь, для него нихуя настраивать не надо. Но он, сука, как назойливый попрошайка — каждый раз будет тебя за логин с паролем доёбываться. Удобно, но надоедает пиздецки.
      git clone https://github.com/user/example-repo.git
  2. SSH URL — для пацанов, которые в теме

    • Как выглядит: git@hostname.com:user/repo.git или ssh://git@hostname.com:port/path/to/repo.git
    • Суть: Вот это уже серьёзно, блядь. Работает на ключах — один публичный на сервак закинул, приватный у себя держишь. Настроил один раз — и потом летаешь как бог, без этих ебучих запросов пароля. Настоящая магия, ёпта.
      git clone git@github.com:user/example-repo.git
      # А если сервер извращенец и порт нестандартный
      git clone ssh://git@example.com:2222/user/repo.git
  3. Git URL — древний артефакт, как хуй мамонта

    • Как выглядит: git://hostname.com/path/to/repo.git
    • Суть: Протокол времён, когда всем было похуй на безопасность. Ни шифрования, ни аутентификации — один голый стриптиз. Хуй будешь так использовать, только если ты самоубийца или тебе на проект насрать.

А ещё есть, блядь, извращения всякие:

  • URL с логином-паролем внутри (ахтунг!): Впихнуть всё прямо в строку, чтоб врагу не повадно было. Не делай так, если не хочешь, чтобы твои креды светились в истории баша, как ёлочная гирлянда.
    git clone https://username:password@github.com/user/repo.git
  • Локальные пути — для домашних посиделок: Когда репа валяется прямо на твоём же компе.
    git clone /opt/git/project.git
    git clone file:///opt/git/project.git

И главное, чувак, не забудь! Чтобы не гадать, на каком же ты URL висишь, как обезьяна на лиане, просто введи волшебную команду:

git remote -v
# origin  git@github.com:user/repo.git (fetch)
# origin  git@github.com:user/repo.git (push)

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