Лучше мерзавец добавить -p? - PullRequest
10 голосов
/ 02 мая 2011

Иногда я работаю в системе без установленного X Window и не могу использовать Git GUI.

Какие существуют альтернативы консоли git add -p?

Мне нравится почти все, что он делает (больше, чем Git GUI на самом деле), но я ненавижу, что он не позволяет мне просматривать всю картинку и выбирать порядок, в котором я хочу просмотреть фрагменты. Это единственное реальное преимущество Git GUI перед git add -p для меня, но оно весьма важно.

Я пытался tig, но мне не нравится, что он предлагает.

Есть предложения?

Ответы [ 3 ]

19 голосов
/ 02 мая 2011

Vim имеет плагин 'беглец'

Редактировать : связанный vimcast (комментарии) отлично, и я рекомендую его. Я хотел бы добавить подсказку, что обычно не нужно вводить :diffget и :diffput от руки, потому что вы можете сделать то же самое непосредственно в обычном / визуальном режиме, нажав d * 1011. * o и d p .

Лучшая команда для запуска этой функции - :Gstatus


Vim - это редактор терминала (в котором также есть порт графического интерфейса)

Плагин для беглецов просто позволяет вам редактировать индексные и рабочие версии файлов вместе друг с другом и позволяет выполнять diffput / diffobtain до тех пор, пока вы не будете удовлетворены. Дифф-режим Vim сложен и намного более гибок / интуитивен, чем git add --patch.

  • scrollbinding
  • подсветка синтаксиса и подсветка различий внутри строки (на уровне слов) одновременно
  • автоматическое складывание различий (из неизмененных областей)

Вы можете получить беглеца здесь

Фрагмент из :he fugitive:

Отредактируйте файл в рабочем дереве и внесите некоторые изменения. Использование |: Gdiff | открыть индексированная версия. Используйте | сделать | и | дп | на различные куски, чтобы принести файлы в синхронизировать или использовать |: Gread | втянуть все изменения. Написать индексированную версию подготовить файл.

0 голосов
/ 04 мая 2011

Если бы я находился в той же ситуации, что и вы (смесь фрагментов, где некоторые фрагменты «более важны», чем другие), я бы выделил меньшие фрагменты в их собственные коммиты с легко различимым сообщением фиксации и оставил бы только те » более важные 'блоки, чтобы они не мешали diffs, или git добавьте -i.

С легко различимыми сообщениями о фиксации для "менее привилегированных" блоков, с ними легко будет справиться позже.

0 голосов
/ 02 мая 2011

как насчет простого

git diff

, чтобы "просмотреть всю картинку", а затем

git add -i
5

, чтобы выбрать первый файл, который вы хотите зафиксировать, поставить фрагменты изатем повторить процесс со следующими файлами?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...