Как получить разницу между двумя нажатиями git? [Дубликат]

Ошибка произошла здесь из-за использования одинарных кавычек ('). Вы можете поместить свой запрос следующим образом:

mysql_query("
SELECT * FROM Users 
WHERE UserName 
LIKE '".mysql_real_escape_string ($username)."'
");

Он использует mysql_real_escape_string для предотвращения SQL-инъекции. Хотя мы должны использовать расширение MySQLi или PDO_MYSQL для обновленной версии PHP (PHP 5.5.0 и более поздних версий), но для более старых версий mysql_real_escape_string это будет трюк.

2206
задан Jacek Laskowski 27 November 2015 в 20:20
поделиться

25 ответов

Предпочтительный путь (потому что это команда plumbing , предназначенная для программирования):

$ git diff-tree --no-commit-id --name-only -r bd61ad98
index.html
javascript/application.js
javascript/ie6.js

Другой способ (менее предпочтительный для скриптов, потому что это фарфор , предназначенный для пользователя)

$ git show --pretty="" --name-only bd61ad98    
index.html
javascript/application.js
javascript/ie6.js

  • --no-commit-id подавляет вывод идентификатора фиксации.
  • --pretty аргумент указывает пустую строку форматирования, чтобы избежать появления трещины в начале.
  • Аргумент --name-only показывает только те имена файлов, которые были затронуты (спасибо Хэнк).
  • -r аргумент состоит в том, чтобы возвращать в поддеревья
2911
ответ дан Ryan McGeary 3 September 2018 в 18:36
поделиться

Это должно работать:

git status

Это покажет, что не организовано и что поставлено.

-1
ответ дан 4067098 3 September 2018 в 18:36
поделиться

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

git diff HEAD~1 --name-only
10
ответ дан adosaiguas 3 September 2018 в 18:36
поделиться

ОК, есть несколько способов показать все файлы в конкретном коммите ...

Чтобы уменьшить информацию и показать только имена файлов, которые были сделаны, вы можете просто добавить --name-only или --name-status flag ..., эти флажки просто показывают вам имена файлов, которые отличаются от предыдущих коммитов, как вы хотите ...

Итак, вы можете сделать git diff, а затем --name-only, с двумя хэш после <sha0> <sha1>, что-то вроде ниже:

git diff --name-only 5f12f15 kag9f02 

Я также создаю изображение ниже, чтобы показать все шаги, которые нужно пройти в этой ситуации:

16
ответ дан Alireza 3 September 2018 в 18:36
поделиться

Использовать

git log --name-status

Это покажет вам идентификатор, сообщение, файлы, измененные и измененные, созданные, добавленные или удаленные. В некоторой степени команда «все-в-одном».

8
ответ дан alpha_989 3 September 2018 в 18:36
поделиться
git show --name-only commitCodeHere
12
ответ дан George Oikonomou 3 September 2018 в 18:36
поделиться

Я просто предполагаю, что gitk нежелательно для этого. В этом случае попробуйте git show --name-only <sha>.

180
ответ дан Hank Gay 3 September 2018 в 18:36
поделиться

Нашел прекрасный ответ на это:

git show --name-status --oneline <commit-hash>

Чтобы я знал

which files were just modified M

Which files were newly added , A

Which files were deleted , D
7
ответ дан Ijaz Khan 3 September 2018 в 18:36
поделиться

Вы также можете сделать

git log --name-only

, и вы можете просматривать различные коммиты, фиксировать сообщения и измененные файлы.

Введите q, чтобы вернуть свое приглашение.

56
ответ дан Indu Devanath 3 September 2018 в 18:36
поделиться

Если вы хотите получить список измененных файлов:

git diff-tree --no-commit-id --name-only -r <commit-ish>

Если вы хотите получить список всех файлов в фиксации, вы можете использовать

git ls-tree --name-only -r <commit-ish>
191
ответ дан Jakub Narębski 3 September 2018 в 18:36
поделиться

Я думал, что поделился бы сводкой моего псевдонима. Также я нахожу использование «zsh» великолепно, git it colora все хорошо красит и говорит, что вы хотите, чтобы ветка все время менялась в командной строке.

Для тех, кто покрывает SVN, вы найдете это полезным: (это комбинация идей из разных потоков, я только беру кредит на знание того, как использовать copy / paste)

.gitconfig:
        ls = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset' --abbrev-commit --date=relative --name-status

>>git ls
* 99f21a6 - (HEAD -> swift) New Files from xcode 7 (11 hours ago) Jim Zucker| 
| A     icds.xcodeproj/project.pbxproj
| A     icds.xcodeproj/project.xcworkspace/contents.xcworkspacedata
| A     icds/AppDelegate.m
| A     icds/Assets.xcassets/AppIcon.appiconset/Contents.json

* e0a1bb6 - Move everything to old (11 hours ago) Jim Zucker| 
| D     Classes/AppInfoViewControler.h
| D     Classes/AppInfoViewControler.m
| D     Classes/CurveInstrument.h


.gitconfig: 
       lt = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset' --abbrev-commit --date=relative

>>git lt
* 99f21a6 - (HEAD -> swift) New Files from xcode 7 (11 hours ago) Jim Zucker
* e0a1bb6 - Move everything to old (11 hours ago) Jim Zucker
* 778bda6 - Cleanup for new project (11 hours ago) Jim Zucker
* 7373b5e - clean up files from old version (11 hours ago) Jim Zucker
* 14a8d53 - (tag: 1.x, origin/swift, origin/master, master) Initial Commit (16 hours ago) Jim Zucker


.gitconfig
lt = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset' --abbrev-commit --date=relative

>> git lt

commit 99f21a61de832bad7b2bdb74066a08cac3d0bf3c
Author: Jim Zucker <jim@stratengllc.com>
Date:   Tue Dec 1 22:23:10 2015 -0800

    New Files from xcode 7

A       icds.xcodeproj/project.pbxproj
A       icds.xcodeproj/project.xcworkspace/contents.xcworkspacedata


commit e0a1bb6b59ed6a4f9147e894d7f7fe00283fce8d
Author: Jim Zucker <jim@stratengllc.com>
Date:   Tue Dec 1 22:17:00 2015 -0800

    Move everything to old

D       Classes/AppInfoViewControler.h
D       Classes/AppInfoViewControler.m
D       Classes/CurveInstrument.h
D       Classes/CurveInstrument.m
0
ответ дан Jim Zucker 3 September 2018 в 18:36
поделиться

Также есть git whatchanged, который является более низким уровнем, чем git log

NAME
       git-whatchanged - Show logs with difference each commit introduces

Он выводит сводку фиксации со списком файлов под ним с их режимами, и если добавлено (A ]), удалено (D) или изменено (M);

$ git whatchanged f31a441398fb7834fde24c5b0c2974182a431363

Дает что-то вроде:

commit f31a441398fb7834fde24c5b0c2974182a431363
Author: xx <xx@xx.nl>
Date:   Tue Sep 29 17:23:22 2015 +0200

    added fb skd and XLForm

:000000 100644 0000000... 90a20d7... A  Pods/Bolts/Bolts/Common/BFCancellationToken.h
:000000 100644 0000000... b5006d0... A  Pods/Bolts/Bolts/Common/BFCancellationToken.m
:000000 100644 0000000... 3e7b711... A  Pods/Bolts/Bolts/Common/BFCancellationTokenRegistration.h
:000000 100644 0000000... 9c8a7ae... A  Pods/Bolts/Bolts/Common/BFCancellationTokenRegistration.m
:000000 100644 0000000... bd6e7a1... A  Pods/Bolts/Bolts/Common/BFCancellationTokenSource.h
:000000 100644 0000000... 947f725... A  Pods/Bolts/Bolts/Common/BFCancellationTokenSource.m
:000000 100644 0000000... cf7dcdf... A  Pods/Bolts/Bolts/Common/BFDefines.h
:000000 100644 0000000... 02af9ba... A  Pods/Bolts/Bolts/Common/BFExecutor.h
:000000 100644 0000000... 292e27c... A  Pods/Bolts/Bolts/Common/BFExecutor.m
:000000 100644 0000000... 827071d... A  Pods/Bolts/Bolts/Common/BFTask.h
...

Я знаю, что этот ответ на самом деле match "без посторонней информации.", но я все же считаю, что этот список более полезен, а только имена файлов.

11
ответ дан Koen. 3 September 2018 в 18:36
поделиться

Недавно мне нужно было перечислить все измененные файлы между двумя коммитами. Таким образом, я использовал эту (также * nix специфическую) команду

git show --pretty="format:" --name-only START_COMMIT..END_COMMIT | sort | uniq

Обновление: Или, если этан указывает ниже

git diff --name-only START_COMMIT..END_COMMIT

Использование --name-status также будет включать изменение (добавлено , измененный, удаленный и т. д.) рядом с каждым файлом

git diff --name-status START_COMMIT..END_COMMIT
57
ответ дан lunohodov 3 September 2018 в 18:36
поделиться

Я лично использую комбинацию --stat и --oneline с командой show:

git show --stat --oneline HEAD
git show --stat --oneline b24f5fb
git show --stat --oneline HEAD^^..HEAD

Если вам не нравится / требуется статистика добавления / удаления, вы можете заменить --stat с --name-only

git show --name-only --oneline HEAD
git show --name-only --oneline b24f5fb
git show --name-only --oneline HEAD^^..HEAD
120
ответ дан m13r 3 September 2018 в 18:36
поделиться

Мне нравится использовать

git show --stat <SHA1>^..<SHA2>
15
ответ дан Michael De Silva 3 September 2018 в 18:36
поделиться

Список файлов, которые были изменены в commit:

git diff --name-only SHA1^ SHA1

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

9
ответ дан Newtonx 3 September 2018 в 18:36
поделиться
$ git log 88ee8^..88ee8 --name-only --pretty="format:"
23
ответ дан Pat Notz 3 September 2018 в 18:36
поделиться

Мне это нравится:

git diff --name-status <SHA1> <SHA1>^
11
ответ дан skiphoppy 3 September 2018 в 18:36
поделиться

Существует простой трюк для просмотра в виде списка файлов, просто добавьте : после хэша.

git show 9d3a52c474:

Затем вы можете просверлить

git show 9d3a52c474:someDir/someOtherDir

Если вы ударите файл, вы получите исходную версию файла; который иногда является тем, что вам нужно, если вы ищете только хорошую ссылку или ключевые фрагменты кода (diff могут сделать все беспорядок),

git show 9d3a52c474:someDir/someOtherDir/somefile

Единственным недостатком этого метода является то, что он не " t легко показать дерево файлов.

6
ответ дан srcspider 3 September 2018 в 18:36
поделиться
git show HEAD@{0}

отлично работает для меня

8
ответ дан Surya 3 September 2018 в 18:36
поделиться

Я использую измененный псевдоним довольно часто. Чтобы установить его:

git config --global alias.changed 'show --pretty="format:" --name-only'

, затем:

git changed (lists files modified in last commit)   
git changed bAda55 (lists files modified in this commit)
git changed bAda55..ff0021 (lists files modified between those commits)

Аналогичные команды, которые могут быть полезны:

git log --name-status --oneline (very similar, but shows what actually happened M/C/D)
git show --name-only
45
ответ дан takeshin 3 September 2018 в 18:36
поделиться

Я использую это, чтобы получить список измененных файлов между двумя наборами изменений:

git diff --name-status <SHA1> <SHA2> | cut -f2
15
ответ дан user135507 3 September 2018 в 18:36
поделиться

Простейшая форма:

git show --stat (hash)

Это легче запомнить, и она предоставит вам всю необходимую вам информацию.

Если вы действительно хотите только имена файлов, вы можете добавить опцию --name-only.

git show --stat --name-only (hash)

49
ответ дан VaTo 3 September 2018 в 18:36
поделиться

Использование стандартной команды git diff (также хорошо для сценариев):

git diff --name-only <sha>^ <sha>

Если вы хотите также статус измененных файлов:

git diff --name-status <sha>^ <sha>

Это хорошо работает с слияния.

35
ответ дан vquintans 3 September 2018 в 18:36
поделиться

Комбинация «git show --stat» (спасибо Райан) и несколько команд sed должны обрезать данные для вас:

git show --stat <SHA1> | sed -n "/ [\w]\*|/p" | sed "s/|.\*$//"

Это приведет к отображению только списка измененных файлов.

8
ответ дан Surya 4 September 2018 в 06:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: