Я начал работать в компании в качестве инженера-программиста на полную ставку. Поэтому мне пришлось клонировать множество проектов и начать фиксировать эти репозитории с помощью электронной почты компании.
Я уже определил свой личный 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/