Git-клиент ncurses для Linux

Я ищу текстовый клиент для git — в идеале что-то вроде Midnight Commander (так что, если есть какой-нибудь «Gitnight Commander», то это он).

Требования

  • текстовый режим, поэтому он также работает через оболочку SSH
  • работает на Linux (Debian)
  • предлагает nCurses, такой как текстовый GUI, пользователь может перемещаться с помощью клавиатуры
  • показывает (и позволяет перемещаться) историю коммитов, древовидную структуру и т. д.
  • позволяет, по крайней мере, для основных действий, таких как вина и diff
  • интуитивно понятное использование
  • бесплатно (как в «бесплатном пиве» и в «свободе слова»; т.е. FOSS)

Настоятельно предпочитаемый

  • доступен через стандартный репозиторий Debian
  • в хорошем состоянии и в актуальном состоянии

В первую очередь мне это нужно для просмотра репозиториев git на удаленном хосте, поэтому «только для чтения» вполне нормально. Если дальше – ну, не помешает, пока не кончается «вздутием». Должен быть прост в использовании.

Ответы (3)

Что очень близко к моим потребностям, так это tig : текстовый интерфейс с использованием ncurses.

Тиг Тиг
tig: просмотр коммитов, отображение различий (источник: tig ; щелкните изображения, чтобы просмотреть увеличенные варианты)

Как я уже писал: близко (но без сигары). Это определенно соответствует моим основным потребностям (всем перечисленным требованиям и даже «настоятельно предпочтительной» части), и это то, что я использую на данный момент. Но часть «интуитивного использования» не полностью завершена (ну, как только вы привыкнете к ярлыкам, вы сможете использовать их интуитивно, но до тех пор…). Условие «Gitnight Commander» не выполняется: нет «режим помощи», чтобы показать нужные ключи, например. Так что я все еще открыт для альтернативных рекомендаций.

Согласно tig : hключ запускает help mode.

Ленивец

Lazygit (написанный на Go с использованием библиотеки gocui ) подходит для всех моих нужд. Это просто, интуитивно понятно для пользователя, который не знаком с Vim или Emacs, и выполняет свою работу.

Примечательные особенности:

  • легко добавлять файлы -a
  • промежуточные файлы один за другим ( space) или в массовом порядке ( a)
  • фиксация файлов ( c) и подписание фиксаций с использованием PGP
  • разрешение конфликтов слияния (интерактивно) -m
  • легко проверить последние ветки -a
  • прокрутить логи/разницы веток/коммитов/тайника
  • быстрое нажатие ( P) и вытягивание ( p)
  • раздавить ( s) и переименовать коммиты ( R)
  • сохранение изменений ( S)

lazygit tui анимированный превью

грв

Для просмотра репозиториев Git существует средство просмотра репозиториев Git с элементами управления с клавиатуры, аналогичными Vim.

  • Коммиты и ссылки можно фильтровать с помощью языка запросов.
  • Изменения в репозитории фиксируются путем мониторинга файловой системы, что позволяет автоматически обновлять пользовательский интерфейс.
  • Организованы в виде вкладок и разделений. Пользовательские вкладки и разделения могут быть созданы с использованием любой комбинации представлений.
  • Vi любит привязки клавиш по умолчанию, привязки клавиш можно настроить.
  • Пользовательские темы могут быть созданы.
  • Поддержка мыши.
  • График фиксации.

Скриншот грв

Хороший выбор, спасибо и +1! Рассмотрю их. Только что взглянул на grv (поскольку он предлагает один статически связанный двоичный файл для загрузки), выглядит довольно впечатляюще :)

Я постоянно работаю со многими ветками, поэтому я искал способы проверить ветки, выбрав вместо ввода имени ветки. Я не нашел для этого решения, поэтому написал простой фрагмент кода Python, который это делает. Вот он: https://gist.github.com/yyk/9735d4df2b3c7dd0ea0d35affbb8c77e

Добро пожаловать в рекомендации по программному обеспечению! Могу я спросить, насколько это соответствует перечисленным требованиям? Похоже, что это предлагает только проклятый способ выбора ветки (для чего я использую автозаполнение git). Тогда вопрос был не об этом.