Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.55.0 no changes
-
2.54.0
2026-04-20
- 2.53.0 no changes
-
2.52.0
2025-11-17
- 2.51.2 no changes
-
2.51.1
2025-10-15
- 2.49.1 → 2.51.0 no changes
-
2.49.0
2025-03-14
- 2.48.1 → 2.48.2 no changes
-
2.48.0
2025-01-10
- 2.47.1 → 2.47.3 no changes
-
2.47.0
2024-10-06
- 2.46.1 → 2.46.4 no changes
-
2.46.0
2024-07-29
- 2.45.1 → 2.45.4 no changes
-
2.45.0
2024-04-29
- 2.44.1 → 2.44.4 no changes
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.41.1 → 2.42.4 no changes
-
2.41.0
2023-06-01
- 2.38.1 → 2.40.4 no changes
-
2.38.0
2022-10-02
- 2.36.1 → 2.37.7 no changes
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 no changes
-
2.35.0
2022-01-24
- 2.32.1 → 2.34.8 no changes
-
2.32.0
2021-06-06
- 2.30.2 → 2.31.8 no changes
-
2.30.1
2021-02-08
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 no changes
-
2.29.0
2020-10-19
- 2.28.1 no changes
-
2.28.0
2020-07-27
- 2.27.1 no changes
-
2.27.0
2020-06-01
- 2.25.1 → 2.26.3 no changes
-
2.25.0
2020-01-13
- 2.23.1 → 2.24.4 no changes
-
2.23.0
2019-08-16
- 2.22.2 → 2.22.5 no changes
-
2.22.1
2019-08-11
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.18.1 → 2.20.5 no changes
-
2.18.0
2018-06-21
- 2.17.0 → 2.17.6 no changes
-
2.16.6
2019-12-06
- 2.15.4 no changes
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
- 2.12.5 no changes
-
2.11.4
2017-09-22
- 2.10.5 no changes
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
-
2.7.6
2017-07-30
- 2.4.12 → 2.6.7 no changes
-
2.3.10
2015-09-28
- 2.1.4 → 2.2.3 no changes
-
2.0.5
2014-12-17
СИНОПСИС
gitclone[--template=<каталог-шаблонів>] [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror] [-o<name>] [-b<name>] [-u<upload-pack>] [--reference<repository>] [--dissociate] [--separate-git-dir<git-dir>] [--depth<depth>] [--[no-]single-branch] [--[no-]tags] [--recurse-submodules[=<pathspec>]] [--[no-]shallow-submodules] [--[no-]remote-submodules] [--jobs<n>] [--sparse] [--[no-]reject-shallow] [--filter=<filter-spec> [--also-filter-submodules]] [--] <repository> [<directory>]
ОПИС
Клонує репозиторій у новостворену теку, створює гілки віддаленого відстеження для кожної гілки в клонованому репозиторії (можна перевірити за допомогою git branch --remotes), а також створює та отримує початкову гілку, яка є відгалуженням від поточної активної гілки клонованого репозиторію.
Після клонування, команда git fetch без аргументів оновить усі гілки віддаленого відстеження, а команда git pull без аргументів додатково обʼєднає віддалену гілку master з поточною гілкою master, якщо така є (це не стосується випадку, коли вказано --single-branch; див. нижче).
Ця стандартна конфігурація досягається шляхом створення посилань на вершини віддалених гілок у refs/remotes/origin та ініціалізації змінних конфігурації remote.origin.url та remote.origin.fetch.
ОПЦІЇ
-
-l -
--local -
Коли репозиторій для клонування знаходиться на локальному компʼютері, цей прапорець оминає звичайний механізм транспортування "Git aware" та клонує репозиторій, створюючи копію
HEADта всього, що знаходиться в теках objects та refs. Файли в теці.git/objects/є жорсткими посиланнями (hard link) для економії місця, коли це можливо.Якщо репозиторій вказано як локальний шлях (наприклад, /шлях/до/репозиторію), що є типовим, то
--localпо суті не має жодного ефекту. Якщо репозиторій вказано як URL-адресу, то цей прапорець ігнорується (і ми ніколи не використовуємо локальні оптимізації). Вказівка--no-localзамінить стандартні значення, коли вказано /шлях/до/репозиторію, замість нього використовуватиметься звичайний транспорт Git.Якщо тека
$GIT_DIR/objectsрепозиторію містить символічні посилання або є символічним посиланням, клонування не вдасться. Це захід безпеки для запобігання ненавмисному копіюванню файлів шляхом розбору символічних посилань.Ця опція не працює з репозиторіями, що належать іншим користувачам, з міркувань безпеки, і для успішного клонування необхідно вказати
--no-local.ПРИМІТКА: ця операція може змагатися з модифікацією оригінального репозиторію, подібно до виконання
cp-r<src> <dst> під час модифікації <src>. -
--no-hardlinks -
Під час клонування з репозиторію на локальній файловій системі, примусово використовувати копіювання для файлів в теці
.git/objectsзамість створення жорстких посилань. Це може бути доцільним, якщо ви намагаєтеся створити резервну копію свого репозиторію. -
-s -
Коли репозиторій для клонування знаходиться на локальному компʼютері, замість використання жорстких посилань, автоматично налаштовує
.git/objects/info/alternatesдля спільного використання обʼєктів з вихідним репозиторієм. Отриманий репозиторій спочатку працюватиме без жодного власного обʼєкта.Noteце потенційно небезпечна операція; не використовуйте її, якщо не розумієте, що вона робить. Якщо ви клонували репозиторій з цією опцією і потім видалили гілки (або використали будь-яку іншу команду Git, яка робить наявний коміт недоступним) у вихідному репозиторії, деякі обʼєкти можуть стати недоступними (або підвішеними). Ці обʼєкти можуть бути видалені звичайними операціями Git (наприклад, gitcommit), які автоматично викликаютьgitmaintenancerun--auto. (Див. git-maintenance[1].) Якщо ці обʼєкти будуть видалені і вони були доступні в клонованому репозиторії, то клонований репозиторій стане пошкодженим.Зверніть увагу, що запуск
gitrepackбез опції--localв репозиторії, який було клоновано з опцією--shared, скопіює обʼєкти з вихідного репозиторію в пакунок в клонованому репозиторії, що знищить економію дискового простору відclone--shared. Однак безпечно запускатиgitgc, який стандартно використовує опцію--local.Якщо ви хочете розірвати залежність репозиторію, клонованого за допомогою
--shared, від його вихідного репозиторію, ви можете просто виконатиgitrepack-a, щоб скопіювати всі обʼєкти з вихідного репозиторію в пакунок у клонованому репозиторії. -
--reference=<repository> -
--reference-if-able=<repository> -
Якщо посилання <репозиторій> знаходиться на локальному компʼютері, автоматично налаштовує
.git/objects/info/alternatesтак, щоб отримувати обʼєкти з посилання <репозиторій>. Використання вже наявного репозиторію як альтернативного вимагатиме менше обʼєктів для копіювання з репозиторію, що клонується, зменшуючи мережеві та локальні витрати на зберігання. При використанні--reference-if-able, відсутня тека пропускається з попередженням замість того, щоб переривати клонування.Noteдив. ПРИМІТКУ щодо опції --shared, а також опції--dissociate. -
--dissociate -
Запозичувати обʼєкти з вказаних в
--referenceрепозиторіїв-джерел лише для зменшення обсягу мережевого трафіку, і припинити запозичення з них після створення клонованого репозиторію шляхом необхідного локального копіювання запозичених обʼєктів. Цю опцію також можна використовувати при локальному клонуванні з репозиторію, який вже запозичує обʼєкти з іншого репозиторію — новий репозиторій буде запозичувати обʼєкти з того ж репозиторію, і цю опцію можна використовувати для припинення запозичення. -
-q -
--quiet -
Працює тихо. Прогрес не зʼявляється у стандартному потоці помилок.
-
-v -
--verbose -
Виконується з детальним виводом. Не впливає на звіт про статус прогресу в стандартний потік помилок.
-
--progress -
Зазвичай повідомляє про хід виконання у стандартному потоці помилок при підключенні до терміналу, якщо не вказано параметр
--quiet. Цей параметр примусово вмикає показ інформації про хід виконання, навіть якщо стандартний потік помилок не спрямований на термінал. -
--server-option=<опція> -
Передавати вказаний рядок на сервер під час зв’язку за допомогою протоколу версії 2. Вказаний рядок не повинен містити символів NUL або LF. Обробка сервером опцій, включаючи невідомі, залежить від конкретного сервера. Якщо вказано декілька
--server-option=<option>, вони всі надсилаються на інший бік у порядку, вказаному в командному рядку. Якщо в командному рядку не вказано--server-option=<option>, замість цього використовуються значення змінної конфігураціїremote.<name>.serverOption. -
-n -
--no-checkout -
Не перемикатись на
HEADпісля завершення клонування. -
--no-reject-shallow -
--reject-shallow -
Завершиться з помилкою, якщо вихідний репозиторій є поверхневим репозиторієм. Змінну конфігурації
clone.rejectShallowможна використовувати для визначення типово значення. -
--bare -
Створює «голий» Git-репозиторій. Тобто, замість створення <теки> та розміщення адміністративних файлів у <тека>
/.git, зробіть саму <теку> як$GIT_DIR. Це, очевидно, передбачає--no-checkout, оскільки немає ніде переходу до робочого дерева. Також вершини гілок на віддаленому сервері копіюються безпосередньо до відповідних локальних вершин гілок, без зіставлення їх зrefs/remotes/origin/. Коли використовується ця опція, не створюються ні гілки віддаленого відстеження, ні повʼязані змінні конфігурації. -
--sparse -
Використовувати розріджену перевірку, при якій спочатку присутні лише файли в кореневій теці. Команда git-sparse-checkout[1] може бути використана для розширення робочої теки за потреби.
-
--filter=<filter-spec> -
Використовувати функцію часткового клонування та запитувати сервер надіслати підмножину доступних обʼєктів відповідно до заданого фільтра обʼєктів. При використанні параметра
--filterдля фільтра часткового клонування застосовується вказаний <filter-spec>.Якщо використовується параметр
--filter=auto, специфікація фільтра визначається автоматично за допомогою протоколу promisor-remote (див. gitprotocol-v2[5]) шляхом об’єднання специфікацій фільтрів, оголошених сервером для віддалених репозиторіїв-обіцянок, які клієнт приймає (див. параметр конфігураціїpromisor.acceptFromServerу git-config[1]). Це дозволяє серверу запропонувати оптимальний фільтр для доступних віддалених серверів-обіцяльників.Як і в разі інших параметрів фільтра, значення «auto» зберігається в конфігурації. Це гарантує, що під час наступних запитів система й надалі буде враховувати поточні рекомендації сервера.
Детальнішу інформацію про всі інші доступні специфікації фільтрів див. в описі параметра
--filter=<filter-spec> у документації git-rev-list[1].Наприклад, параметр
--filter=blob:noneвідфільтрує всі блоби (вміст файлів), доки вони не знадобляться Git. Крім того, параметр--filter=blob:limit=<size> відфільтрує всі блоби розміром не менше <size>. -
--also-filter-submodules -
Також застосовувати фільтр часткового клонування до будь-яких субмодулів у репозиторії. Потрібні
--filterта--recurse-submodules. Це можна зробити стандартно увімкненим, встановленням параметра конфігураціїclone.filterSubmodules. -
--mirror -
Встановлює дзеркало вихідного репозиторію. Має на увазі, що використовується
--bare. Порівняно з--bare,--mirrorне лише зіставляє локальні гілки вихідного коду з локальними гілками цільового репозиторію, але й зіставляє всі посилання (включаючи гілки віддаленого відстеження, нотатки тощо) та встановлює конфігурацію refspec таким чином, що всі ці посилання перезаписуютьсяgitremoteupdateу цільовому репозиторії. -
-o<імʼя> -
--origin=<імʼя> -
Замість використання віддаленого імені
originдля відстеження репозиторію основної платформи, використовується <імʼя>. Замінюєclone.defaultRemoteNameз конфігурації. -
-b<імʼя> -
--branch=<імʼя> -
Направте щойно створений
HEADна гілку <імʼя> замість гілки, на яку вказуєHEADклонованого репозиторію. У не-голому репозиторії це буде гілка, яка буде вибрана для роботи. Параметр--branchтакож може приймати теги і від’єднуєHEADвід цього коміту в отриманому репозиторії. -
--revision=<ревізія> -
Створює новий репозиторій та отримує історію, що веде до вказаної <ревізії> (і нічого більше), без створення жодної гілки для віддаленого відстеження та без створення жодної локальної гілки, та від’єднує
HEADвід <ревізії>. Аргументом може бути ім’я посилання (наприклад,refs/heads/mainабоrefs/tags/v1.0), яке зводиться до коміту, або шістнадцяткове імʼя обʼєкта. Цей параметр несумісний з--branchта--mirror. -
-u<upload-pack> -
--upload-pack=<upload-pack>