git - різниця поточних змін перед вчиненням


106

Я змінив кілька файлів у сховищі git, але ще не вчинив їх.

Я можу отримати список змін, просто посилаючись на них git status. Але як я можу отримати перелік рядків або змісту, який я змінив, крім іменних файлів?

Спочатку я думав про використання git diff , але це здається корисним лише для порівняння вже внесених змін.

Зазвичай я це просто роблю meld ., але в цьому випадку я підключений до зовнішнього сервера через ssh.

Відповіді:


153

git diffза замовчуванням показує різницю між вашим робочим каталогом та індексом ( область постановки для наступної комісії).

Якщо ви вже додали ( інсценізували ) зміни до місця постановки , git diff --stagedвиконує цю роботу. Поетапна область - це дані, з яких буде сформовано наступний комітет git commit.

PS Гарне читання (IMO) для початківців Git:

  • https://git-scm.com/book/en/v2 (більшість розділів; вона пояснює модель позаду Git та відповідає на більшість типових питань)
  • а потім негайно http://gitready.com/ (поради щодо використання).

Постановочна дія не стосується лише файлів, які ще не додано? Думав, що ти повинен використовувати кешований прапор.
pbond

4
@peterbond man git-diffкаже--staged is a synonym of --cached
Mischa

2
@peterbond Технічно інсценізовані засоби додаються до місця постановки, яке ще не є зобов'язанням. Я це уточнив у редакції.
Mischa Arefiev

1
@Mischa Документація говорить про те, що поведінка за замовчуванням для git diff- це обчислити різницю між робочим каталогом та індексом , а неHEAD
Axel

Мені не прийшло в голову посилатись на git diff без парам. Дякую!
кікіто

10

Що я використовую для таких випадків:

git diff HEAD *

Це покаже зміни, що відбулися з моменту останнього вчинення. Хоча якось це працює швидше

git diff .

або

git diff

Щоб побачити зміни у git addфайлах, що раніше редагувались, використовуйте stagedпрапор:

git diff --staged
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.