#git #github #version-control #environment-variables #tortoisegit
#git #github #контроль версий #переменные среды #tortoisegit
Вопрос:
Мне нужно настроить git в моей системе, где и GitHub, и TortoiseGit имеют свои собственные отдельные ~/.gitconfig
AKA глобальные .gitconfig
файлы. Из-за того, как работает git, кажется, что это невозможно сделать?
По сути, мне нужно, чтобы GitHub просматривал один .gitconfig
файл по умолчанию, который будет содержать ту же информацию, что и моя фактическая учетная запись GitHub, а затем TortoiseGit каким-то образом по умолчанию использует совершенно отдельный .gitconfig
файл, полностью отдельный от .gitconfig
файла GitHubs.
Если это может быть достигнуто каким-либо другим способом, например, с помощью альтернативы TortoiseGit, это тоже хорошо, если это стоит столько же, сколько TortoiseGit (бесплатно).
Комментарии:
1. Может быть, вы могли бы объяснить свою фактическую цель. Например, вы пытаетесь заниматься как личным, так и профессиональным развитием на одной машине?
2. В этом суть. Я думаю, мой вопрос можно было бы немного обобщить, пытаясь игнорировать конкретные приложения git и переформулировать в основном так: как у вас могут быть два глобальных
.gitconfig
экземпляра, которые вообще не пересекаются друг с другом? Использование, скажем, SVN или другого поставщика VCS для одного типа работы и git для работы, которая отправляется на GitHub, очевидно, является решением, но оно не идеально. Итак, хотите посмотреть, как это сделать с помощью git. Я не мог возражать против каких-либо других вопросов, касающихся нулевого взаимодействия между двумя экземплярами.3. В чем разница между этими двумя конфигурационными файлами?
4. @FatherTimeWarner, я полагаю, вы знаете, что вы можете иметь значения для каждого репозитория, опустив
--global
флаг?5. @Крис, да. Но когда вы открываете
.git
файл с помощью Git Gui и переходите «Правка»> «Параметры», глобальное (все репозитории) Имя пользователя и поля адреса электронной почты по-прежнему заполняются информацией о других работах. Или открыв.git
файл в Git Bash и перейдя$ git config --global --list
, вы также увидите информацию о других рабочих пространствах. Это то, что я пытаюсь решить, из-за чего информация о другом рабочем пространстве не отображается.
Ответ №1:
Последние версии git будут считывать файл $XDG_CONFIG_HOME/git/config
перед чтением ~/.gitconfig
— см. Справочную страницу git-config .
У вас может быть отдельный раздел конфигурации git, скажем ~/project-bla/git/config
, и запускаться export XDG_CONFIG_HOME=~/project-bla/
в одном сеансе терминала. Тогда этот сеанс всегда будет использовать эту конфигурацию. Обратите внимание, что настройки в ~/.gitconfig
будут перезаписывать эти настройки, поэтому этот файл должен содержать только настройки, которые применяются везде.
Однако это будет работать только для командной строки git; Я не думаю, что есть такая опция для TortoiseGit .
Однако самое простое решение — просто настроить все в файле конфигурации для конкретного репозитория (в разделе mygitrepository1/.git/config
). Эти настройки не будут мешать друг другу.
Единственным недостатком является то, что вы не можете обмениваться настройками между некоторыми, но не всеми репозиториями — настройки ~/.gitconfig
указаны для всех репозиториев, а конфигурация репозитория предназначена только для этого репозитория. Если вам нужна одна конфигурация для репозиториев a, b, c, а другая для репозиториев c, d, e, тогда вам нужно взломать что-то вроде решения, которое я изложил выше.