-
1. Введение
- 1.1 О системе контроля версий
- 1.2 Краткая история Git
- 1.3 Что такое Git?
- 1.4 Командная строка
- 1.5 Установка Git
- 1.6 Первоначальная настройка Git
- 1.7 Как получить помощь?
- 1.8 Заключение
-
2. Основы Git
-
3. Ветвление в Git
- 3.1 О ветвлении в двух словах
- 3.2 Основы ветвления и слияния
- 3.3 Управление ветками
- 3.4 Работа с ветками
- 3.5 Удалённые ветки
- 3.6 Перебазирование
- 3.7 Заключение
-
4. Git на сервере
- 4.1 Протоколы
- 4.2 Установка Git на сервер
- 4.3 Генерация открытого SSH ключа
- 4.4 Настраиваем сервер
- 4.5 Git-демон
- 4.6 Умный HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Git-хостинг
- 4.10 Заключение
-
5. Распределённый Git
-
6. GitHub
-
7. Инструменты Git
- 7.1 Выбор ревизии
- 7.2 Интерактивное индексирование
- 7.3 Припрятывание и очистка
- 7.4 Подпись
- 7.5 Поиск
- 7.6 Перезапись истории
- 7.7 Раскрытие тайн reset
- 7.8 Продвинутое слияние
- 7.9 Rerere
- 7.10 Обнаружение ошибок с помощью Git
- 7.11 Подмодули
- 7.12 Создание пакетов
- 7.13 Замена
- 7.14 Хранилище учётных данных
- 7.15 Заключение
-
8. Настройка Git
- 8.1 Конфигурация Git
- 8.2 Атрибуты Git
- 8.3 Хуки в Git
- 8.4 Пример принудительной политики Git
- 8.5 Заключение
-
9. Git и другие системы контроля версий
- 9.1 Git как клиент
- 9.2 Переход на Git
- 9.3 Заключение
-
10. Git изнутри
- 10.1 Сантехника и Фарфор
- 10.2 Объекты Git
- 10.3 Ссылки в Git
- 10.4 Pack-файлы
- 10.5 Спецификации ссылок
- 10.6 Протоколы передачи данных
- 10.7 Обслуживание репозитория и восстановление данных
- 10.8 Переменные окружения
- 10.9 Заключение
-
A1. Приложение A: Git в других окружениях
- A1.1 Графические интерфейсы
- A1.2 Git в Visual Studio
- A1.3 Git в Visual Studio Code
- A1.4 Git в Eclipse
- A1.5 Git в IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.6 Git в Sublime Text
- A1.7 Git в Bash
- A1.8 Git в Zsh
- A1.9 Git в PowerShell
- A1.10 Заключение
-
A2. Приложение B: Встраивание Git в ваши приложения
- A2.1 Git из командной строки
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Приложение C: Команды Git
- A3.1 Настройка и конфигурация
- A3.2 Клонирование и создание репозиториев
- A3.3 Основные команды
- A3.4 Ветвление и слияния
- A3.5 Совместная работа и обновление проектов
- A3.6 Осмотр и сравнение
- A3.7 Отладка
- A3.8 Внесение исправлений
- A3.9 Работа с помощью электронной почты
- A3.10 Внешние системы
- A3.11 Администрирование
- A3.12 Низкоуровневые команды
A1.9 Приложение A: Git в других окружениях - Git в PowerShell
Git в PowerShell
Стандартный терминал командной строки Windows (cmd.exe
), на самом деле, не предназначен для специализированного использования Git, но если вы используете PowerShell, то это меняет дело.
Это также применимо, если вы используете PowerShell Core на Linux или macOS.
Пакет Posh-Git (https://github.com/dahlbyk/posh-git) предоставляет мощные средства завершения команд, а также расширенные подсказки, что поможет вам поддерживать состояние вашего репозитория на высоком уровне.
Выглядит это примерно так:
Установка
Предустановки (только для Windows)
Для запуска PowerShell скриптов, вам необходимо установить значение локальной политики ExecutionPolicy
в значение RemoteSigned
(вообще-то, в любое значение, кроме Undefined
или Restricted
).
Если вы установите значение в AllSigned
вместо RemoteSigned
, то для запуска локальных скриптов (владельцем которых являетесь вы) они должны иметь цифровую подпись.
При использовании RemoteSigned
должны иметь цифровую подпись только те скрипты, у которых ZoneIdentifier
установлен в значение Internet
(скачены по сети).
Если вы администратор и хотите установить значение политики для всех пользователей, добавьте флаг -Scope LocalMachine
.
Если вы обычный пользователь и не имеете прав администратора, то используйте флаг -Scope CurrentUser
для применения политики только для текущего пользователя.
Подробнее о PowerShell Scopes: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_scopes
Подробнее о PowerShell ExecutionPolicy: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy
> Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force
Галерея PowerShell
Если вы используете PowerShell 5 или PowerShell 4 с установленным PackageManagement, то Posh-Git можно установить с помощью пакетного менеджера.
Дополнительная информация о галерее PowerShell: https://docs.microsoft.com/en-us/powershell/scripting/gallery/overview
> Install-Module posh-git -Scope CurrentUser -Force
> Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force # Последняя бета версия с поддержкой PowerShell Core
Если вы хотите установить Posh-Git для всех пользователей в системе, то в команде выше используйте флаг -Scope AllUsers
, а её выполнение следует производить с повышенными привилегиями.
Если вторая команда завершится ошибкой типа Module 'PowerShellGet' was not installed by using Install-Module
, то необходимо выполнить следующую команду:
> Install-Module PowerShellGet -Force -SkipPublisherCheck
А затем повторить установку. Это происходит потому, что поставляемые вместе с Windows PowerShell модули подписаны другим сертификатом.
Модификация приглашения ввода в PowerShell
Для добавления git информации в приглашение ввода необходимо импортировать модуль Posh-Git
.
Для автоматического импорта модуля Posh-Git при каждом запуске PowerShell, выполните команду Add-PoshGitToProfile
, которая добавит инструкции импорта в ваш $profile
скрипт.
Этот скрипт выполняется каждый раз как вы открываете консоль PowerShell.
Имейте ввиду, что существует несколько $profile
скриптов: например, один для консоли, а другой для ISE.
> Import-Module posh-git
> Add-PoshGitToProfile -AllHosts
Установка из исходников
Скачайте релиз Posh-Git с https://github.com/dahlbyk/posh-git/releases и распакуйте.
Затем импортируйте модуль используя полный путь к файлу posh-git.psd1
:
> Import-Module <путь-к-распакованному-каталогу>\src\posh-git.psd1
> Add-PoshGitToProfile -AllHosts
В файл profile.ps1
будет добавлена соответствующая строка, за счёт которой Posh-Git будет подключаться каждый раз при запуске PowerShell.
Описание сводной информации о статусе Git, отображаемой в приглашении ввода, приведено здесь: https://github.com/dahlbyk/posh-git/blob/master/README.md#git-status-summary-information. Дополнительные сведения по настройке приглашения ввода приведены здесь: https://github.com/dahlbyk/posh-git/blob/master/README.md#customization-variables.