1.6 Введение — Первоначальная настройка Git
Теперь, когда Git установлен в вашей системе, самое время настроить среду для работы с Git под себя. Это нужно сделать только один раз — при обновлении версии Git настройки сохранятся. Но, при необходимости, вы можете поменять их в любой момент, выполнив те же команды снова.
В состав Git входит утилита git config , которая позволяет просматривать и настраивать параметры, контролирующие все аспекты работы Git, а также его внешний вид. Эти параметры могут быть сохранены в трёх местах:
Файл [path]/etc/gitconfig содержит значения, общие для всех пользователей системы и для всех их репозиториев. Если при запуске git config указать параметр —system , то параметры будут читаться и сохраняться именно в этот файл. Так как этот файл является системным, то вам потребуются права суперпользователя для внесения изменений в него.
/.config/git/config хранит настройки конкретного пользователя. Этот файл используется при указании параметра —global и применяется ко всем репозиториям, с которыми вы работаете в текущей системе.
Файл config в каталоге Git (т. е. .git/config ) репозитория, который вы используете в данный момент, хранит настройки конкретного репозитория. Вы можете заставить Git читать и писать в этот файл с помощью параметра —local , но на самом деле это значение по умолчанию. Неудивительно, что вам нужно находиться где-то в репозитории Git, чтобы эта опция работала правильно.
Настройки на каждом следующем уровне подменяют настройки из предыдущих уровней, то есть значения в .git/config перекрывают соответствующие значения в [path]/etc/gitconfig .
В системах семейства Windows Git ищет файл .gitconfig в каталоге $HOME ( C:\Users\$USER для большинства пользователей). Кроме того, Git ищет файл [path]/etc/gitconfig , но уже относительно корневого каталога MSys, который находится там, куда вы решили установить Git при запуске инсталлятора.
Если вы используете Git для Windows версии 2.х или новее, то так же обрабатывается файл конфигурации уровня системы, который имеет путь C:\Documents and Settings\All Users\Application Data\Git\config в Windows XP или C:\ProgramData\Git\config в Windows Vista и новее. Этот файл может быть изменён только командой git config -f <file> , запущенной с правами администратора.
Чтобы посмотреть все установленные настройки и узнать где именно они заданы, используйте команду:
Имя пользователя
Первое, что вам следует сделать после установки Git — указать ваше имя и адрес электронной почты. Это важно, потому что каждый коммит в Git содержит эту информацию, и она включена в коммиты, передаваемые вами, и не может быть далее изменена:
Опять же, если указана опция —global , то эти настройки достаточно сделать только один раз, поскольку в этом случае Git будет использовать эти данные для всего, что вы делаете в этой системе. Если для каких-то отдельных проектов вы хотите указать другое имя или электронную почту, можно выполнить эту же команду без параметра —global в каталоге с нужным проектом.
Многие GUI-инструменты предлагают сделать это при первом запуске.
Выбор редактора
Теперь, когда вы указали своё имя, самое время выбрать текстовый редактор, который будет использоваться, если будет нужно набрать сообщение в Git. По умолчанию Git использует стандартный редактор вашей системы, которым обычно является Vim. Если вы хотите использовать другой текстовый редактор, например, Emacs, можно проделать следующее:
В системе Windows следует указывать полный путь к исполняемому файлу при установке другого текстового редактора по умолчанию. Пути могут отличаться в зависимости от того, как работает инсталлятор.
В случае с Notepad++, популярным редактором, скорее всего вы захотите установить 32-битную версию, так как 64-битная версия ещё не поддерживает все плагины. Если у вас 32-битная Windows или 64-битный редактор с 64-битной системой, то выполните следующее:
Vim, Emacs и Notepad++ — популярные текстовые редакторы, которые часто используются разработчиками как в Unix-подобных системах, таких как Linux и Mac, так и в Windows. Если вы используете другой редактор или его 32-битную версию, то обратитесь к разделу Команды git config core.editor за дополнительными инструкциями как использовать его совместно с Git.
В случае, если вы не установили свой редактор и не знакомы с Vim или Emacs, вы можете попасть в затруднительное положение, когда какой-либо из них будет запущен. Например, в Windows может произойти преждевременное прерывание команды Git при попытке вызова редактора.
Настройка ветки по умолчанию
Когда вы инициализируете репозиторий командой git init , Git создаёт ветку с именем master по умолчанию. Начиная с версии 2.28, вы можете задать другое имя для создания ветки по умолчанию.
Например, чтобы установить имя main для вашей ветки по умолчанию, выполните следующую команду:
Проверка настроек
Если вы хотите проверить используемую конфигурацию, можете использовать команду git config —list , чтобы показать все настройки, которые Git найдёт:
Некоторые ключи (названия) настроек могут отображаться несколько раз, потому что Git читает настройки из разных файлов (например, из /etc/gitconfig и
/.gitconfig ). В таком случае Git использует последнее значение для каждого ключа.
Также вы можете проверить значение конкретного ключа, выполнив git config <key> :
Так как Git читает значение настроек из нескольких файлов, возможна ситуация когда Git использует не то значение что вы ожидали. В таком случае вы можете спросить Git об origin этого значения. Git выведет имя файла, из которого значение для настройки было взято последним:
Git-Config: core.editor
Interact with Git’s Files and Commands in Your Favorite Text Editor
![]()
![]()
The Pragmatic Programmers
One key to leveling up your Git game is to configure Git’s core.editor setting to reference the text editor that you’re happiest using.
Plenty of workaday Git activity takes place right on the command line: passing configuration values into git config , or writing commit messages with the -m flag after git commit . But sometimes it’s desirable or even necessary to command Git via a text file edited from within a text editor. Configuring Git to use the editor that you’re comfortable using is the gateway to writing more elaborate commit messages, manually editing patches for commit with git add -e , and even rewriting your repo’s history with git rebase -i .
On most systems, Git defaults to vi , vim , or another command-line editor. Here’s Darth Vader’s Git configuration file opened in the terminal editor vi after running the command git config —global —edit :
That default is probably fine for anyone familiar with or willing to learn a command-line editor. But if you prefer to get on with your work in a different text editor, you can configure Git to use your preferred editor instead.
Tip: Hitting ESC followed by typing :q! gets you out of editors like vi.
Launch Your Editor from the Command Line
Git will happily work with most standalone graphical editors, such as VS Code, Sublime Text, BBEdit, and many others. The only catch is that your editor must be capable of launching from the command line. Some editors require you to install specific tools to gain that functionality. Read your editor’s friendly manual, or run a quick Google search for the name of your editor and “open from terminal” to get yourself pointed in the right direction.
Whether installing tools is necessary or not, you can always run a quick sanity check to make sure your editor’s terminal command is in your path. Here’s an example with BBEdit:
If your command-line returns a “not found” message when you run which , you’ll need to double-check that you’ve in fact installed your editor’s terminal commands (or the editor itself!) and that your $PATH variable includes the path, like /usr/local/bin in the example above, where the editor’s terminal commands can be found.
Setting a Wait Option
The terminal command alone is rarely enough for Git, though: graphical editors often must be launched by Git using an option like —wait , sometimes shorthanded to -w like on Sublime Text. Those “wait” options keep Git from prematurely finishing a command while you’re still working on a Git file.
If you’re uncertain about required options for your preferred editor, another Google search for its name and “Git core.editor” should help. The Git Community Book maintains a list of popular editors and how they can be configured to work with Git, but do check with your editor’s documentation to make sure you’re passing in the correct switch.
Once you’ve confirmed that your editor’s executable is in your path and discovered the necessary switches or flags required for opening your editor from Git, the final step is to let Git know to use your editor of choice via git config . If you’re a VS Code user, for example, you can set core.editor to take VS Code’s code command with its —wait switch:
After you’ve configured core.editor to your liking, you’ll find that any command that triggers Git to open an editor will now open in your editor of choice. Here is the same git config —global —edit example as above, but now with Vader’s configuration file opened in the macOS text editor Nova:
While your file remains open, your command line will display the message “hint: Waiting for your editor to close the file…” That message disappears as soon as you’ve saved and closed the file, leaving Git to execute your commands as expressed in the file.
Correct Typos in Your Commits
With Git’s core.editor variable now configured, you can confidently run git commit without any arguments and write your commit directly in your favorite editor. That change will enable you to go beyond subject-line-style commit messages and write manifesto-length bodies for your commits as well.
And even if you opt to write your original commit message on the command line with the -m flag, you’ll now find it very easy to fix pesky, inevitable typos by running git commit —amend . First, let’s introduce a goof:
Oops. Let’s fix that “Udpate”:
That will now open the commit in your preferred editor:
Once you correct “Udpate” to “Update,” save the file and quit. You can then inspect the history of the changed commit back on the command line:
Note that a changed commit message leads to a changed commit hash, so be sure to think twice about editing commit messages for any commits you’ve already pushed to a public remote.
Commit messages might be the most obvious and embarrassing place to make typos in Git, but other typos will slow things down when you’re running Git commands themselves. In the next post, we’ll look at different reasons for configuring Git with your own custom aliases—including wiring up your own idiosyncratic typos to run the Git commands you intend.
Karl Stolley
Keep Up with Articles, Books, and More by Karl Stolley
Karl’s book, Programming WebRTC: Build Real-Time Streaming Applications for the Web, is available in beta from The Pragmatic Bookshelf. You can save 35 percent with promo code git_config_2022 now through October 15, 2022. Promo codes are not valid on prior purchases.
Pro Git
Теперь, когда Git установлен в вашей системе, самое время настроить среду для работы с Git’ом под себя. Это нужно сделать только один раз — при обновлении версии Git’а настройки сохранятся. Но, при необходимости, вы можете поменять их в любой момент, выполнив те же команды снова.
В состав Git’а входит утилита git config, которая позволяет просматривать и настраивать параметры, контролирующие все аспекты работы Git’а, а также его внешний вид. Эти параметры могут быть сохранены в трёх местах:
1) C:\Program Files (x86)\Git\etc\gitconfig (У вас может быть другой путь, это зависит от того куда вы установили Git.) Этот файл содержит значения, общие для всех пользователей системы и для всех их репозиториев. Если при запуске git config указать параметр —system, то параметры будут читаться и сохраняться именно в этот файл.
2) Файл .gitconfig в домашнем каталоге пользователя %userprofile% Этот файл хранит настройки конкретного пользователя. Этот файл используется при указании параметра —global.
3) Файл config в каталоге Git’а (т.е. .git\config) в том репозитории, который вы используете в данный момент, хранит настройки конкретного репозитория. Этот файл используется при указании параметра —local.
Настройки на каждом следующем уровне подменяют настройки из предыдущих уровней, то есть значения в .git/config перекрывают соответствующие значения в /etc/gitconfig.
Задаем имя пользователя
Первое, что вам следует сделать после установки Git’а, — указать ваше имя и адрес электронной почты. Это важно, потому что каждый коммит в Git’е содержит эту информацию, и она включена в коммиты, передаваемые вами, и не может быть далее изменена:
$ git config —global user.name «John Doe»
$ git config —global user.email johndoe@example.com
Опять же, если указана опция —global, то эти настройки достаточно сделать только один раз, поскольку в этом случае Git будет использовать эти данные для всего, что вы делаете в этой системе. Если для каких-то отдельных проектов вы хотите указать другое имя или электронную почту, можно выполнить эту же команду без параметра —global в каталоге с нужным проектом .
Проверка настроек
Если вы хотите проверить используемую конфигурацию, можете использовать команду git config —list, чтобы показать все настройки, которые Git найдёт:
$ git config —list
user.name=John Doe
user.email=johndoe@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
.
Некоторые ключи (названия) настроек могут появиться несколько раз, потому что Git читает один и тот же ключ из разных файлов (например из \etc\gitconfig и %userprofile%\.gitconfig). В этом случае Git использует последнее значение для каждого ключа.
Также вы можете проверить значение конкретного ключа, выполнив git config <key>:
$ git config user.name
John Doe
Ну и как получить помощь по командам Git
Если вам нужна помощь при использовании Git, есть три способа открыть страницу руководства по любой команде Git:
Например, так можно открыть руководство по команде config
$ git help config
Эти команды хороши тем, что ими можно пользоваться всегда, даже без подключения к сети.
Выбор редактора
Теперь, когда вы указали своё имя, самое время выбрать текстовый редактор, который будет использоваться, если будет нужно набрать сообщение в Git’е. По умолчанию Git использует стандартный редактор вашей системы, которым обычно является Vim. Но по мне это редактор для мазохистов.
Поэтому я решил настроить Notepad++ как редактор сообщений к коммитам. Notepad ++ можно скачать тут. Я его выбрал потому что он нормально работает с юникодом, ну и вообще не плохой бесплатный текстовый редактор и портабельный к тому же. Вы можете выбрать любой другой.
Я скачал портабельную версию и разархивировал. Теперь его надо добавить как редактор в Git. Для этого сперва добавляем путь к каталогу куда разархивировали Notepad++ в системную переменную PATH .
И затем в git даем команду
$ git config —local core.editor «notepad++.exe -multiInst -nosession -notabbar -noPlugin»
После этой команды в секции [core] локального файла конфига .git/config появится такая строчка
editor = notepad++.exe -multiInst -nosession -notabbar -noPlugin
В принципе эту строчку можно добавить туда и в ручную в любом текстовом редакторе.
Есть и другой способ, без использования команды core.editor , но путь все же должен быть прописан в переменной PATH. Можно добавить переменную окружения windows GIT_EDITOR и прописать туда строчку notepad++.exe -multiInst -nosession -notabbar -noPlugin .
![]()
В данном случае это будет работать для всех проектов данного пользователя. Так как это пользовательская переменная. Если же такую же переменную сделать системной, то она будет работать для всех пользователей. Хочу еще раз отметить, что при использовании переменной GIT_EDITOR нет необходимости давать команду настроек core.editor .
Для чего служат ключи запуска notepad++ в этой команде можете почитать в справке к редактору.
Есть другие два способа добавить Notepad++ как редактор коммитов без изменения системной переменной PATH .
Например, если вы разархивировали его в папку C:\Notepad++
то в файл конфига в секцию [core] надо добавить строчку
editor =\»C:/Notepad++/notepad++.exe\» -multiInst -nosession -notabbar –noPlugin
Так тоже можно сделать, дабы не захламлять переменную PATH.
Ну и используя переменную окружения Windows GIT_EDITOR, но в данном случае в ней уже надо будет прописать полный путь к Notepad++ . Это тоже способ без использования переменной PATH.
«C:\\Notepad++\\notepad++.exe» -multiInst -nosession –notabbar
![]()
Внимательней с этой строкой. В отличие от предыдущего использования переменной GIT_EDITOR нужны кавычки и двойные слеши .
В Windows 8.1 Pro x64 у меня почему-то строчка запуска как Windows 7 не сработала, но я ее чуток переделал и стала работать вот такая строка
«C:\\Notepad++\\notepad++.exe» -notabbar -multiInst -nosession -noPlugin
В ходе экспериментов при всплытии по команде git commit, она предлагала то создать файл –notabbar или noPlugin. Но после того как я поправил строчку описанным выше способом все заработало нормально.
Итого есть аж четыре способа как настроить внешний редактор Notepad++ и Git.
What text editor is git using?
When I enter git commit into command prompt, it changes to some kind of text editor in that same command prompt window. What is this text editor? Is it Vim? Emacs? I have downloaded neither of these.
I want to know what it’s called so that I can look up how to use it. I was unable to even exit the editor after typing a message. A Google search suggested that in Vim I should press Esc then :wq . That worked, but it hardly seems discoverable.