Работа с несколькими конфигурациями git

Я начал работать в компании в качестве инженера-программиста на полную ставку. Поэтому мне пришлось клонировать множество проектов и начать фиксировать эти репозитории с помощью электронной почты компании.

Я уже определил свой личный email в качестве глобального git-конфига следующим образом

git config --global user.email "hasantezcan@personal.com"
Войти в полноэкранный режим Выйти из полноэкранного режима

Как вы можете видеть, мой личный email определен как глобальный конфиг, поэтому я должен определять email моей компании как локальный конфиг после каждого нового клонирования.

git config --local user.email "hasantezcan@company.com"
Вход в полноэкранный режим Выход из полноэкранного режима

Но иногда я забываю определить почту компании, и мне приходится сбрасывать свои коммиты и отправлять их заново. Это отнимает много времени!

Мне нужно постоянное решение для этой проблемы.

И я столкнулся с файлом .gitconfig!

.gitconfig

На самом деле, когда вы устанавливаете глобальный email и имя пользователя, вы изменяете файл .gitconfig, который находится в корневом каталоге пользователя. (каталог, который вы набираете cd и enter в подсказке терминала).

Итак, мне нужно объявить пространственный email в каталоге workspace/company. Потому что я загружаю весь репозиторий и веду все свои дела в нем.

Для решения этой проблемы мы можем использовать параметр includeIf в глобальном файле .gitconfig.

includeIf позволяет нам изменить конфигурационный файл для определенного каталога.

Итак, давайте приступим.

Во-первых, перейдите в каталог, где находятся проекты вашей компании. Допустим, это Workspace/CompanyName.

cd Workspace/CompanyName
Войдите в полноэкранный режим Выйдите из полноэкранного режима

Создайте файл .gitconfig.

touch .gitconfig
Войдите в полноэкранный режим Выйти из полноэкранного режима

Определите в нем конфиги, специфичные для вашей компании. После этого вы начнете использовать эти конфиги в этом каталоге.

// /Users/hasantezcan/.gitconfig
[user]
    name = hasantezcan
    email = hasantezcan@company.com
Войти в полноэкранный режим Выйти из полноэкранного режима

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

Итак, давайте объявим об этом;

Перейдите в домашний каталог вашего пользователя

cd 
pwd User/hasantezcan
Войдите в полноэкранный режим Выйти из полноэкранного режима

и обновите файл .gitconfig следующим образом.

[user]
    name = hasantezcan
    email = hasantezcan77@gmail.com
+[includeIf "gitdir:~/Workspace/CompanyName/"]
+   path = ~/Workspace/CompanyName/.gitconfig
Войти в полноэкранный режим Выйдите из полноэкранного режима

Вуаля! 🎉 Теперь вы можете продолжать фиксировать ваш opensource проект без проблем с неправильной фиксацией письма.

Ссылка

  • http://michaelwales.com/articles/make-gitconfig-work-for-you/
  • https://nicknisi.com/posts/git-includeif/

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *