Я заметил, что, работая над одним или двумя билетами, если я уйду, я не уверен, над чем я работал, что изменилось и т.д.
Есть ли способ увидеть изменения, сделанные для данного файла до git add, а затем git commit?
Я заметил, что, работая над одним или двумя билетами, если я уйду, я не уверен, над чем я работал, что изменилось и т.д.
Есть ли способ увидеть изменения, сделанные для данного файла до git add, а затем git commit?
Вы ищете 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-diff
:
git diff yourfile
Для меня git add -p
- самый полезный способ (и я думал, что разработчики git?), чтобы просмотреть все неустановленные изменения (он показывает diff для каждого файла), выберите хороший набор изменений, которые должны идти с фиксацией, затем, когда вы поставили все из них, затем используйте git commit
и повторите для следующего фиксации. Затем вы можете сделать каждую фиксацию полезным или значимым набором изменений, даже если они произошли в разных файлах. Я также предлагаю создать новую ветку для каждого билета или аналогичного действия и переключаться между ними с помощью checkout
(возможно, используя git stash
, если вы не хотите комментировать до переключения), хотя, если вы делаете много быстрых изменений, это может быть болью. Не забывайте часто сливаться.
git diff filename
Показать изменения между рабочим деревом и индексом или деревом, изменения между индексом и деревом, изменения между двумя деревьями или изменения между двумя файлами на диске.
Помните, что вы совершаете изменения, а не файлы.
По этой причине очень редко я не использую 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 для опции "cached":
$ git config --global alias.diff-cached '!git diff --cached $(git diff --cached --name-only)'
Вы также можете использовать текстовый редактор git. Они показывают цвета на линиях, которые были изменены, другой цвет для добавленных линий, другой цвет для удаленных линий и т.д.
Хороший текстовый редактор, который делает это GitHub Atom 1.0.
Перейдите к соответствующему git-репо, затем выполните команду ниже:
git diff filename
Он откроет файл с отмеченными изменениями, нажмите клавишу возврата/ввода, чтобы прокрутить вниз файл.
Имя файла PS должно содержать полный путь к файлу, иначе вы можете запускать без полного пути к файлу, перейдя в соответствующий каталог/папку файла