Просмотр файла в другой ветке Git без изменения веток - PullRequest
547 голосов
/ 22 октября 2011

Можно ли открыть файл в ветке git без проверки этой ветки? Как?

По сути, я хочу иметь возможность открывать файл в моей ветке github pages , не переключая ветки все время. Я не хочу его изменять, просто хочу его просмотреть.

Ответы [ 5 ]

765 голосов
/ 22 октября 2011

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

git show branch:file

Где branch может быть любым ref (branch, tag, HEAD, ...) и file - полный путь к файлу. Для его экспорта вы можете использовать

git show branch:file > exported_file

Вам также следует посмотреть ответы VonC на некоторые связанные вопросы:

ОБНОВЛЕНИЕ 2015-01-19:

В настоящее время вы можете использовать относительные пути с git show a1b35:./file.txt.

46 голосов
/ 22 октября 2011
git show somebranch:path/to/your/file

Вы также можете сделать несколько файлов и объединить их:

git show branchA~10:fileA branchB^^:fileB

Вы должны указать полный путь к файлу.

Если вы хотите получить файл в локальном каталоге (вернуть только один файл), вы можете оформить заказ:

git checkout somebranch^^^ -- path/to/file
35 голосов
/ 22 октября 2011

Простой, удобный для новичков способ просмотра файла: git gui browser <branch>, который позволяет исследовать содержимое любого файла.

Он также есть в меню Файл git gui.Большинство других - более продвинутых - оболочек GUI (Qgit, Egit и т. Д.) Также предлагают просмотр / открытие файлов.

18 голосов
/ 15 февраля 2013

Если вы используете Emacs, вы можете набрать C-x v ~, чтобы увидеть другую ревизию файла, который вы редактируете в настоящее время (теги, ветки и хэши все работают).

1 голос
/ 22 февраля 2019

Добавьте следующее в ваш ~/.gitconfig файл

[alias]
  cat = "!git show \"$1:$2\" #"

и попробуйте это

git cat BRANCHNAME FILEPATH

Лично я предпочитаю отдельные параметры без двоеточия.Зачем?Этот выбор отражает параметры команды checkout, которую я склонен использовать довольно часто, и я считаю, что ее гораздо проще запомнить, чем разделенный двоеточиями параметр команды show.

...