Git проверить файл с тем же именем из другого филиала? [Дубликат]

Если вы запустите Laravel (теперь laravel по умолчанию использует 4-байтовый Unicode, который вызывает это), вы можете решить это, изменив следующие строки в config / database.php из

  'charset' =  & GT;  'utf8mb4', 'collation' = & gt;  'utf8mb4_unicode_ci',  

 to

  'charset' = & gt;  'utf8', 'collation' = & gt;  'utf8_unicode_ci',  
207
задан neoneye 10 December 2012 в 10:35
поделиться

2 ответа

Вы можете использовать «git show» для этого:

prompt> git show HEAD^:main.cpp > old_main.cpp

(обратите внимание, что между HEAD^ и main.cpp есть символ двоеточия [:].) Синтаксис <revision>:<path> описан в git rev-parse manpage, рядом с последней точкой раздела «Указание ревизий»:

  • & lt; rev & gt;: & lt; path & gt; , например HEAD: README,: README, master: ./ README Суффикс :, за которым следует путь, называет blob или дерево по заданному пути в древовидном объекте, названном частью до двоеточия. :path (с пустой частью перед двоеточием) - это особый случай описанного ниже синтаксиса: контент, записанный в индекс по данному пути. Путь, начинающийся с ./ или ../, относится к текущему рабочему каталогу. Данный путь будет преобразован относительно исходного корневого каталога рабочего дерева. Это наиболее полезно для обращения к блобу или дереву из фиксации или дерева, которое имеет ту же структуру дерева, что и рабочее дерево.

Обратите внимание, что <path> здесь FULL путь относительно верхней директории вашего проекта, то есть каталога с каталогом .git/. (Или, точнее, « & lt; revision & gt; " (который вообще может быть любым & lt; tree-ish & gt; , то есть тем, что представляет дерево))

Если вы хотите использовать путь относительно текущего каталога, вам нужно использовать синтаксис ./<path> (или ../path для перехода из текущего каталога).

Редактировать 2015-01- 15: добавлена ​​информация об относительном синтаксисе пути


В большинстве случаев вы можете получить тот же результат, используя команду низкого уровня (сантехника) git cat-file:

prompt> git cat-file blob HEAD^:main.cpp > old_main.cpp
237
ответ дан Mike Williamson 17 August 2018 в 12:24
поделиться
  • 1
    Мне интересна полная копия, но git-show показывает мне только различия. Я пробовал играть с опцией --pretty. Prompt & gt; git show --pretty = fuller HEAD ^ main.cpp, но он не решил его. – neoneye 20 May 2009 в 16:37
  • 2
    & gt; git показывают HEAD ^ main.cpp " (с пространством между HEAD ^ и main.cpp) ОТЛИЧАЕТСЯ от "git show HEAD ^: main.cpp" (с двоеточие ':' между HEAD ^ и main.cpp). – Jakub Narębski 20 May 2009 в 17:01
  • 3
    Хмм, с двоеточием я вижу эту ошибку, поэтому я подумал, что толстая кишка была ошибкой. Да, похоже, что двоеточие - это путь, но как я могу это решить? подсказка & GT; git show HEAD ^: main.cpp fatal: неоднозначный аргумент 'HEAD ^: main.cpp': неизвестная ревизия или путь не в рабочем дереве. Используйте '-', чтобы отделить пути от версии prompt & gt; – neoneye 20 May 2009 в 17:13
  • 4
    Вероятно, это означает, что вы дали неправильное имя PATHNAME (к сожалению, из-за «git show» magic git не может дать лучшего сообщения об ошибке). Это должно быть FULL pathname относительно верхнего каталога вашего проекта: $ (git ls-tree -r -name-only HEAD ^ | grep main.cpp) – Jakub Narębski 20 May 2009 в 17:19
  • 5
    Вместо полного пути из документов: «Путь, начинающийся с ./ или ../, относится к текущему рабочему каталогу». Работает на моей версии 1.8.5. – LVB 14 January 2015 в 19:59

Просто добавьте ответ Якуба: вам даже не нужно перенаправлять вывод в файл с помощью >, если вас интересует только просмотр содержимого файла в терминале. Вы можете просто запустить $ git show 58a3db6:path/to/your/file.txt.

20
ответ дан DilithiumMatrix 17 August 2018 в 12:24
поделиться
  • 1
    Я думаю, вам не нужно начинать слэш в этой команде git show 58a3db6:path/to/your/file.txt – Dimitry K 24 March 2016 в 14:36
Другие вопросы по тегам:

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