Git: показати більше контексту при використанні git add -i або git add -e?


99

Я вибірково фіксую частини великого файлу, і я хотів би бачити більше контексту навколо кожного куска. Чи можливо це?

Відповіді:


127

Коротка відповідь: ні.

git diffмає -U<n>опцію, яка дозволяє налаштувати кількість рядків для відображення змін. Наприклад, git diff -U5 ...покаже 5 рядків контексту. Наскільки я можу зрозуміти, такої опції для індикації різниці в інтерактивному режимі немає.


7
Чи є -U<infinity>можливість показати весь файл? (Або велика кількість "досить хороша"?)
titaniumdecoy

2
Я хотів би згадати, що число в git diff -U<n>використовується з обох боків кожного зміненого рядка. Отже, якщо ви змінили один рядок, git diff -U5покаже вам 11 рядків (припускаючи, що один рядок не на початку кінця файлу.)
ArtOfWarfare

4
Це для git diffне для git add --patchабоgit add --interactive
0xcaff

1
@titaniumdecoy, я розмістив це як окреме запитання stackoverflow.com/questions/28727424/…
Олександр Левчук

3
Все ще немає рішення?
Віталій Зданевич

2

На підтвердження, це все ще неможливо у 2019 році.

Зовнішній інструмент jjlee/git-meld-indexможе допомогти:

git-meld-indexзапускається meld- або будь-який інший git difftool ( kdiff3, diffuseтощо) - щоб ви могли інтерактивно індексувати зміни до git-індексу (також відомого як git staging area).

Це схоже на функціональність git add -p, і git add --interactive.

У деяких випадках meld простіший / швидший у використанні, ніж git add -pфункція постановки в таких інструментах, як git gui.
Це тому, що meld дозволяє, наприклад,:

  • побачити більше контексту ,
  • див. внутрішньорядкові різниці
  • відредагуйте вручну та перегляньте оновлення різниці в реальному часі (оновлюються після кожного натискання клавіші)
  • перейдіть до зміни, не вимовляючи ' n' до кожної зміни, яку ви хочете пропустити
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.