Stacked Git

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 22:11, 27 февраля 2017.
Stacked Git
Gna.png
Постоянный выпуск: StGit-0.17.1 / 30 September 2013 года; 6 years ago (2013-09-30)
Состояние разработки: Beta
Написана на: Python
Операционная система: Linux, Mac OS
Лицензия: GNU GPL V2 or later
Веб-сайт gna.org/projects/stgit

StGit - приложение командной строки, имеющее функциональность, схожую с Quilt (например, положить патч в стек, достать патч из стека), используя Git вместо команд diff и patch. StGit хранит свои патчи в репозитории Git, а также предоставляет ряд команд, чтобы манипулировать ими различными способами.

Использование StGit

Для использования StGit необходимо ввести в командную строку stg. Stacked git не зря называется стековым. Будем смотреть на патчи как на стек. Вот выборка команд. Проще дать представление о них, чем сравнивать с родной функциональностью git.

Команда StGit Примерный эквивалент Git Описание
stg new - Создаёт новый патч в стеке
stg series - Показывает все имена патчей в стеке
stg goto name git reset namegit stash save Вставляет/удаляет все патчи между текущими и поименованными патчами
stg refresh git commit --amend Обновляет текущий патч в соответствии с поэтапными и/или модифицированными файлами
stg pull git fetch
git rebase origin/branch
Вытаскивает все патчи, перематывает вперёд и вставляет заново

Установка StGit

Ubuntu

 apt-get update
 apt-get install stgit

MacOS

 install stgit

Некоторые возможности StGit

  • Инициация стека патчей и создание пустого патча

В результате у нас есть рабочий стек патчей. Патч может иметь довольно странное имя ветви "refs/patches/master/localmods", но это название ветви является по-прежнему git-ссылкой.
Если мы выполняем git-толчок в этой точке, он будет толкать содержимое патча вверх, чего мы вероятно не хотим. Если мы хотим избежать случайного толкания патча, необходимо создать привычку вытаскивать все патчи до толкания. Это один из недостатков stgit.

  • Добавление содержимого на патч (обновление)

Команда stg refresh принимает изменения в рабочей копии и вносит изменения в текущий патч. Следует проявлять осторожность, т.к. эта операция не сохраняет прежнее состояние, так что можно потерять историю. Если есть сомнения, создавайте новый патч.

  • Псевдонимы StGit

В добавление к собственным командам StGit имеет множество псевдонимов к git-командам. Одна из них - stg status - псевдоним к git status --short.

  • StGit как местный тайник и stg show

stg show является аналогом git show, показывая результат последнего коммита

  • Неотслеживаемые файлы и stg add

stg add является псевдонимом git add.

  • Перемещение патчей при использовании stg goto

Если необходимо удалить патч или серию патчей, то используется stg goto.

  • Исследование стека при помощи stg series
  • Добавление патча в стек с использованием stg push
  • Вытаскивание патча из стека с использованием stg pop
  • Удаление патча из стека с использованием stg delete

Источники и ссылки