[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/macos/command-line-tools":3,"mdc--4gkx9j-key":813,"mdc-d6qn2f-key":824,"mdc-mu12nz-key":832,"mdc--raa89o-key":854,"mdc-c0x8z4-key":871,"mdc--3t597i-key":887,"mdc-1wnr4f-key":904,"mdc--muv5d-key":929,"mdc-rfd1ve-key":960,"related-/guides/macos/homebrew-installation,/guides/macos/git-basics,/errors/macos/xcode-select-errors":984},{"id":4,"title":5,"appliesTo":6,"author":10,"body":11,"canonical":745,"code":745,"createdAt":746,"description":747,"difficulty":748,"draft":749,"estimatedTime":750,"extension":751,"faq":752,"howToSteps":765,"howToTotalTime":781,"image":745,"keywords":782,"locale":791,"meta":792,"navigation":318,"path":793,"platform":794,"related":795,"section":799,"seo":800,"severity":745,"stem":801,"summary":802,"tags":803,"twitterCreator":745,"twitterSite":745,"type":811,"updatedAt":746,"__hash__":812},"content_ru/guides/macos/command-line-tools.md","Установка и настройка Command Line Tools на macOS",[7,8,9],"macOS Sonoma 14.x","macOS Sequoia 15.x","Xcode Command Line Tools 15.x+","FixPedia Team",{"type":12,"value":13,"toc":732},"minimark",[14,19,23,27,46,50,55,63,86,111,114,127,130,134,137,190,200,204,210,215,230,233,253,260,265,279,282,286,289,388,399,403,406,512,515,519,522,602,605,609,728],[15,16,18],"h2",{"id":17},"введение-зачем-это-нужно","Введение / Зачем это нужно",[20,21,22],"p",{},"Xcode Command Line Tools (CLT) — это официальный набор утилит от Apple, необходимый для разработки ПО на macOS без установки полноценной IDE Xcode. Он включает компиляторы (Clang/LLVM), системы контроля версий (Git, SVN), утилиты сборки (Make), отладчики и заголовочные файлы frameworks. Без CLT многие скрипты, пакеты (например, через Homebrew) и инструменты разработки не будут работать. Данный гайд поможет вам быстро установить, проверить и настроить этот критически важный компонент.",[15,24,26],{"id":25},"требования-подготовка","Требования / Подготовка",[28,29,30,34,37,40,43],"ul",{},[31,32,33],"li",{},"macOS 10.9 (Mavericks) или новее (актуально для Sonoma/Sequoia).",[31,35,36],{},"Учетная запись с правами администратора (для установки).",[31,38,39],{},"Стабильное интернет-соединение (размер загрузки ~1.5–2 ГБ).",[31,41,42],{},"Достаточно свободного места на системном диске (не менее 5 ГБ рекомендуется).",[31,44,45],{},"Терминал (Terminal.app) или любая альтернативная оболочка (iTerm2, Hyper).",[15,47,49],{"id":48},"пошаговая-инструкция","Пошаговая инструкция",[51,52,54],"h3",{"id":53},"шаг-1-проверка-наличия-command-line-tools","Шаг 1: Проверка наличия Command Line Tools",[20,56,57,58,62],{},"Сначала определите, установлены ли у вас инструменты. Откройте ",[59,60,61],"strong",{},"Терминал"," (Finder → Программы → Утилиты → Терминал) и выполните:",[64,65,70],"pre",{"className":66,"code":67,"language":68,"meta":69,"style":69},"language-bash shiki shiki-themes github-light github-dark","xcode-select -p\n","bash","",[71,72,73],"code",{"__ignoreMap":69},[74,75,78,82],"span",{"class":76,"line":77},"line",1,[74,79,81],{"class":80},"sScJk","xcode-select",[74,83,85],{"class":84},"sj4cs"," -p\n",[28,87,88,102],{},[31,89,90,93,94,97,98,101],{},[59,91,92],{},"Если инструменты установлены",", команда выведет путь: ",[71,95,96],{},"/Applications/Xcode.app/Contents/Developer"," (если установлен Xcode) или ",[71,99,100],{},"/Library/Developer/CommandLineTools",".",[31,103,104,107,108,101],{},[59,105,106],{},"Если инструменты НЕ установлены",", вы увидите ошибку: ",[71,109,110],{},"xcode-select: error: tool 'xcode-select' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance",[20,112,113],{},"Также можно проверить наличие конкретных утилит, например Git:",[64,115,117],{"className":66,"code":116,"language":68,"meta":69,"style":69},"git --version\n",[71,118,119],{"__ignoreMap":69},[74,120,121,124],{"class":76,"line":77},[74,122,123],{"class":80},"git",[74,125,126],{"class":84}," --version\n",[20,128,129],{},"Если Git не найден, система обычно предложит установить CLT.",[51,131,133],{"id":132},"шаг-2-установка-через-системное-диалоговое-окно-самый-простой-способ","Шаг 2: Установка через системное диалоговое окно (самый простой способ)",[20,135,136],{},"Самый частый и удобный метод — реакция на попытку запуска отсутствующей команды.",[138,139,140,172,178,184,187],"ol",{},[31,141,142,143,146,147,159,160],{},"В ",[59,144,145],{},"Терминале"," введите любую команду из CLT, например:\n",[64,148,150],{"className":66,"code":149,"language":68,"meta":69,"style":69},"make --version\n",[71,151,152],{"__ignoreMap":69},[74,153,154,157],{"class":76,"line":77},[74,155,156],{"class":80},"make",[74,158,126],{"class":84},"\nили\n",[64,161,163],{"className":66,"code":162,"language":68,"meta":69,"style":69},"gcc --version\n",[71,164,165],{"__ignoreMap":69},[74,166,167,170],{"class":76,"line":77},[74,168,169],{"class":80},"gcc",[74,171,126],{"class":84},[31,173,174,175],{},"Появится стандартное диалоговое окно macOS с предложением:\n",[71,176,177],{},"\"Команда «make» требует установки инструментов командной строки. Хотите установить их сейчас?\"",[31,179,180,181,101],{},"Нажмите кнопку ",[59,182,183],{},"«Установить»",[31,185,186],{},"Примите лицензионное соглашение (EULA).",[31,188,189],{},"Дождитесь завершения загрузки и установки (может занять от 5 до 20 минут в зависимости от скорости сети).",[191,192,193],"blockquote",{},[20,194,195,196,199],{},"⚠️ ",[59,197,198],{},"Важно:"," Установка происходит от имени администратора. Вам может быть предложено ввести пароль пользователя с правами админа.",[51,201,203],{"id":202},"шаг-3-установка-через-командную-строку-для-автоматизации-или-apple-silicon","Шаг 3: Установка через командную строку (для автоматизации или Apple Silicon)",[20,205,206,207,101],{},"Если диалоговое окно не появляется (например, при удалённом подключении по SSH) или вы хотите автоматизировать процесс, используйте утилиту ",[71,208,209],{},"softwareupdate",[20,211,212],{},[59,213,214],{},"Для macOS на базе Apple Silicon (M1/M2/M3):",[64,216,218],{"className":66,"code":217,"language":68,"meta":69,"style":69},"softwareupdate --install-rosetta --agree-to-license\n",[71,219,220],{"__ignoreMap":69},[74,221,222,224,227],{"class":76,"line":77},[74,223,209],{"class":80},[74,225,226],{"class":84}," --install-rosetta",[74,228,229],{"class":84}," --agree-to-license\n",[20,231,232],{},"Эта команда установит Rosetta 2 (эмулятор x86) и, как правило, запустит установку CLT. Для чистого запуска CLT:",[64,234,236],{"className":66,"code":235,"language":68,"meta":69,"style":69},"sudo softwareupdate --install -a\n",[71,237,238],{"__ignoreMap":69},[74,239,240,243,247,250],{"class":76,"line":77},[74,241,242],{"class":80},"sudo",[74,244,246],{"class":245},"sZZnC"," softwareupdate",[74,248,249],{"class":84}," --install",[74,251,252],{"class":84}," -a\n",[20,254,255,256,259],{},"Эта команда проверит и установит ",[59,257,258],{},"все"," доступные системные обновления, включая «Command Line Tools for Xcode».",[20,261,262],{},[59,263,264],{},"Для Intel- Mac:",[64,266,267],{"className":66,"code":235,"language":68,"meta":69,"style":69},[71,268,269],{"__ignoreMap":69},[74,270,271,273,275,277],{"class":76,"line":77},[74,272,242],{"class":80},[74,274,246],{"class":245},[74,276,249],{"class":84},[74,278,252],{"class":84},[20,280,281],{},"После выполнения команды введите пароль администратора. Процесс загрузки и установки может быть долгим.",[51,283,285],{"id":284},"шаг-4-проверка-успешной-установки","Шаг 4: Проверка успешной установки",[20,287,288],{},"После завершения установки перезапустите Терминал (или откройте новое окно) и проверьте ключевые компоненты:",[64,290,292],{"className":66,"code":291,"language":68,"meta":69,"style":69},"# Проверка Git (система контроля версий)\ngit --version\n# Ожидаемый вывод: git version 2.xx.x\n\n# Проверка компилятора Clang\nclang --version\n# Ожидаемый вывод: Apple clang version 15.x.x (clang-1500.x.x)\n\n# Проверка утилиты Make\nmake --version\n# Ожидаемый вывод: GNU Make 3.x.x\n\n# Проверка пути к инструментам\nxcode-select -p\n# Ожидаемый вывод: /Library/Developer/CommandLineTools\n",[71,293,294,300,307,313,320,326,334,340,345,351,358,364,369,375,382],{"__ignoreMap":69},[74,295,296],{"class":76,"line":77},[74,297,299],{"class":298},"sJ8bj","# Проверка Git (система контроля версий)\n",[74,301,303,305],{"class":76,"line":302},2,[74,304,123],{"class":80},[74,306,126],{"class":84},[74,308,310],{"class":76,"line":309},3,[74,311,312],{"class":298},"# Ожидаемый вывод: git version 2.xx.x\n",[74,314,316],{"class":76,"line":315},4,[74,317,319],{"emptyLinePlaceholder":318},true,"\n",[74,321,323],{"class":76,"line":322},5,[74,324,325],{"class":298},"# Проверка компилятора Clang\n",[74,327,329,332],{"class":76,"line":328},6,[74,330,331],{"class":80},"clang",[74,333,126],{"class":84},[74,335,337],{"class":76,"line":336},7,[74,338,339],{"class":298},"# Ожидаемый вывод: Apple clang version 15.x.x (clang-1500.x.x)\n",[74,341,343],{"class":76,"line":342},8,[74,344,319],{"emptyLinePlaceholder":318},[74,346,348],{"class":76,"line":347},9,[74,349,350],{"class":298},"# Проверка утилиты Make\n",[74,352,354,356],{"class":76,"line":353},10,[74,355,156],{"class":80},[74,357,126],{"class":84},[74,359,361],{"class":76,"line":360},11,[74,362,363],{"class":298},"# Ожидаемый вывод: GNU Make 3.x.x\n",[74,365,367],{"class":76,"line":366},12,[74,368,319],{"emptyLinePlaceholder":318},[74,370,372],{"class":76,"line":371},13,[74,373,374],{"class":298},"# Проверка пути к инструментам\n",[74,376,378,380],{"class":76,"line":377},14,[74,379,81],{"class":80},[74,381,85],{"class":84},[74,383,385],{"class":76,"line":384},15,[74,386,387],{"class":298},"# Ожидаемый вывод: /Library/Developer/CommandLineTools\n",[20,389,390,391,394,395,398],{},"Если все команды возвращают версии, а ",[71,392,393],{},"xcode-select -p"," показывает путь к ",[71,396,397],{},"CommandLineTools"," — установка прошла успешно.",[51,400,402],{"id":401},"шаг-5-настройка-пути-path-и-выбор-активной-версии","Шаг 5: Настройка пути (PATH) и выбор активной версии",[20,404,405],{},"Иногда, особенно при наличии нескольких версий инструментов (например, после установки полного Xcode), система может использовать не те, которые вам нужны.",[138,407,408,436],{},[31,409,410,413,414,432,435],{},[59,411,412],{},"Явный выбор пути:"," Установите приоритет Command Line Tools, выполнив:",[64,415,417],{"className":66,"code":416,"language":68,"meta":69,"style":69},"sudo xcode-select --switch /Library/Developer/CommandLineTools\n",[71,418,419],{"__ignoreMap":69},[74,420,421,423,426,429],{"class":76,"line":77},[74,422,242],{"class":80},[74,424,425],{"class":245}," xcode-select",[74,427,428],{"class":84}," --switch",[74,430,431],{"class":245}," /Library/Developer/CommandLineTools\n",[433,434],"br",{},"Эта команда сообщает системе использовать именно минимальный набор CLT, а не полный Xcode (если он есть).",[31,437,438,441,442,445,446,460,462,463,466,467,470,471,474,475,501,503,504,507,508,511],{},[59,439,440],{},"Проверка переменной PATH:"," Убедитесь, что путь к инструментам находится в начале вашей переменной ",[71,443,444],{},"PATH",". Выполните:",[64,447,449],{"className":66,"code":448,"language":68,"meta":69,"style":69},"echo $PATH\n",[71,450,451],{"__ignoreMap":69},[74,452,453,456],{"class":76,"line":77},[74,454,455],{"class":84},"echo",[74,457,459],{"class":458},"sVt8B"," $PATH\n",[433,461],{},"В выводе должна присутствовать строка ",[71,464,465],{},"/Library/Developer/CommandLineTools/usr/bin"," (обычно она добавляется автоматически). Если её нет, добавьте в файл конфигурации вашей оболочки (",[71,468,469],{},"~/.zshrc"," для Zsh, ",[71,472,473],{},"~/.bash_profile"," для Bash):",[64,476,478],{"className":66,"code":477,"language":68,"meta":69,"style":69},"export PATH=\"/Library/Developer/CommandLineTools/usr/bin:$PATH\"\n",[71,479,480],{"__ignoreMap":69},[74,481,482,486,489,492,495,498],{"class":76,"line":77},[74,483,485],{"class":484},"szBVR","export",[74,487,488],{"class":458}," PATH",[74,490,491],{"class":484},"=",[74,493,494],{"class":245},"\"/Library/Developer/CommandLineTools/usr/bin:",[74,496,497],{"class":458},"$PATH",[74,499,500],{"class":245},"\"\n",[433,502],{},"После добавления выполните ",[71,505,506],{},"source ~/.zshrc"," (или ",[71,509,510],{},"source ~/.bash_profile","), чтобы применить изменения.",[513,514],"in-article-ad",{},[15,516,518],{"id":517},"проверка-результата","Проверка результата",[20,520,521],{},"Главный признак успеха — возможность запуска всех базовых утилит без ошибок. Выполните комплексную проверку:",[138,523,524,563,586],{},[31,525,526,527,530,531],{},"Создайте простой C-файл ",[71,528,529],{},"test.c",":\n",[64,532,536],{"className":533,"code":534,"language":535,"meta":69,"style":69},"language-c shiki shiki-themes github-light github-dark","#include \u003Cstdio.h>\nint main() {\n    printf(\"Hello from CLT!\\n\");\n    return 0;\n}\n","c",[71,537,538,543,548,553,558],{"__ignoreMap":69},[74,539,540],{"class":76,"line":77},[74,541,542],{},"#include \u003Cstdio.h>\n",[74,544,545],{"class":76,"line":302},[74,546,547],{},"int main() {\n",[74,549,550],{"class":76,"line":309},[74,551,552],{},"    printf(\"Hello from CLT!\\n\");\n",[74,554,555],{"class":76,"line":315},[74,556,557],{},"    return 0;\n",[74,559,560],{"class":76,"line":322},[74,561,562],{},"}\n",[31,564,565,566,530,568],{},"Скомпилируйте его с помощью ",[71,567,331],{},[64,569,571],{"className":66,"code":570,"language":68,"meta":69,"style":69},"clang test.c -o test\n",[71,572,573],{"__ignoreMap":69},[74,574,575,577,580,583],{"class":76,"line":77},[74,576,331],{"class":80},[74,578,579],{"class":245}," test.c",[74,581,582],{"class":84}," -o",[74,584,585],{"class":245}," test\n",[31,587,588,589,598,599],{},"Запустите скомпилированный файл:\n",[64,590,592],{"className":66,"code":591,"language":68,"meta":69,"style":69},"./test\n",[71,593,594],{"__ignoreMap":69},[74,595,596],{"class":76,"line":77},[74,597,591],{"class":80},"\nВывод: ",[71,600,601],{},"Hello from CLT!",[20,603,604],{},"Если компиляция и запуск прошли успешно — ваша среда разработки готова к работе.",[15,606,608],{"id":607},"возможные-проблемы","Возможные проблемы",[28,610,611,638,660,683,707],{},[31,612,613,620],{},[59,614,615,616,619],{},"Ошибка ",[71,617,618],{},"xcode-select: error: tool 'xcode-select' requires Xcode..."," после установки.",[28,621,622,628],{},[31,623,624,627],{},[59,625,626],{},"Причина:"," Путь не сбросился автоматически.",[31,629,630,633,634,637],{},[59,631,632],{},"Решение:"," Выполните ",[71,635,636],{},"sudo xcode-select --reset"," или явный выбор как в Шаге 5.",[31,639,640,645],{},[59,641,642,643,101],{},"Ошибка доступа (permission denied) при запуске ",[71,644,209],{},[28,646,647,652],{},[31,648,649,651],{},[59,650,626],{}," Не хватает прав суперпользователя.",[31,653,654,656,657,659],{},[59,655,632],{}," Используйте команду с ",[71,658,242],{}," и введите пароль администратора.",[31,661,662,667],{},[59,663,664,665,101],{},"Установка зависла или не началась через ",[71,666,209],{},[28,668,669,674],{},[31,670,671,673],{},[59,672,626],{}," Конфликт с активным прокси, проблемы с сертификатами Apple или недоступен сервер обновлений.",[31,675,676,678,679,682],{},[59,677,632],{}," Попробуйте установку через диалоговое окно (Шаг 2). Если не помогает, проверьте подключение к ",[71,680,681],{},"developer.apple.com"," и временно отключите корпоративный прокси.",[31,684,685,688],{},[59,686,687],{},"Команды работают, но Homebrew жалуется на отсутствие CLT.",[28,689,690,699],{},[31,691,692,694,695,698],{},[59,693,626],{}," Homebrew проверяет наличие не только бинарников, но и заголовочных файлов (",[71,696,697],{},"/Library/Developer/CommandLineTools/SDKs",").",[31,700,701,703,704,101],{},[59,702,632],{}," Убедитесь, что установлен полный набор. Переустановите CLT через диалоговое окно. Если проблема остаётся, проверьте наличие SDK: ",[71,705,706],{},"ls /Library/Developer/CommandLineTools/SDKs",[31,708,709,712],{},[59,710,711],{},"После обновления macOS CLT перестали работать.",[28,713,714,719],{},[31,715,716,718],{},[59,717,626],{}," Обновление ОС часто делает старые инструменты несовместимыми.",[31,720,721,723,724,727],{},[59,722,632],{}," Удалите старые инструменты: ",[71,725,726],{},"sudo rm -rf /Library/Developer/CommandLineTools"," и установите заново, следуя Шагу 2 или 3.",[729,730,731],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":69,"searchDepth":302,"depth":302,"links":733},[734,735,736,743,744],{"id":17,"depth":302,"text":18},{"id":25,"depth":302,"text":26},{"id":48,"depth":302,"text":49,"children":737},[738,739,740,741,742],{"id":53,"depth":309,"text":54},{"id":132,"depth":309,"text":133},{"id":202,"depth":309,"text":203},{"id":284,"depth":309,"text":285},{"id":401,"depth":309,"text":402},{"id":517,"depth":302,"text":518},{"id":607,"depth":302,"text":608},null,"2026-02-16 14:08:10","Полное руководство по установке Xcode Command Line Tools на Mac. Пошаговая инструкция для работы с git, make, компиляторами и другими утилитами в терминале.","easy",false,"10-15 мин","md",[753,756,759,762],{"question":754,"answer":755},"Зачем мне Command Line Tools, если у меня есть Homebrew?","Command Line Tools — это официальный набор от Apple, который включает базовые компиляторы (clang), утилиты (git, make, svn) и заголовочные файлы. Homebrew часто требует их наличия для сборки некоторых пакетов из исходников.",{"question":757,"answer":758},"Можно ли установить Command Line Tools без Xcode?","Да, это и есть основное назначение Xcode Command Line Tools — минимальный набор для разработки без полной IDE Xcode, которая весит несколько гигабайт.",{"question":760,"answer":761},"Почему после установки команда git всё равно не работает?","Скорее всего, пути (PATH) не обновились. Закройте и снова откройте терминал или выполните `source ~/.zshrc` (если используете zsh). Проверьте, что инструменты выбраны через `xcode-select -p`.",{"question":763,"answer":764},"Нужно ли обновлять Command Line Tools отдельно от macOS?","Да, они обновляются через системные обновления или `softwareupdate --install` отдельно от основной ОС. Рекомендуется держать их актуальными.",[766,769,772,775,778],{"name":767,"text":768},"Проверка наличия Command Line Tools","Откройте Терминал и выполните команду `xcode-select -p`. Если инструменты не установлены, вы увидите ошибку.",{"name":770,"text":771},"Установка через системное диалоговое окно","Выполните в терминале любую команду из набора, например `git --version`. Система предложит установить инструменты. Нажмите «Установить».",{"name":773,"text":774},"Установка через командную строку (автоматизированная)","Используйте `softwareupdate --install-rosetta --agree-to-license` для Apple Silicon или `softwareupdate --install -a` для всех доступных обновлений, включая CLT.",{"name":776,"text":777},"Проверка успешной установки","Выполните `git --version`, `make --version`, `clang --version`. Все команды должны вернуть версии, а не ошибки.",{"name":779,"text":780},"Настройка пути (PATH) и выбор активной версии","Убедитесь, что путь `/Library/Developer/CommandLineTools/usr/bin` добавлен в переменную PATH. Используйте `sudo xcode-select --switch /Library/Developer/CommandLineTools` для явного выбора.","PT15M",[783,784,785,786,787,788,789,790],"command line tools macos","установить xcode command line tools","git не найден mac","как установить make на mac","терминал mac компилятор","xcode-select ошибка","brew vs command line tools","macOS разработка терминал","ru_RU",{},"/guides/macos/command-line-tools","macos",[796,797,798],"/guides/macos/homebrew-installation","/guides/macos/git-basics","/errors/macos/xcode-select-errors","Гайды macOS",{"title":5,"description":747},"guides/macos/command-line-tools","В этом гайде вы узнаете, как установить, обновить и настроить Xcode Command Line Tools на macOS для работы с git, компиляторами и другими утилитами разработки.",[804,805,806,807,808,123,809,810],"macOS","terminal","development","xcode","CLI","командная строка","инструменты разработчика","guide","fIuan6roxJaWFTe7DxCDjqu9oYnCDuHWZyDehxwr4kI",{"data":814,"body":815},{},{"type":816,"children":817},"root",[818],{"type":819,"tag":20,"props":820,"children":821},"element",{},[822],{"type":823,"value":755},"text",{"data":825,"body":826},{},{"type":816,"children":827},[828],{"type":819,"tag":20,"props":829,"children":830},{},[831],{"type":823,"value":758},{"data":833,"body":834},{},{"type":816,"children":835},[836],{"type":819,"tag":20,"props":837,"children":838},{},[839,841,846,848,853],{"type":823,"value":840},"Скорее всего, пути (PATH) не обновились. Закройте и снова откройте терминал или выполните ",{"type":819,"tag":71,"props":842,"children":844},{"className":843},[],[845],{"type":823,"value":506},{"type":823,"value":847}," (если используете zsh). Проверьте, что инструменты выбраны через ",{"type":819,"tag":71,"props":849,"children":851},{"className":850},[],[852],{"type":823,"value":393},{"type":823,"value":101},{"data":855,"body":856},{},{"type":816,"children":857},[858],{"type":819,"tag":20,"props":859,"children":860},{},[861,863,869],{"type":823,"value":862},"Да, они обновляются через системные обновления или ",{"type":819,"tag":71,"props":864,"children":866},{"className":865},[],[867],{"type":823,"value":868},"softwareupdate --install",{"type":823,"value":870}," отдельно от основной ОС. Рекомендуется держать их актуальными.",{"data":872,"body":873},{},{"type":816,"children":874},[875],{"type":819,"tag":20,"props":876,"children":877},{},[878,880,885],{"type":823,"value":879},"Откройте Терминал и выполните команду ",{"type":819,"tag":71,"props":881,"children":883},{"className":882},[],[884],{"type":823,"value":393},{"type":823,"value":886},". Если инструменты не установлены, вы увидите ошибку.",{"data":888,"body":889},{},{"type":816,"children":890},[891],{"type":819,"tag":20,"props":892,"children":893},{},[894,896,902],{"type":823,"value":895},"Выполните в терминале любую команду из набора, например ",{"type":819,"tag":71,"props":897,"children":899},{"className":898},[],[900],{"type":823,"value":901},"git --version",{"type":823,"value":903},". Система предложит установить инструменты. Нажмите «Установить».",{"data":905,"body":906},{},{"type":816,"children":907},[908],{"type":819,"tag":20,"props":909,"children":910},{},[911,913,919,921,927],{"type":823,"value":912},"Используйте ",{"type":819,"tag":71,"props":914,"children":916},{"className":915},[],[917],{"type":823,"value":918},"softwareupdate --install-rosetta --agree-to-license",{"type":823,"value":920}," для Apple Silicon или ",{"type":819,"tag":71,"props":922,"children":924},{"className":923},[],[925],{"type":823,"value":926},"softwareupdate --install -a",{"type":823,"value":928}," для всех доступных обновлений, включая CLT.",{"data":930,"body":931},{},{"type":816,"children":932},[933],{"type":819,"tag":20,"props":934,"children":935},{},[936,938,943,945,951,952,958],{"type":823,"value":937},"Выполните ",{"type":819,"tag":71,"props":939,"children":941},{"className":940},[],[942],{"type":823,"value":901},{"type":823,"value":944},", ",{"type":819,"tag":71,"props":946,"children":948},{"className":947},[],[949],{"type":823,"value":950},"make --version",{"type":823,"value":944},{"type":819,"tag":71,"props":953,"children":955},{"className":954},[],[956],{"type":823,"value":957},"clang --version",{"type":823,"value":959},". Все команды должны вернуть версии, а не ошибки.",{"data":961,"body":962},{},{"type":816,"children":963},[964],{"type":819,"tag":20,"props":965,"children":966},{},[967,969,974,976,982],{"type":823,"value":968},"Убедитесь, что путь ",{"type":819,"tag":71,"props":970,"children":972},{"className":971},[],[973],{"type":823,"value":465},{"type":823,"value":975}," добавлен в переменную PATH. Используйте ",{"type":819,"tag":71,"props":977,"children":979},{"className":978},[],[980],{"type":823,"value":981},"sudo xcode-select --switch /Library/Developer/CommandLineTools",{"type":823,"value":983}," для явного выбора.",[985],{"id":986,"title":987,"appliesTo":988,"author":10,"body":991,"canonical":745,"code":745,"createdAt":1775,"description":1776,"difficulty":748,"draft":749,"estimatedTime":750,"extension":751,"faq":1777,"howToSteps":1790,"howToTotalTime":781,"image":745,"keywords":1809,"locale":791,"meta":1820,"navigation":318,"path":797,"platform":794,"related":1821,"section":799,"seo":1825,"severity":745,"stem":1826,"summary":1827,"tags":1828,"twitterCreator":745,"twitterSite":745,"type":811,"updatedAt":1775,"__hash__":1832},"content_ru/guides/macos/git-basics.md","Git на macOS: установка и базовые команды для начинающих",[989,990],"Git 2.40+","macOS 12+",{"type":12,"value":992,"toc":1763},[993,995,998,1009,1012,1014,1017,1073,1076,1080,1085,1143,1157,1159,1163,1166,1243,1247,1250,1374,1378,1381,1437,1441,1447,1505,1509,1523,1595,1597,1599,1602,1637,1639,1760],[15,994,18],{"id":17},[20,996,997],{},"Git — это распределённая система контроля версий, которая отслеживает изменения в файлах, преимущественно исходном коде. Она позволяет:",[28,999,1000,1003,1006],{},[31,1001,1002],{},"Возвращаться к любой предыдущей версии проекта.",[31,1004,1005],{},"Работать параллельно над разными задачами в отдельных ветках.",[31,1007,1008],{},"Сотрудничать с другими разработчиками, объединяя изменения.",[20,1010,1011],{},"Это руководство — ваш первый шаг. Вы установите Git, выполните базовую настройку и совершите первые операции: создадите репозиторий, сделаете коммит и клонируете проект с GitHub. Всё это — в терминале macOS.",[15,1013,26],{"id":25},[20,1015,1016],{},"Перед началом убедитесь, что у вас есть:",[138,1018,1019,1024,1032,1063],{},[31,1020,1021,1023],{},[59,1022,804],{}," (версия 12 Monterey или новее).",[31,1025,1026,1028,1029,698],{},[59,1027,61],{}," (встроен в macOS, находится в ",[71,1030,1031],{},"/Applications/Utilities/",[31,1033,1034,1037,1038],{},[59,1035,1036],{},"Homebrew"," (рекомендуется для установки Git). Если его нет, установите, выполнив в терминале:\n",[64,1039,1041],{"className":66,"code":1040,"language":68,"meta":69,"style":69},"/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n",[71,1042,1043],{"__ignoreMap":69},[74,1044,1045,1048,1051,1054,1057,1060],{"class":76,"line":77},[74,1046,1047],{"class":80},"/bin/bash",[74,1049,1050],{"class":84}," -c",[74,1052,1053],{"class":245}," \"$(",[74,1055,1056],{"class":80},"curl",[74,1058,1059],{"class":84}," -fsSL",[74,1061,1062],{"class":245}," https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n",[31,1064,1065,1066,944,1069,1072],{},"Аккаунт на ",[59,1067,1068],{},"GitHub",[59,1070,1071],{},"GitLab"," или другом Git-хостинге (для шага с клонированием). Его можно создать позже.",[1074,1075],"hr",{},[15,1077,1079],{"id":1078},"шаг-1-установите-git","Шаг 1: Установите Git",[20,1081,1082,1083,101],{},"Самый простой способ установки Git на macOS — через ",[59,1084,1036],{},[138,1086,1087,1092,1108,1126],{},[31,1088,1089,1090,101],{},"Откройте ",[59,1091,61],{},[31,1093,1094,1095],{},"Обновите список формул Homebrew:\n",[64,1096,1098],{"className":66,"code":1097,"language":68,"meta":69,"style":69},"brew update\n",[71,1099,1100],{"__ignoreMap":69},[74,1101,1102,1105],{"class":76,"line":77},[74,1103,1104],{"class":80},"brew",[74,1106,1107],{"class":245}," update\n",[31,1109,1110,1111],{},"Установите Git:\n",[64,1112,1114],{"className":66,"code":1113,"language":68,"meta":69,"style":69},"brew install git\n",[71,1115,1116],{"__ignoreMap":69},[74,1117,1118,1120,1123],{"class":76,"line":77},[74,1119,1104],{"class":80},[74,1121,1122],{"class":245}," install",[74,1124,1125],{"class":245}," git\n",[31,1127,1128,1129,1139,1140,101],{},"Проверьте установку, выполнив:\n",[64,1130,1131],{"className":66,"code":116,"language":68,"meta":69,"style":69},[71,1132,1133],{"__ignoreMap":69},[74,1134,1135,1137],{"class":76,"line":77},[74,1136,123],{"class":80},[74,1138,126],{"class":84},"\nВывод должен быть примерно таким: ",[71,1141,1142],{},"git version 2.42.0",[20,1144,1145,1148,1149,1156],{},[59,1146,1147],{},"Альтернатива:"," Скачайте установщик с ",[1150,1151,1155],"a",{"href":1152,"rel":1153},"https://git-scm.com/download/mac",[1154],"nofollow","официального сайта Git"," и запустите его, следуя инструкциям.",[513,1158],{},[15,1160,1162],{"id":1161},"шаг-2-настройте-имя-пользователя-и-email","Шаг 2: Настройте имя пользователя и email",[20,1164,1165],{},"Git прикрепляет ваше имя и email к каждому коммиту. Это важно для отслеживания, кто и что изменил.",[138,1167,1168,1196,1218],{},[31,1169,1170,1171,1192,1193,101],{},"В терминале выполните команду, подставив свои данные:\n",[64,1172,1174],{"className":66,"code":1173,"language":68,"meta":69,"style":69},"git config --global user.name \"Ваше Имя Фамилия\"\n",[71,1175,1176],{"__ignoreMap":69},[74,1177,1178,1180,1183,1186,1189],{"class":76,"line":77},[74,1179,123],{"class":80},[74,1181,1182],{"class":245}," config",[74,1184,1185],{"class":84}," --global",[74,1187,1188],{"class":245}," user.name",[74,1190,1191],{"class":245}," \"Ваше Имя Фамилия\"\n","\nНапример: ",[71,1194,1195],{},"git config --global user.name \"Иван Петров\"",[31,1197,1198,1199],{},"Укажите email (лучше тот, который привязан к вашему аккаунту на GitHub):\n",[64,1200,1202],{"className":66,"code":1201,"language":68,"meta":69,"style":69},"git config --global user.email \"ваш.email@example.com\"\n",[71,1203,1204],{"__ignoreMap":69},[74,1205,1206,1208,1210,1212,1215],{"class":76,"line":77},[74,1207,123],{"class":80},[74,1209,1182],{"class":245},[74,1211,1185],{"class":84},[74,1213,1214],{"class":245}," user.email",[74,1216,1217],{"class":245}," \"ваш.email@example.com\"\n",[31,1219,1220,1221,1235,1236,1239,1240,101],{},"Проверьте конфигурацию:\n",[64,1222,1224],{"className":66,"code":1223,"language":68,"meta":69,"style":69},"git config --list\n",[71,1225,1226],{"__ignoreMap":69},[74,1227,1228,1230,1232],{"class":76,"line":77},[74,1229,123],{"class":80},[74,1231,1182],{"class":245},[74,1233,1234],{"class":84}," --list\n","\nВ выводе найдите строки ",[71,1237,1238],{},"user.name"," и ",[71,1241,1242],{},"user.email",[15,1244,1246],{"id":1245},"шаг-3-создайте-новый-локальный-репозиторий","Шаг 3: Создайте новый локальный репозиторий",[20,1248,1249],{},"Теперь создадим папку проекта и инициализируем в ней Git.",[138,1251,1252,1275,1294,1319,1344],{},[31,1253,1254,1255],{},"Создайте новую папку для проекта и перейдите в неё:\n",[64,1256,1258],{"className":66,"code":1257,"language":68,"meta":69,"style":69},"mkdir ~/Projects/my-first-repo\ncd ~/Projects/my-first-repo\n",[71,1259,1260,1268],{"__ignoreMap":69},[74,1261,1262,1265],{"class":76,"line":77},[74,1263,1264],{"class":80},"mkdir",[74,1266,1267],{"class":245}," ~/Projects/my-first-repo\n",[74,1269,1270,1273],{"class":76,"line":302},[74,1271,1272],{"class":84},"cd",[74,1274,1267],{"class":245},[31,1276,1277,1278,1290,1291,101],{},"Инициализируйте пустой репозиторий Git:\n",[64,1279,1281],{"className":66,"code":1280,"language":68,"meta":69,"style":69},"git init\n",[71,1282,1283],{"__ignoreMap":69},[74,1284,1285,1287],{"class":76,"line":77},[74,1286,123],{"class":80},[74,1288,1289],{"class":245}," init\n","\nТерминал ответит: ",[71,1292,1293],{},"Initialized empty Git repository in /Users/ваше_имя/Projects/my-first-repo/.git/",[31,1295,1296,1297,1300,1301],{},"Создайте простой текстовый файл (например, ",[71,1298,1299],{},"README.md","):\n",[64,1302,1304],{"className":66,"code":1303,"language":68,"meta":69,"style":69},"echo \"# Мой первый проект\" > README.md\n",[71,1305,1306],{"__ignoreMap":69},[74,1307,1308,1310,1313,1316],{"class":76,"line":77},[74,1309,455],{"class":84},[74,1311,1312],{"class":245}," \"# Мой первый проект\"",[74,1314,1315],{"class":484}," >",[74,1317,1318],{"class":245}," README.md\n",[31,1320,1321,1322,1325,1326,1340,1341,101],{},"Добавьте файл в ",[59,1323,1324],{},"staging area"," (индекс) — это подготовка файла к коммиту:\n",[64,1327,1329],{"className":66,"code":1328,"language":68,"meta":69,"style":69},"git add README.md\n",[71,1330,1331],{"__ignoreMap":69},[74,1332,1333,1335,1338],{"class":76,"line":77},[74,1334,123],{"class":80},[74,1336,1337],{"class":245}," add",[74,1339,1318],{"class":245},"\nЧтобы добавить все файлы в текущей папке, используйте ",[71,1342,1343],{},"git add .",[31,1345,1346,1347,1350,1351,1369,1370,1373],{},"Создайте первый ",[59,1348,1349],{},"коммит"," — постоянную запись изменений:\n",[64,1352,1354],{"className":66,"code":1353,"language":68,"meta":69,"style":69},"git commit -m \"Добавил README.md с описанием проекта\"\n",[71,1355,1356],{"__ignoreMap":69},[74,1357,1358,1360,1363,1366],{"class":76,"line":77},[74,1359,123],{"class":80},[74,1361,1362],{"class":245}," commit",[74,1364,1365],{"class":84}," -m",[74,1367,1368],{"class":245}," \"Добавил README.md с описанием проекта\"\n","\nФлаг ",[71,1371,1372],{},"-m"," позволяет сразу указать сообщение коммита.",[15,1375,1377],{"id":1376},"шаг-4-склонируйте-существующий-удалённый-репозиторий","Шаг 4: Склонируйте существующий удалённый репозиторий",[20,1379,1380],{},"Часто вы начинаете работу не с пустой папки, а с уже существующего проекта на GitHub.",[138,1382,1383,1389,1395,1410],{},[31,1384,1385,1386,698],{},"Найдите нужный репозиторий на GitHub (например, ",[71,1387,1388],{},"https://github.com/torvalds/linux",[31,1390,180,1391,1394],{},[59,1392,1393],{},"Code"," и скопируйте URL (рекомендуется HTTPS).",[31,1396,1397,1398],{},"В терминале перейдите в папку, где хотите разместить проект:\n",[64,1399,1401],{"className":66,"code":1400,"language":68,"meta":69,"style":69},"cd ~/Projects\n",[71,1402,1403],{"__ignoreMap":69},[74,1404,1405,1407],{"class":76,"line":77},[74,1406,1272],{"class":84},[74,1408,1409],{"class":245}," ~/Projects\n",[31,1411,1412,1413,1416,1417,1432,1433,1436],{},"Выполните команду ",[71,1414,1415],{},"git clone"," с скопированным URL:\n",[64,1418,1420],{"className":66,"code":1419,"language":68,"meta":69,"style":69},"git clone https://github.com/torvalds/linux.git\n",[71,1421,1422],{"__ignoreMap":69},[74,1423,1424,1426,1429],{"class":76,"line":77},[74,1425,123],{"class":80},[74,1427,1428],{"class":245}," clone",[74,1430,1431],{"class":245}," https://github.com/torvalds/linux.git\n","\nGit создаст папку ",[71,1434,1435],{},"linux"," и загрузит в неё весь проект со всей историей коммитов.",[15,1438,1440],{"id":1439},"шаг-5-просмотрите-историю-изменений","Шаг 5: Просмотрите историю изменений",[20,1442,1443,1444,101],{},"Увидеть, что и когда менялось, помогает команда ",[71,1445,1446],{},"git log",[138,1448,1449,1452],{},[31,1450,1451],{},"Перейдите в любой инициализированный или клонированный репозиторий.",[31,1453,1454,1455,1467,1469,1470,1499,1501,1502,101],{},"Выполните:",[64,1456,1458],{"className":66,"code":1457,"language":68,"meta":69,"style":69},"git log\n",[71,1459,1460],{"__ignoreMap":69},[74,1461,1462,1464],{"class":76,"line":77},[74,1463,123],{"class":80},[74,1465,1466],{"class":245}," log\n",[433,1468],{},"Вы увидите список коммитов в обратном хронологическом порядке (новые сверху). Каждый коммит показывает:",[28,1471,1472,1481,1487,1493],{},[31,1473,1474,1477,1478,698],{},[59,1475,1476],{},"commit"," (уникальный хэш, например ",[71,1479,1480],{},"a1b2c3d",[31,1482,1483,1486],{},[59,1484,1485],{},"Author"," (автор, из вашей конфигурации).",[31,1488,1489,1492],{},[59,1490,1491],{},"Date"," (дата и время).",[31,1494,1495,1498],{},[59,1496,1497],{},"Message"," (ваше сообщение коммита).",[433,1500],{},"Для краткого вывода (одна строка на коммит) используйте ",[71,1503,1504],{},"git log --oneline",[15,1506,1508],{"id":1507},"шаг-6-создайте-и-переключитесь-на-новую-ветку","Шаг 6: Создайте и переключитесь на новую ветку",[20,1510,1511,1512,1515,1516,1519,1520,698],{},"Ветки (",[71,1513,1514],{},"branches",") позволяют изолировать разработку новых функций или исправлений от основной кодовой базы (обычно ветка ",[71,1517,1518],{},"main"," или ",[71,1521,1522],{},"master",[138,1524,1525,1547,1579],{},[31,1526,1527,1528,530,1530,1542,1543,1546],{},"Убедитесь, что вы находитесь в ветке ",[71,1529,1518],{},[64,1531,1533],{"className":66,"code":1532,"language":68,"meta":69,"style":69},"git branch\n",[71,1534,1535],{"__ignoreMap":69},[74,1536,1537,1539],{"class":76,"line":77},[74,1538,123],{"class":80},[74,1540,1541],{"class":245}," branch\n","\nЗвёздочка ",[71,1544,1545],{},"*"," покажет текущую ветку.",[31,1548,1549,1550,1553,1554,1572,1573,1239,1576,101],{},"Создайте новую ветку с именем ",[71,1551,1552],{},"feature-add-login"," и сразу переключитесь на неё:\n",[64,1555,1557],{"className":66,"code":1556,"language":68,"meta":69,"style":69},"git checkout -b feature-add-login\n",[71,1558,1559],{"__ignoreMap":69},[74,1560,1561,1563,1566,1569],{"class":76,"line":77},[74,1562,123],{"class":80},[74,1564,1565],{"class":245}," checkout",[74,1567,1568],{"class":84}," -b",[74,1570,1571],{"class":245}," feature-add-login\n","\nИли в двух шагах: ",[71,1574,1575],{},"git branch feature-add-login",[71,1577,1578],{},"git checkout feature-add-login",[31,1580,1581,1582,1584,1585,1588,1589,1592,1593,101],{},"Теперь все новые коммиты будут попадать в эту ветку, не затрагивая ",[71,1583,1518],{},". После завершения работы ветку можно ",[59,1586,1587],{},"слить"," (",[71,1590,1591],{},"merge",") обратно в ",[71,1594,1518],{},[1074,1596],{},[15,1598,518],{"id":517},[20,1600,1601],{},"Вы успешно освоили основы, если:",[138,1603,1604,1610,1620,1628,1631],{},[31,1605,1606,1607,1609],{},"Команда ",[71,1608,901],{}," показывает установленную версию Git.",[31,1611,1612,1615,1616,1239,1618,101],{},[71,1613,1614],{},"git config --list"," содержит ваши ",[71,1617,1238],{},[71,1619,1242],{},[31,1621,1622,1623,1625,1626,698],{},"Вы успешно создали локальный репозиторий и сделали коммит (файл ",[71,1624,1299],{}," появился в истории ",[71,1627,1446],{},[31,1629,1630],{},"Вы склонировали удалённый репозиторий и видите его файлы в папке.",[31,1632,1606,1633,1636],{},[71,1634,1635],{},"git branch"," показывает список веток, включая созданную вами.",[15,1638,608],{"id":607},[1640,1641,1642,1659],"table",{},[1643,1644,1645],"thead",{},[1646,1647,1648,1653,1656],"tr",{},[1649,1650,1652],"th",{"align":1651},"left","Проблема",[1649,1654,1655],{"align":1651},"Возможная причина",[1649,1657,1658],{"align":1651},"Решение",[1660,1661,1662,1678,1705,1735],"tbody",{},[1646,1663,1664,1670,1675],{},[1665,1666,1667],"td",{"align":1651},[71,1668,1669],{},"git: command not found",[1665,1671,1672,1673,101],{"align":1651},"Git не установлен или не добавлен в ",[71,1674,444],{},[1665,1676,1677],{"align":1651},"Переустановите Git через Homebrew. Убедитесь, что установка прошла без ошибок. Перезапустите Терминал.",[1646,1679,1680,1685,1692],{},[1665,1681,1682],{"align":1651},[71,1683,1684],{},"fatal: not a git repository",[1665,1686,1687,1688,1691],{"align":1651},"Команда Git (например, ",[71,1689,1690],{},"git commit",") выполняется в папке, которая не является репозиторием.",[1665,1693,1694,1695,1519,1698,1700,1701,1704],{"align":1651},"Убедитесь, что вы находитесь внутри папки, где был выполнен ",[71,1696,1697],{},"git init",[71,1699,1415],{},". Используйте ",[71,1702,1703],{},"pwd"," для проверки текущего пути.",[1646,1706,1707,1715,1718],{},[1665,1708,615,1709,1712,1713],{"align":1651},[71,1710,1711],{},"permission denied"," при ",[71,1714,1415],{},[1665,1716,1717],{"align":1651},"Нет прав на запись в целевую директорию или проблема с SSH-ключами.",[1665,1719,1720,1721,1724,1725,698,1728,1730,1731,1734],{"align":1651},"1. Выполните ",[71,1722,1723],{},"clone"," в папку, где у вас есть права (например, ",[71,1726,1727],{},"~/Projects",[433,1729],{},"2. Для SSH-доступа убедитесь, что ваш публичный ключ (",[71,1732,1733],{},"~/.ssh/id_rsa.pub",") добавлен в настройки аккаунта на GitHub.",[1646,1736,1737,1743,1746],{},[1665,1738,1739,1740],{"align":1651},"Не вижу изменений после ",[71,1741,1742],{},"git add",[1665,1744,1745],{"align":1651},"Файл не был изменён или добавлен не тот файл.",[1665,1747,1748,1749,1752,1753,1756,1757,698],{"align":1651},"Проверьте статус репозитория: ",[71,1750,1751],{},"git status",". Он покажет, какие файлы изменены, готовы к коммиту (",[71,1754,1755],{},"Changes to be committed",") или неотслеживаемые (",[71,1758,1759],{},"Untracked files",[729,1761,1762],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":69,"searchDepth":302,"depth":302,"links":1764},[1765,1766,1767,1768,1769,1770,1771,1772,1773,1774],{"id":17,"depth":302,"text":18},{"id":25,"depth":302,"text":26},{"id":1078,"depth":302,"text":1079},{"id":1161,"depth":302,"text":1162},{"id":1245,"depth":302,"text":1246},{"id":1376,"depth":302,"text":1377},{"id":1439,"depth":302,"text":1440},{"id":1507,"depth":302,"text":1508},{"id":517,"depth":302,"text":518},{"id":607,"depth":302,"text":608},"2026-02-16 19:47:04","Освойте Git на macOS с нуля! Пошаговая инструкция по установке, настройке и первым командам. Управляйте версиями кода эффективно уже через 10 минут.",[1778,1781,1784,1787],{"question":1779,"answer":1780},"В чем разница между git init и git clone?","`git init` создаёт новый пустой репозиторий в текущей папке. `git clone` копирует существующий удалённый репозиторий (например, с GitHub) на ваш компьютер.",{"question":1782,"answer":1783},"Как исправить ошибку 'permission denied' при клонировании?","Ошибка обычно связана с правами доступа к папке или SSH-ключами. Проверьте, что у вас есть права на запись в целевую директорию и что ваш SSH-ключ добавлен в аккаунт на GitHub/GitLab.",{"question":1785,"answer":1786},"Нужен ли аккаунт GitHub для использования Git?","Нет. Git — это локальная система контроля версий. Аккаунт на GitHub/GitLab нужен только для работы с удалёнными репозиториями и коллаборации.",{"question":1788,"answer":1789},"Как отменить последний коммит, но сохранить изменения в файлах?","Используйте команду `git reset --soft HEAD~1`. Это переместит HEAD назад, оставив все изменения из последнего коммита в индексе (готовыми к новому коммиту).",[1791,1794,1797,1800,1803,1806],{"name":1792,"text":1793},"Установите Git","Установите Git с помощью Homebrew или установщика с официального сайта. Homebrew — рекомендуемый способ для macOS.",{"name":1795,"text":1796},"Настройте имя пользователя и email","Задайте ваше имя и email, которые будут привязаны к каждому коммиту. Эти данные публичны в открытых репозиториях.",{"name":1798,"text":1799},"Создайте новый локальный репозиторий","Инициализируйте Git в папке с проектом, добавьте файлы и создайте первый коммит с сообщением о изменении.",{"name":1801,"text":1802},"Склонируйте существующий удалённый репозиторий","Скопируйте проект с GitHub или другого сервера на свой компьютер, используя HTTPS или SSH URL.",{"name":1804,"text":1805},"Просмотрите историю изменений","Используйте `git log` для просмотра списка коммитов с их хэшами, авторами, датами и сообщениями.",{"name":1807,"text":1808},"Создайте и переключитесь на новую ветку","Создайте отдельную ветку для разработки новой функции или исправления ошибки, чтобы не затрагивать основную ветку `main`.",[1810,1811,1812,1813,1814,1815,1816,1817,1818,1819],"git macos установка","гит команды для начинающих","как создать репозиторий git","git commit пример","git clone macos","базовые команды git","работа с git в терминале","git init что это","версионный контроль git","git macos tutorial",{},[1822,1823,1824],"/guides/macos/homebrew-basics","/guides/git/branching-workflow","/errors/git/permission-denied",{"title":987,"description":1776},"guides/macos/git-basics","Это руководство поможет новичкам освоить Git на macOS: от установки до первых коммитов. Вы научитесь создавать репозитории, добавлять файлы и просматривать историю изменений.",[123,1829,794,805,1830,1831],"версионный контроль","basics","начало работы","EayKAfFWOkREh4pLnOku_aqnByWQQGtj878ngIhWnmA"]