Я пробую Git на Windows . Я попал в точку попытки "git commit" и получил эту ошибку:
Терминал тупой, но не определен ни визуальный, ни редактор. Пожалуйста, укажите сообщение, используя опцию -m или -F.
Итак, я понял, что мне нужна переменная окружения с именем EDITOR. Нет проблем. Я установил это, чтобы указать на Блокнот. Это сработало почти. Сообщение о фиксации по умолчанию открывается в Блокноте. Но Блокнот не поддерживает прямые переводы строк. Я вышел и получил Notepad ++ , но не могу понять, как настроить Notepad ++ %EDITOR%
таким образом, чтобы он работал с Git должным образом.
Я не женат на Notepad ++. На данный момент я не против того, какой редактор я использую. Я просто хочу иметь возможность вводить сообщения коммита в редакторе, а не в командной строке (с -m
).
Те из вас, кто использует Git в Windows: Какой инструмент вы используете для редактирования ваших сообщений коммитов, и что вам нужно было сделать, чтобы он работал?
git config core.editor notepad
теперь достаточно. Смотрите мой обновленный ответ ниже .Ответы:
Обновление сентябрь 2015 (6 лет спустя)
Последний выпуск мерзавца-для-Windows , (2.5.3) теперь включает в себя:
См совершить 69b301b по Johannes Schindelin (
dscho
) .И Git 2.16 (Q1 2018) покажет сообщение, сообщающее пользователю, что он ожидает, когда пользователь закончит редактирование при порождении редактора, в случае, если редактор открывается в скрытое окно или где-то в тени, и пользователь теряется.
Смотрите коммит abfb04d (07 декабря 2017 г.) и коммит a64f213 (29 ноября 2017 г.) от Lars Schneider (
larsxschneider
) .При поддержке: Junio C Hamano (
gitster
) .(Объединено Junio C Hamano -
gitster
- в коммите 0c69a13 , 19 декабря 2017 г.)Оригинальный ответ
Я только что проверил это с git версии 1.6.2.msysgit.0.186.gf7512 и Notepad ++ 5.3.1
Я предпочитаю не устанавливать переменную EDITOR, поэтому я попытался:
Это всегда дает:
Если я определю npp.bat в том числе:
и я печатаю:
Он работает только из сеанса DOS, но не из оболочки git .
(не то, что с механизмом конфигурации core.editor, скрипт с "
start /WAIT...
" в нем не будет работать, а только откроет новое окно DOS)В ответе Беннетта упоминается возможность избежать добавления сценария, но ссылаться непосредственно на саму программу между простыми кавычками . Обратите внимание на направление косых черт! Используйте
/
НЕ\
для разделения папок в имени пути!Или, если вы находитесь в 64-битной системе:
Но я предпочитаю использовать скрипт (см. Ниже): таким образом я могу играть с разными путями или разными вариантами без необходимости повторной регистрации a
git config
.Реальное решение (со сценарием) состояло в том, чтобы понять, что:
то, на что вы ссылаетесь в файле конфигурации, на самом деле является
/bin/sh
сценарием shell ( ) , а не сценарием DOS.Так что же работает:
с
C:/prog/git/npp.bat
:или
С этой настройкой я могу сделать '
git config --global --edit
' из DOS или Git Shell, или я могу сделать 'git rebase -i ...
' из DOS или Git Shell.Команды бота вызовут новый экземпляр notepad ++ (отсюда и
-multiInst
опция ') и будут ждать закрытия этого экземпляра, прежде чем продолжить.Обратите внимание, что я использую только «/», а не
\
«. И я установил msysgit, используя вариант 2. (Добавьтеgit\bin
каталог вPATH
переменную окружения, но не переопределяя некоторые встроенные инструменты Windows)Тот факт, что обертка notepad ++ называется .bat, не важен.
Было бы лучше назвать его 'npp.sh' и поместить его в
[git]\cmd
каталог (или в любой каталог, на который ссылается переменная среды PATH).Смотрите также:
lightfire228 добавляет в комментариях :
источник
git config
настройках.dir /X
эквивалент: "PROGRA~2
" для "Program Files (x86)
", что является хорошей привычкой, когда вы используете кроссплатформенные совместимые инструменты в Windows, что позволяет вам заполнять пробелы.Основываясь на ответе Даррена , чтобы использовать Notepad ++, вы можете просто сделать это (все в одной строке):
Очевидно, эта
C:/Program Files/Notepad++/notepad++.exe
часть должна быть путем к исполняемому файлу Notepad ++ в вашей системе. Например, это может бытьC:/Program Files (x86)/Notepad++/notepad++.exe
.Это работает как шарм для меня.
источник
Во всяком случае, я только что поиграл с этим и нашел следующее, чтобы работать хорошо для меня:
Я не думаю, что CMD любит одинарные кавычки, поэтому вы должны использовать двойные кавычки «для указания аргумента встроенной строки пробела».
Cygwin (который, я считаю, является основной платформой для Git's Bash), с другой стороны, любит и то,
'
и другое"
; вы можете указать CMD-подобные пути, используя/
вместо\
, если строка заключена в кавычки, т.е. в этом случае, используя одинарные кавычки.В
-m
переопределяет / указывает на использование нескольких редакторов , и нет никакой необходимости для%*
прикрепил на конце.источник
git config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -m"
работает как шарм для меня.editor = notepad
Изменить: После обновления до Vim 7.3, я пришел к выводу, что самый чистый и простой способ сделать это:
Добавьте основную папку Vim в свой путь (щелкните правой кнопкой мыши Мой компьютер → Свойства → Дополнительно → Переменные среды )
Запустите это:
Если вы сделаете это таким образом, то я вполне уверен, что это будет работать и с Cygwin.
Оригинальный ответ:
Даже с парой ответов, связанных с Vim, у меня были проблемы с настройкой работы с gVim под Windows (без использования командного файла,% EDITOR% или Cygwin).
То, к чему я в итоге пришел, красиво и чисто, и основано на нескольких решениях здесь:
Одна ошибка, которая заняла у меня некоторое время, это не обратная косая черта в стиле Windows. Это нормальные слеши.
источник
Program Files(x86)
, то вам нужно явно изменить путь.Notepad ++ работает просто отлично, хотя я предпочитаю придерживаться Notepad, -m или даже иногда встроенным «редактировать».
Проблема, с которой вы сталкиваетесь при использовании Notepad ++, связана с тем, как Git запускает исполняемый файл редактора. Мое решение состоит в том, чтобы установить переменную среды
EDITOR
для пакетного файла, а не для фактического исполняемого файла редактора, который выполняет следующие действия:/WAIT
приказывает сеансу командной строки прекратить работу до выхода из приложения, таким образом, вы сможете редактировать все, что душе угодно, пока Git с радостью ждет вас. % * передает все аргументы в пакетный файл через Notepad ++.источник
Комп !
Я рад, что использую Vim, но так как я пытаюсь представить Git компании, я хотел что-то, что у всех нас есть, и обнаружил, что WordPad, кажется, работает нормально (то есть Git ждет, когда вы закончите редактирование и закроете окно).
Это использует Git Bash на msysgit; Я не пробовал из командной строки Windows (если это имеет значение).
источник
Я также использую Cygwin в Windows, но с gVim (в отличие от терминального Vim ).
Чтобы сделать эту работу, я сделал следующее:
git_editor.bat
), который содержит следующее:"C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
git_editor.bat
по моемуPATH
.GIT_EDITOR=git_editor.bat
После этого
git commit
и т. Д. Правильно вызовет исполняемый файл gVim.ПРИМЕЧАНИЕ 1. Параметр
--nofork
gVim гарантирует, что он блокируется до тех пор, пока не будет написано сообщение о коммите.ПРИМЕЧАНИЕ 2: Кавычки вокруг пути к gVim требуются, если в пути есть пробелы.
ПРИМЕЧАНИЕ 3: Кавычки вокруг "% *" необходимы на случай, если Git пропустит путь к файлу с пробелами.
источник
Благодаря сообществу Stack Overflow ... и небольшому исследованию я смог заставить моего любимого редактора EditPad Pro работать в качестве основного редактора с msysgit 1.7.5.GIT и TortoiseGit v1.7.3.0 поверх Windows XP SP3. ..
Следуя совету выше, я добавил путь к скрипту Bash для редактора кода ...
Тем не менее, после нескольких неудачных попыток вышеупомянутых решений ... Я, наконец, смог заставить это работать. Согласно документации EditPad Pro, добавление флага / newinstance позволит оболочке ждать ввода редактора ...
The / newinstanceФлаг ' был ключевым в моем случае ...
источник
/newinstance
имели ровно одну косую черту. Это вполне нормально для приложений Windows. Если вы вызываете EditPad из оболочки UNIX, вам нужно будет использовать любой механизм, предлагаемый вашей оболочкой, чтобы избежать прямого слеша, чтобы он не рассматривал переключатель как абсолютный путь и передавал один буквенный слеш в командную строку EditPad./wait
переключатель в командной строке EditPad. Вы можете использовать/wait
с или без,/newinstance
чтобы контролировать, нужно ли открывать новое окно EditPad или использовать существующее окно повторно. Процесс, запущенный вашим скриптом, будет ожидать закрытия файла независимо от того, было ли окно создано или повторно использовано. EditPad Pro 6 и более ранние версии не поддерживают/wait
./wait
подсказку, сэр ... :)[core]
раздела .gitconfig для включения строкиeditor = "'C:/Program Files/Just Great Software/EditPad Lite 7/EditPadLite7.exe' //wait //newinstance"
.Для Атома можно сделать
и подобное для кода Visual Studio
который откроет код Atom или Visual Studio окно для фиксации,
или для возвышенного текста :
источник
Отредактируйте файл .gitconfig в папке c: \ Users \ YourUser и добавьте:
источник
Это один из симптомов больших проблем. Примечательно, что у вас есть что-то настройки
TERM=dumb
. Другие вещи, которые не работают должным образом, этоless
команда, которая говорит, что у вас нет полностью функционального терминала.Похоже, что это чаще всего вызвано тем, что в глобальных переменных среды Windows установлено значение TERM. Для меня проблема возникла, когда я установил Strawberry Perl, некоторая информация об этом находится в ошибке msysgit для этой проблемы. а также о нескольких решениях.
Первое решение - это исправить это в вашем ~ / .bashrc, добавив:
Вы можете сделать это из командной строки Git Bash следующим образом:
Другое решение, которое я и сделал, потому что меня не волнуют причины, по которым Strawberry Perl добавил
TERM=dumb
свои настройки среды, - это удалить и удалить,TERM=dumb
как указано в этом комментарии к сообщению об ошибке msysgit .Точно так же, если вы используете Strawberry Perl и заботитесь о клиенте CPAN или о чем-то подобном, вы можете оставить его
TERM=dumb
и использоватьunset TERM
в своем файле ~ / .bashrc, который будет иметь эффект, аналогичный приведенному выше для явного определения термина.Конечно, все остальные решения верны в том смысле, что вы можете использовать
git config --global core.editor $MYFAVORITEEDITOR
их, чтобы убедиться, что Git использует ваш любимый редактор, когда ему нужно запустить его для вас.источник
Vim / gVim хорошо работает для меня.
источник
У меня PortableGit 1.6 работал нормально, но после обновления до версии PortableGit 1.7 для Windows у меня были проблемы. Некоторые команды Git открывают Notepad ++. Exe нормально, но некоторые нет, особенно Git rebase ведет себя по-другому.
Проблема в том, что некоторые команды запускают процесс Windows cmd, а некоторые используют процесс Unix cmd. Я хочу дать атрибуты запуска редактору Notepad ++, поэтому мне нужно иметь собственный скрипт. Мое решение заключается в следующем.
Создайте скрипт для запуска соответствующего текстового редактора. Сценарий выглядит странно, но он обрабатывает как варианты Windows, так и Unix.
с: /PortableGit/cmd/git-editor.bat
Установите глобальную переменную core.editor
Сценарий был сохранен в папке git / cmd, поэтому он уже находится в пути к gitconsole. Это обязательно, поскольку полный путь может не работать должным образом.
Теперь я могу запустить мастер- команды git commit -a и git rebase -i . Попробуйте, если у вас есть проблемы с инструментом Git Windows.
источник
Я использую Git на нескольких платформах, и мне нравится использовать одинаковые настройки Git на всех них. (На самом деле, все мои конфигурационные файлы находятся под контролем релиза с помощью Git, и я поставил клон репозитория Git на каждую машину.) Решение, которое я придумал, заключается в следующем:
Я установил мой редактор на giteditor
Затем я создаю символическую ссылку под названием giteditor, которая находится в моем PATH . (У меня есть личный каталог bin , но в любом месте в PATH работает.) Эта ссылка указывает на мой текущий выбор редактора. На разных машинах и разных платформах я использую разные редакторы, так что это означает, что мне не нужно менять свою универсальную конфигурацию Git ( .gitconfig ), только ссылку, на которую указывает giteditor .
Символические ссылки обрабатываются каждой операционной системой, о которой я знаю, хотя они могут использовать разные команды. Для Linux вы используете ln -s . Для Windows вы используете встроенный в mklink cmd . У них разные синтаксисы (которые вы должны искать), но на самом деле все работает одинаково.
источник
error: cannot spawn giteditor: No such file or directory
По предложению VonC , это сработало для меня (сводило меня с ума):
Пропуск
-wait
может вызвать проблемы, особенно если вы работаете с Gerrit и меняете идентификаторы, которые необходимо вручную скопировать в конец вашего сообщения о коммите.источник
Мне нужно было выполнить оба следующих действия, чтобы Git запустил Notepad ++ в Windows:
Добавьте следующее в .gitconfig:
Измените ярлык, чтобы запустить оболочку Git Bash для запуска от имени администратора, а затем используйте ее для запуска оболочки Git Bash. Я догадывался, что пункт контекстного меню «Git Bash here» не запускал Notepad ++ с необходимыми разрешениями.
Выполнив оба вышеперечисленных, это сработало.
источник
Я использую Cygwin на Windows, поэтому я использую:
Это
-nw
дляno-windows
Eecs, т.е. не пытаться использовать X Window .Привязки клавиш Emacs не работают для меня из оболочки Windows, поэтому я бы использовал это только из оболочки Cygwin ... ( рекомендуется rxvt .)
источник
Это моя установка использовать Geany в качестве редактора для Git:
со следующим содержанием в
geany.bat
:Он работает как в консоли DOS, так и в msysgit.
источник
Похоже, что Git не найдет редактор, если в пути есть пробелы. Так что вам придется поместить пакетный файл, упомянутый в ответе Патрика, в путь без пробелов.
источник
Мне было трудно заставить Git сотрудничать с WordPad , Komodo. Править и почти со всеми другими редакторами, которые я им предоставляю. Большинство открыто для редактирования, но Git явно не ждет, когда произойдет сохранение / закрытие.
Как костыль, я просто делал то есть
держать вещи в движении. Это приводит к тому, что мои коммит-сообщения становятся немного короче, чем они, вероятно, должны быть, но очевидно, что есть кое-что, что нужно сделать над версией Git для Windows.
GitGUI тоже не так уж и плох. Требуется немного ориентации, но после этого это работает довольно хорошо.
источник
Я предпочитаю использовать Emacs. Настройка может быть немного сложнее.
c:\emacs
.c:\emacs\bin\addpm.exe
. Вам нужно щелкнуть правой кнопкой мыши и «Запуск от имени администратора», если вы используете Windows Vista или выше. Это поместит исполняемые файлы на вашем пути.(server-start)
где-нибудь в вашем.emacs
файле. Смотрите FAQ по Emacs для Windows, чтобы узнать, куда поместить ваш.emacs
файл.git config --global core.editor emacsclientw
Git теперь будет открывать файлы в рамках существующего процесса Emacs. Вам придется запустить этот существующий процесс вручную из
c:\emacs\bin\runemacs.exe
.источник
Мне удалось заставить работать версию среды, установив переменную EDITOR с помощью кавычек и
/
:источник
У меня была та же проблема, и я нашел другое решение. Я получал
У меня есть
VISUAL=ec
, и пакетный файл, вызванныйec.bat
на моем пути, который содержит одну строку:Это позволяет мне редактировать файлы из командной строки с помощью
ec <filename>
, аVISUAL
установка означает, что большинство unixy-программ тоже подхватывает его. Git кажется искать путь по- другому , чтобы мои другие команды , хотя - когда я посмотрел наgit commit
в Process Monitor я видел его смотреть в каждой папке на пути кec
иec.exe
, но не дляec.bat
. Я добавил еще одну переменную окружения (GIT_EDITOR=ec.bat
), и все было хорошо.источник
Я использую GitHub для Windows, который является хорошим визуальным вариантом. Но я также предпочитаю командную строку, поэтому, чтобы она работала при открытии репозитория в оболочке Git, я просто установил следующее:
который отлично работает
источник
Это работает для PowerShell и cmder 1.2 (при использовании с PowerShell). В файле
~/.gitconfig
:Как я могу сделать Sublime Text редактором по умолчанию для Git?
источник
Я нашел красивое простое решение, размещенное здесь - хотя может быть ошибка в пути, по которому вы должны скопировать файл subl, указанный автором.
Я использую Windows 7 x64, и мне пришлось поместить файл «subl» в мою
/Git/cmd/
папку, чтобы он работал.Это работает как шарм, хотя.
источник
Атом и Windows 10
Я набрал это в Git Bash:
Примечание: я изменил все
\
для/
. Я создал .bashrc в своем домашнем каталоге и использовал его/
для установки домашнего каталога, и он работал, поэтому я предположил, что/
это будет путь.атом-редактор мерзавец ГИТ-Баш окна-10
источник
Вот решение с Cygwin:
Если нет пути, не передайте путь
Если путь пуст, пропустите пустой путь
Если путь не пустой, конвертируйте в формат Windows.
Затем я установил эти переменные:
РЕДАКТОР позволяет скрипту работать с Git
GIT_EDITOR позволяет скрипту работать с командами Hub
Источник
источник
Это работает для меня, используя Cygwin и TextPad 6 (РЕДАКТИРОВАТЬ: он также работает с TextPad 5, пока вы вносите очевидные изменения в сценарий), и предположительно модель может быть использована и для других редакторов:
Файл
~/.gitconfig
:Файл
~/script/textpad.sh
:Этот однострочный также работает:
Файл
~/script/textpad.sh
(вариант 2):источник
Это сработало для меня:
Это оно!
ПРИМЕЧАНИЕ. Sublime Text 3 - это редактор, который я использовал для этого примера.
источник