13 ответов:
вы можете сделать:
git diff master~20:pom.xml pom.xml... чтобы сравнить ваш текущий
pom.xmlСmaster20 ревизий назад через первого родителя. Вы можете заменитьmaster~20, конечно, с именем объекта (SHA1sum) фиксации или любого из многие другие способы указания редакции.обратите внимание, что это на самом деле сравнение старого
pom.xmlк версии в вашем рабочем дереве, а не к версии, зафиксированной вmaster. Если вы хотите, то вы можете сделать вместо этого следует:git diff master~20:pom.xml master:pom.xml
Если вы хотите увидеть разницу между последней фиксацией одного файла, вы можете сделать:
git log -p -1 filenameЭто даст вам разницу в файле в git, не сравнивая ваш локальный файл.
чтобы увидеть, что было изменено в файле в последний коммит:
git diff HEAD~1 path/to/file.вы можете изменить число (~1) на n-й коммит, который вы хотите различать.
Если ни один из коммитов не является вашей головой, то bash's фигурные скобки оказывается действительно полезным, особенно если ваши имена файлов длинные, пример выше:
git diff master~20:pom.xml master:pom.xmlстанет
git diff {master~20,master}:pom.xmlподробнее о фигурные скобки С Башем.
Общий Синтаксис :
$git diff oldCommit..newCommit -- **FileName.xml > ~/diff.txtдля всех файлов с именем " FileName.xml " в любом месте вашего РЕПО.
обратите внимание на пробел между "--" и "**"
ответ на ваш вопрос:
$git checkout master $git diff oldCommit..HEAD -- **pom.xml or $git diff oldCommit..HEAD -- relative/path/to/pom.xmlкак всегда с git, вы можете использовать тег/sha1/"HEAD^" для идентификации фиксации.
протестировано с git 1.9.1 на Ubuntu.
для сравнения с 5 фиксацией на текущем, оба на
master, просто сделать:git diff master~5:pom.xml master:pom.xmlтакже вы можете обратиться к фиксации хэш-функции, например, если хэш-числа
x110bd64, вы можете сделать что-то подобное, чтобы увидеть разницу:git diff x110bd64 pom.xml
для людей, заинтересованных в том, чтобы сделать то же самое из GitHub, см. сравнение совершает во времени.
Если вам нужно различить один файл в тайнике, например, вы можете сделать
git diff stash@{0} -- path/to/file
Если вы ищете разницу в конкретной фиксации, и вы хотите использовать пользовательский интерфейс github вместо командной строки (скажем, вы хотите связать его с другими людьми), вы можете сделать:
https://github.com/<org>/<repo>/commit/<commit-sha>/<path-to-file>например:
обратите внимание на предыдущие и последующие ссылки в правом верхнем углу, которые позволяют вам перемещаться по всем файлам совершать.
это работает только для конкретной фиксации, но не для сравнения между любыми двумя произвольными версиями.
Если вы хорошо используете графический инструмент (или даже предпочитаете его), вы можете:
gitk pom.xmlв gitk вы можете нажать любую фиксацию (чтобы" выбрать "ее) и щелкнуть правой кнопкой мыши любую другую фиксацию, чтобы выбрать" Diff this -> selected "или" diff selected -> this " во всплывающем меню, в зависимости от того, какой порядок вы предпочитаете.
Comments