Git
Плагін Git показує стан репозиторію Git просто в панелі файлів — без окремої програми й без термінала. Він
додає два стовпці, підменю Git, закріплену панель для підготовки та фіксації змін і вікна для історії,
blame, гілок, конфліктів і перебазування. Він працює через git, уже встановлений на вашому Mac. Це плагін,
тож його можна вимкнути або вилучити в Конфігурація ▸ Плагіни….
Що він додає¶
- Два стовпці у списку файлів — Стан Git і Гілка. Для кожного файлу показано піктограму та коротке слово стану (Змінено, Додано, Вилучено, Не відстежується, Перейменовано, Скопійовано, Конфлікт, Ігнорується, Тип змінено), із позначкою (підготовлено), якщо зміна вже в індексі; стовпець Гілка показує гілку, на якій стоїть репозиторій цього файлу. Стовпці вмикаються в Конфігурація ▸ Стовпці… (див. Режими перегляду та сортування).
- Меню Git — у Команди ▸ Git і в контекстному меню файлу.
(Рисунок: «Стан Git» називає гілку й кожну зміну в робочому дереві.)
Панель: підготувати, зафіксувати, синхронізувати¶
Команди ▸ Git ▸ Панель закріплює подання, що ділить робоче дерево на підготовлене, змінене та не відстежуване. Виберіть файли й скористайтеся Підготувати, Зняти підготовку або Відкинути…, введіть повідомлення й натисніть Зафіксувати — з Виправити зміна складається в попередню фіксацію. Отримати й Надіслати поруч, там, де фіксація й так відбувається; обидва показують поступ, і їх можна перервати.
Фіксується індекс, а не git commit -a: фіксується те, що ви підготували.
Історія, blame і веб¶
- Історія… перелічує фіксації з графом доріжок, посилання, що вказують на кожну (
● main,↗ origin/main,⚑ v1.0), і файли, яких торкнулася кожна фіксація. Return або подвійне клацання відкриває версію цього файлу проти її попередниці у вікні порівняння. Відкотити фіксацію й Cherry-pick теж там, і обидва відмовляють наперед, якщо робоче дерево не чисте. - Історія файлу… — те саме вікно для одного файлу.
- Blame (список)… показує кожен рядок із його фіксацією, автором і датою. Blame в редакторі вписує ті самі відомості на поле редактора, поряд із номерами рядків: наведення на рядок показує повідомлення фіксації, клацання відкриває її проти попередниці.
- Відкрити у вебі відкриває файл, фіксацію або гілку на GitHub, GitLab, Bitbucket чи Azure DevOps, зібравши адресу з URL віддаленого репозиторію — без облікового запису й без токена. Для вузла, будову посилань якого він не знає, він пропонує сторінку репозиторію, а не вгадує.
Гілки, відкладені зміни та мітки¶
Гілки, відкладені зміни та мітки… перелічує всі три. Перемкнути, створити, злити або вилучити гілку; надіслати, дістати чи відкинути відкладене; створити, вилучити або надіслати мітку чи перемкнутися на неї — мітка не гілка, тому наперед сказано, що HEAD лишиться від’єднаним. Вибірка, Отримати й Надіслати — у тому самому вікні, і їх можна перервати на ходу.
Надсилання мітки навмисно зроблено окремою дією: git push міток із собою не бере.
Конфлікти¶
Розв’язати конфлікт… перелічує конфліктні ділянки файлу під курсором і ухвалює рішення щодо кожної: наше,
їхнє, обидва — або лишити відкритою. Потім Записати файл або Записати й підготувати. Плагін
відмовляється підготувати, доки бодай одна ділянка відкрита — Git залюбки зафіксує позначки <<<<<<< — і
радше не чіпатиме файл, чиїх позначок не може прочитати, ніж вгадуватиме їх. Для ділянки, де обидві сторони
треба переплести вручну, Відкрити в редакторі — одна кнопка.
Перебазування¶
Перебазувати… перелічує фіксації попереду висхідної гілки — ті, яких більше ні в кого ще немає — і дає змогу їх стиснути, приєднати як виправлення, відкинути, переставити чи переписати повідомлення, перш ніж гілку буде переписано. Якщо перебазування спиниться на конфлікті, те саме вікно стає Продовжити / Пропустити фіксацію / Перервати, щоб недороблене перебазування не довелося завершувати в терміналі.
Ігнорування файлів і облікові дані¶
- Ігнорувати цей файл…, Ігнорувати цей тип файлів… та Ігнорувати цю теку… вписують потрібний
шаблон у
.gitignore— прив’язаний там, де належить, щоб ігнорування цієї текиbuildне ігнорувало кожну теку з назвоюbuild. - Облікові дані… повідомляють, як цей репозиторій підтверджує особу: SSH чи HTTPS, чи налаштовано помічник облікових даних, чи запущено агент SSH і чи тримає він ключ. Де це допомагає, пропонується рівно одна дія — дозволити Git зберігати облікові дані у в’язці ключів macOS. Плагін ніколи не питає парольну фразу, не показує й не зберігає її.
Примітки¶
- Плагін використовує системний Git за шляхом
/usr/bin/git. Якщо Git не встановлено, команди повідомляють, що Git недоступний. (Його приносять Xcode Command Line Tools.) - Стан репозиторію читається один раз на теку й кешується, щоб гортання великого репозиторію лишалося швидким; кеш оновлюється після кожної команди, що змінює дерево, і стежить також за фіксацією, зробленою поза програмою.
- Пов’язані робочі дерева та підмодулі підтримуються: файл усередині підмодуля показує стан і гілку підмодуля, а не батьківського репозиторію.
- Кожен список має контекстне меню, Return виконує основну дію, а Cmd+R перезавантажує вікно.