Команда для открытия файла с помощью git

  • у меня есть sublime text в качестве редактора по умолчанию в git (и это работает)
  • git config --edit открывает файл конфигурации в sublime text (Awesome)

Мой Вопрос:

какая команда открыть say index.html или style.css внутри каталога проекта?

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

  • ОС Windows 7
  • msysgit версии 1.8.0

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

вопрос возник, когда я совершал проект и понял, что мне нужно сделать небольшое редактирование файла css я уже закрыл и задавался вопросом, Могу ли я открыть, чтобы отредактировать файл изнутри git, так как он у меня есть.

кажется, это невозможно (не конец света) мне просто нравится понимать все мои варианты с помощью инструментов, которые я использую, это все

12 ответов


Git не имеет ничего общего с тем, как вы открываете/редактируете файлы в своем проекте. Настройка редактора в git только для того, чтобы внутренние вещи git, которые требуют редактора (например, сообщения фиксации), могли использовать предпочтительный редактор.

Если вы просто хотите открыть файлы из командной строки (cmd.exe) как будто они были дважды щелкнуты в проводнике windows, я думаю, вы можете использовать start <filename>.


я смог сделать это, используя эту команду:

notepad .gitignore

и он откроет .файл gitignore в блокноте.


Я нашел обходной путь для этого через этот ссылке. В двух словах, вы должны:

  1. создайте файл с именем subl (или любое имя, которое вы хотите, чтобы команда вызов Sublime Text) без расширения
  2. поместите в файл эту команду (при необходимости замените путь для исполняемого файла):

    #!/bin/sh
    "C:\Program Files\Sublime Text 2\sublime_text.exe"  &
    
  3. поместите этот файл subl в соответствующий каталог команд для вашей ОС и версии Sublime Text (если у вас есть сомнения, проверьте выше раздел комментариев ссылки). В моем случае я использую Sublime Текст 3 с Windows 10 64bit, поэтому я поместил его в:

    C:\Program Files (x86)\Git\usr\bin
    
  4. Теперь, чтобы открыть нужный файл, в git bash используйте (в папке file)

    subl filename
    

Брентон Алкер выше сказал, что "пуск" работает - я добавлю к этому предостережение: это работает для всех файлов, которые уже связаны с sublime-text (как он говорит, это работает, как если бы они были дважды щелкнуты в проводнике windows).

но если, например, вы хотели открыть .файл gitignore из вашей оболочки в sublime_text и .gitignore не связан с sublime_text, вот что я сделал:

я отредактировал переменную среды PATH, чтобы содержать папку Sublime Text в программе файлов, владеет sublime_text.исполняемый. Теперь, в моем терминале (я использую powershell, но он работает с любого терминала), когда я набираю 'sublime_text .гитюдного' на .gitignore из моего текущего каталога открывается в Sublime!

Я попытался сделать .файл bat называется sublime.bat, который будет работать, чтобы я мог просто напечатать sublime .gitignore, но это не сработало - по какой-то причине он открыл sublime text, но не файл. Я доволен sublime_text (завершение вкладки упрощает его для я, на самом деле-просто "su[tab]" делает трюк!


просто использовать vi + .

пример:

vi stylesheet.css

откроется редактор vi с содержимым файла.

начать редактирование, нажмите клавишу I


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

git config -l

переменная code.editor имеет значение /Applications/Sublime_Text.app -n -w

который вы можете открыть с помощью os.system()


Я только что загрузил Git 2.7.0 и добавил псевдоним .bashrc для редактирования файлов с кодом VS:

alias code='/c/Program\ Files\ \(x86\)/Microsoft\ VS\ Code/bin/code.cmd'

также должен работать с другими редакторами...


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

atom index.html

надеюсь, это поможет.


вы можете использовать командную строку git в качестве терминала мой чувак, вы просто знаете, что команды bash Чтобы создать файл

touch file.txt

открыть файл

code file.py 
atom file.py
start file.py

ect

открыть текущую папку и все внутри в текстовом редакторе

code . 

сделать папку

mkdir folder1 folder2 folder3 

вы можете сделать столько, сколько вы хотите сразу это работает с touch to


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

edit = "!f() { $(git config core.editor) -- $@; }; f"

затем, git edit foo.txt открыть файл foo.txt для редактирования.

его гораздо легче открыть .gitconfig хранит настройки с git config --global --edit и вставьте строку, а не выяснить, как избежать всех символов, чтобы ввести псевдоним непосредственно из командной строки с git config alias.edit "..."

как это работает

  • ! запускает команду bash, а не внутреннюю команду git
  • f() {...}; запускает функцию
  • $(git config core.editor) получит имя вашего редактора, из локальной конфигурации или глобального, если локальный не установлен. К сожалению, он не будет смотреть в $VISUAL или $EDITOR для этого, если ни один не устанавливается.
  • -- разделяет команду редактора со списком файлов. Это работает для большинства редакторов командной строки, поэтому безопаснее вставлять. Если пропустили и то core.editor не установлен, то это возможно, что исполняемый файл выполняется вместо редактирования. С ним здесь, команда просто провалится.
  • $@ добавить файлы, введенные в командной строке.
  • f выполнит функцию после того, как она будет определена.

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

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

reedit = "!f() { $(git config core.editor) -- $(git diff --name-only ); }; f"

затем, git reedit откроет все файлы, которые я уже начал изменять, и git reedit --cached откроет все промежуточные файлы.


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

здесь вы можете проверить, установлен ли редактор в git config, а также открыть файлы, не связанные с этим редактором:

alias editor="$(git config core.editor)"
if [ "$(alias editor | sed -r "s/.*='(.*)'//")" != "" ]; then
    editor <filename>
else
    start <filename>
fi

не работает .gitconfig на windows:

[core]
    editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin

чтобы открыть файл в Sublime Text,

вот пример открытия образца текстового файла в Sublime Text editor

subl <filename>.txt

subl ранее создавался как псевдоним, содержащий файл каталога, с помощью команды "echo"в оболочке Git Bash.