В этой книге было показано больше десятка различных команд Git и мы приложили много усилий, чтобы рассказать вам о них, выстроив некий логический порядок, постепенно внедряя команды в сюжет.
Но такой подход «размазал» описания команд по всей книге.
В этом приложении мы пройдёмся по всем командам, о которых шла речь, и сгруппируем их по смыслу.
Мы расскажем, что делает каждая команда и укажем главы в книге, где эта команда использовалась.
Настройка и конфигурация
Две довольно распространённые команды, используемые как сразу после установки Git, так и в повседневной практике для настройки и получения помощи — это config
и help
.
git config
Сотни вещей в Git работают без всякой конфигурации, используя параметры по умолчанию.
Для большинства из них вы можете задать иные умолчания, либо вовсе использовать собственные значения.
Это включает в себя целый ряд настроек, начиная от вашего имени и заканчивая цветами в терминале и вашим любимым редактором.
Команда config
хранит и читает настройки в нескольких файлах, так что вы можете задавать значения глобально или для конкретных репозиториев.
Команда git config
используется практически в каждой главе этой книги.
В разделе Первоначальная настройка Git главы 1 мы использовали эту команду для указания имени, адреса электронной почты и редактора ещё до того, как начать использовать Git.
В разделе Псевдонимы в Git главы 2 мы показали, как можно использовать её для создания сокращённых вариантов команд с длинными списками опций, чтобы не печатать их все каждый раз.
В разделе Перебазирование главы 3 мы использовали config
чтобы задать поведение --rebase
по умолчанию для команды git pull
.
В разделе Хранилище учётных данных главы 7 мы использовали её для задания хранилища ваших HTTP-паролей.
В разделе Разворачивание ключевых слов главы 7 мы показали как настроить фильтры содержимого для данных, перемещаемых между индексом и рабочей копией.
И наконец, этой команде посвящён практически весь раздел Конфигурация Git главы 8.
Команды git config core.editor
Согласно инструкциям, приведённым в разделе Выбор редактора главы 1, большинство редакторов может быть установлено следующим образом:
Таблица 4. Исчерпывающий список команд по настройке core.editor
Редактор | Команда |
---|---|
Atom |
|
BBEdit (Mac, with command line tools) |
|
Emacs |
|
Gedit (Linux) |
|
Gvim (Windows 64-bit) |
|
Kate (Linux) |
|
nano |
|
Notepad (Windows 64-bit) |
|
Notepad++ (Windows 64-bit) |
|
Scratch (Linux) |
|
Sublime Text (macOS) |
|
Sublime Text (Windows 64-bit) |
|
TextEdit (macOS) |
|
Textmate |
|
Textpad (Windows 64-bit) |
|
Vim |
|
Visual Studio Code |
|
VSCodium (Free/Libre Open Source Software Binaries of VSCode) |
|
WordPad |
|
Xi |
|
Примечание |
Если у вас установлена 32 битная версия редактора в 64 битной системе, то путь к ней будет содержать |
git help
Команда git help
служит для отображения встроенной документации Git о других командах.
И хотя мы приводим описания самых популярных команд в этой главе, полный список параметров и флагов каждой команды доступен через git help <command>
.
Мы представили эту команду в разделе Как получить помощь? главы 1 и показали как её использовать, чтобы найти больше информации о команде git shell
в разделе Настраиваем сервер главы 4.
После того, как вы настроили имя пользователя,
необходимо выбрать текстовой редактор для
отправки сообщений в Git.
Давайте для примера настроим для Windows текстовой редактор Notepad++.
Для этого в терминале после команды core.editor
нужно открыть двойные кавычки, затем указать в одинарных кавычках
полный путь к файлу, в котором находится выбранный
вами текстовой редактор. Добавляем опции
-multiInst
, --notabbar
, -nosession
и -noPlugin
и закрываем двойные кавычки:
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Очень важный нюанс состоит в том, что выбранный редактор
должен быть уже установлен в вашей операционной системе. Если же
вы укажете несуществующий редактор, то в дальнейшем
могут происходить неожиданные сбои в работе Git.
Поэтому вначале установите текстовой редактор и уже после
этого указывайте его в настройках.
Настройте для Git текстовой редактор,
подходящий к вашей операционной системе.
Git требует, чтобы каждый коммит сопровождался текстовым пояснением. Для краткого пояснения вполне достаточно ключа -m, но назначение коммита не всегда можно описать одним словосочетанием. В этом случае использовать ключ -m неудобно.
Вообще грамотное составление коммитов и комментариев к ним — отдельная тема, которую мы не будем здесь обсуждать. Я хотел прежде всего сосредоточиться на инструментарии. Точнее поделиться своим личным опытом поиска оного в среде Windows.
По умолчанию, при отсутствии ключа -m, Git запускает редактор Vim, или его аналог (речь о Git, входящем в комплект MinGW Distro). Это очень специфический редактор, и разобраться в нём не просто. Поэтому желание заменить его на что-нибудь более дружелюбное — объяснимо. Но на что?
Данный вопрос не нов. В частности его обсуждение можно найти на форуме. Там предлагается множество различных вариантов. Некоторые из них я проверил лично и хочу поделиться своим опытом. Чтобы вам не пришлось повторять мои ошибки.
В Linux для составления описания коммитов я обычно использую GNU Nano. Простой, понятный и без изысков. Он портирован на Windows. Но… Версия 1.0.8 наотрез отказалась работать на моей системе (Windows 10). Более новая версия 2.5.3 нормально запустилась. Но воспринимать кириллический ввод отказалась, выдавая ошибку «Unknown Command».
Этот баг обсуждается здесь. Последнее сообщение гласит: «I have no way to support nano on Windows», или в переводе на русский: «у меня нет возможности поддерживать nano в среде Windows». Так что исправления не ждите. Таким образом: если вы используете исключительно латиницу, GNU Nano вам подойдет (но не ждите новых версий). Если же вы хотите использовать и кириллицу, то не тратьте на него своего времени. Он только для Linux (может быть Mac).
Дальше на очереди Notepad и WordPad. Родные для Windows приложения. Но в этом и их беда. Как показали опыты, они плохо дружат с UTF-8, а именно её использует Git для хранения комментариев. Поэтому также не подходят. Возможно их как-то можно подружить, но я не стал заморачиваться.
Взглянем на Notepad++. Первоначально я использовал portable версию (это было моей ошибкой). Он нормально запускается, поддерживает и кириллицу и UTF-8, но не сохраняет комментарий. То есть вы вводите, сохраняете, закрываете редактор и Git вам выдает, что вы ничего не ввели, поэтому коммит не создан.
Потом я решил попробовать с основной версией. И вот тут всё заработало как часы. Теперь кратко о том, как их подружить с Git. Для этого нужно выполнить команду:
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Давайте разберем эту строку:
config — указывает Git, что мы читаем или изменяем его настройку.
ключ global — говорит о том, что настройка меняется для всех репозиториев текущего пользователя
core.editor — сама настройка, задающая команду запуска текстового редактора. Новое значение настройки задается в двойных кавычках после имени настройки. Здесь указывается полный путь к исполняемому файлу редактора (в одинарных кавычках) и дополнительные ключи его запуска. Они пояснены ниже:
-multInst — создать отдельный экземпляр приложения. Это на тот случай, если у вас уже запущен Notepad++.
-notabbar — отключить вкладки. Поскольку мы собираемся работать с одним файлом, они нам не нужны.
-nosession — создать новый сеанс. По умолчанию, Notepad++ открывает те файлы, которые были открыты в нём в момент его закрытия. Здесь нам это не нужно.
-noPlugin — отключить плагины.
Резюме
Таким образом, после длительных поисков я пришел к Notepad++. Это не значит, что он — единственный вариант. Это тот инструмент, который подошел лично мне. Вам же может подойти и другой инструмент. Главное, чтобы он был удобен для вас. Цель этой статьи — предупредить вас о тех подводных камнях, с которыми вы можете столкнуться при поиске текстового редактора для Git.
Make Notepad Git’s editor
For the most part, developers who are new to the Git tool don’t have too much of a problem mastering the five basic git commands every beginner should learn. But one speed-bump that does tend to trip up new users is the fact that the Git editor defaults to Vim. For those with a Windows background, figuring out how to add a comment, save the entry and then exit the Vim Git editor can be frustrating, if not a little scary.
Notepad++ is often preferred over Vim as the default Git editor for commit text.
Changing the Git editor to Notepad++
Fortunately, it’s not that difficult to change the default Git editor to a text editor of your choosing, be it Notepad, EditPad or my personal favorite, Notepad++. All you have to do is issue a git config command and specify the core editor of your choice. The config command to change the default Git editor to Notepad++ is as follows:
gitbeginner@devops MINGW32 /c/ change git/ default editor
$ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
It should be noted that I issued this command on a Windows 32-bit machine. Obviously, on an x64 machine, Notepad++ would be found under the Program Files (x86) directory. The bottom line is that when you run this command, make sure you provide the correct location of your text editor of choice.
This change to the default Git text editor was specified to take place at the global Git scope, so the change can be inspected by opening the .gitconfig file found under the user’s home directory. Upon inspection, you will note that a new core heading has been added to the Git configuration file and the editor property has been set to Notepad++:
How to change the default Git editor to Notepad++ in the global .gitconfig file
[core] editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin
Using Notepad++ as the Git editor
As far as the switches after the listing of the executable, those are all Notepad++ specific and have nothing to do with Git. These popular switches ensure that a new Notepad window is displayed, rather than just adding a new tab to an existing Notepad++ instance that might already be running. The switches also ensure that no plugins are loaded into Notepad++, which might make loading Notepad++ faster while avoiding any problems with misconfigured plugins. The -nosession switch tells Notepad++ not to bring up any files from previous sessions, ensuring that the current commit is the only thing the text editor displays.
The next time you issue a git commit without specifying a commit message, Notepad++ will pop up. Just add a message, click save and close the window. The message you typed in will then become part of the history of the git branch upon which you are working.
Notepad++ and Git Installed together
It’s worth noting that recent editions of the DVCS tool now have an option during the install to configure Notepad Plus Plus as Git’s default editor. The following video demonstrates the process of configuring Git and Notepad++ during the initial install. Of course, the end result is the same, with the following entry being made to the Git config file:
[core] editor = \"C:\\\\Program Files\\\\Notepad++\\\\notepad++.exe\" -multiInst -notabbar -nosession -noPlugin
Last Updated :
25 Jun, 2024
Configuring the core editor for Git operations such as commits and rebase sequences can enhance your productivity and ensure consistency in your workflow. By default, Git uses the system’s default text editor, but this can be customized to suit your preferences. This article will guide you through configuring the core editor for commits and the sequence editor for interactive rebase operations.
Understanding the Role of Git Editors
1. Core Editor
The core editor is primarily used for writing commit messages. When you run git commit without the -m option to specify a commit message, Git opens the core editor for you to write the message.
2. Sequence Editor
The sequence editor is used during interactive rebase sessions. When you run git rebase -i, Git opens the sequence editor for you to edit the rebase instructions.
3. Configuring the Core Editor
You can configure the core editor by setting the core.editor variable in your Git configuration. Here’s how you can do it for various popular editors:
4. Using Vim
Vim is a highly configurable text editor that is popular in the programming community. To set Vim as your core editor:
git config --global core.editor "vim"
5. Using Nano
Nano is a simple, user-friendly text editor. To set Nano as your core editor:
git config --global core.editor "nano"
6. Using Visual Studio Code
Visual Studio Code (VS Code) is a popular choice for developers. To set VS Code as your core editor:
git config --global core.editor "code --wait"
The —wait flag is essential because it tells Git to wait until you close the editor before continuing.
7. Using Sublime Text
Sublime Text is another popular editor. To set Sublime Text as your core editor:
git config --global core.editor "subl -n -w"
The -n flag opens a new window, and -w tells Git to wait until the window is closed.
Configuring the Sequence Editor
The sequence editor is configured using the sequence.editor variable. This is similar to configuring the core editor but specifically for rebase operations.
1. Using Vim as the Sequence Editor
git config --global sequence.editor "vim"
2. Using Nano as the Sequence Editor
git config --global sequence.editor "nano"
3. Using Visual Studio Code as the Sequence Editor
git config --global sequence.editor "code --wait"
4. Using Sublime Text as the Sequence Editor
git config --global sequence.editor "subl -n -w"
Example
Here are some example commands to set both the core editor and the sequence editor to Visual Studio Code:
git config --global core.editor "code --wait"
git config --global sequence.editor "code --wait"
Or, if you prefer Nano:
git config --global core.editor "nano"
git config --global sequence.editor "nano"
Verifying Your Configuration
After configuring your editors, you can verify your settings using the following commands:
git config --global --get core.editor
git config --global --get sequence.editor
These commands will display the current editor settings for your Git configuration.