Я помітив, що працюючи над одним-двома квитками, якщо я відійду, я не впевнений, над чим працював, на що змінився, тощо.
Чи є спосіб побачити зміни, внесені до даного файлу, перш ніж додавати git, а потім виконувати git?
Я помітив, що працюючи над одним-двома квитками, якщо я відійду, я не впевнений, над чим працював, на що змінився, тощо.
Чи є спосіб побачити зміни, внесені до даного файлу, перш ніж додавати git, а потім виконувати git?
Відповіді:
Ви шукаєте git diff
. Залежно від вашої точної ситуації є три корисні способи її використання:
# show differences between index and working tree
# that is, changes you haven't staged to commit
git diff [filename]
# show differences between current commit and index
# that is, what you're about to commit
# --staged does exactly the same thing, use what you like
git diff --cached [filename]
# show differences between current commit and working tree
git diff HEAD [filename]
Він працюватиме рекурсивно в каталогах, і якщо шляхи не вказані, він показує всі зміни.
git add -p
це альтернатива огляду всіх файлів.
git diff --staged [filename]
у своїй основній відповіді, як це частіше потрібна ситуація.
Використання git-diff
:
git diff yourfile
Для мене git add -p
- це найкорисніший спосіб (і як я думаю, що розробники git вважають?) Переглянути всі нестандартні зміни (він показує різницю для кожного файлу), вибрати хороший набір змін, які повинні відбуватися з комітом, а потім, коли у вас є інсценізувати всі ці, потім використовувати git commit
та повторити для наступного виконання. Тоді ви можете зробити кожен прийом корисним або змістовним набором змін, навіть якщо вони відбулися в різних файлах. Я б також запропонував створити нову гілку для кожного квитка або подібної діяльності та переключитися між ними за допомогою checkout
(можливо, використовуючи, git stash
якщо ви не хочете здійснювати зобов'язання перед перемиканням), хоча якщо ви робите багато швидких змін, це може бути болем. Не забувайте часто зливатися.
Пам'ятайте, ви вносите зміни , а не файли.
З цієї причини дуже рідко я не використовую git add -p
(або магнітний еквівалент) для додавання змін.
git diff <path>/filename
шлях може бути повним системним шляхом до файлу або
якщо ви знаходитесь у проекті, ви вставляєте модифікований шлях до файлу також
для модифікованих файлів з використанням шляху:git status
Ну, мій випадок, коли ви не хочете дбати про список файлів. Просто покажіть їх усім.
Коли ви вже працювали git add
зі списком файлів:
$ git diff --cached $(git diff --cached --name-only)
В останніх версіях програми git
ви можете --staged
також використовувати , що є синонімом --cached
.
Те саме можна використовувати для не доданих файлів, але без --cached
опції.
$ git diff $(git diff --name-only)
Псевдонім команди Git для параметра "кешування":
$ git config --global alias.diff-cached '!git diff --cached $(git diff --cached --name-only)'
Перейдіть до відповідної програми git repo та виконайте команду нижче:
ім'я файлу git diff
Він відкриє файл із позначеними змінами, натисніть клавішу return / enter, щоб прокрутити файл вниз.
PS-ім'я файлу має містити повний шлях до файлу, інакше ви можете запустити без повного шляху до файлу, перейшовши у відповідний каталог / папку файлу
Можна також використовувати текстовий редактор, сприятливий для git. Вони показують кольори на модифікованих лініях, інший колір для доданих ліній, інший колір для видалених ліній тощо.
Хороший текстовий редактор, який робить це - Atom 1.0 GitHub .
[filename]
вказується необов’язковий аргумент.) Якщо*
ви дозволяєте оболонці перелічити всі файли, тож якщо ви знаходитесь в підкаталозі, ви отримаєте лише речі в цьому підкаталозі (не цілому репо), і ви ' Ви пропустите зміни в прихованих файлах.