Переопределить настроенного пользователя для одиночной фиксации git
Я пытаюсь выполнить проект github.com с моего рабочего ноутбука, который уже настроен для сервера git, Есть ли способ совершить определение разных учетных данных автора, возможно использование другого файла конфигурации или командной строки orther?
Я пробовал использовать
--author="My Name <[email protected]>"
и я получил сообщение:
Committer: unknown <[email protected]>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
git config --global user.name "Your Name"
git config --global user.email [email protected]
After doing this, you may fix the identity used for this commit with:
git commit --amend --reset-author
но он по-прежнему не обновил мое имя пользователя для перехода к проекту github.com. Есть ли что-нибудь еще, что я могу попробовать, и возможно ли это?
Ответы
Ответ 1
Во-первых, автор не обязательно совпадает с коммиттером. Git отслеживает оба.
Чтобы установить, какое имя использовать только для этого хранилища, вы можете сделать:
git config user.name "Your Name"
git config user.email "Your email"
Обратите внимание на отсутствие опции --global
. Это установит конфигурацию только в этом хранилище.
В качестве альтернативы вы можете сделать это только для одной команды, используя -c
:
git -c "user.name=Your Name" -c "user.email=Your email" commit ...
Но я думаю, что лучше использовать параметры конфигурации выше.
Ответ 2
Попробуйте добавить это к вашей команде git:
git -c [email protected] -c user.name='Your Name'
Это нормально для одного выстрела, но вы можете предпочесть сохранить его в файле .git/config локального репо, которое вы клонировали из git. Это можно сделать, запустив git config
(no -global или -system, чтобы сделать его "локальным для репо" ) или отредактировав .git/config
(это тот же синтаксис, что и ~/.gitconfig
Ответ 3
Вы также можете установить переменные среды GIT_COMMITTER_NAME
, GIT_COMMITTER_EMAIL
, GIT_AUTHOR_NAME
и GIT_AUTHOR_EMAIL
для каждой оболочки или даже для каждой команды.
Ответ 4
Я считаю, что вы можете запустить:
git config user.name "Your Name"
git config user.email [email protected]
для разных частей git. Попробуйте открыть папку, где выполняется работа для репо на сервере github.
Убедитесь, что вы видите папку .git в этой рабочей папке. Теперь откройте эту папку в Terminal/Console/CommandPrompt и попробуйте изменить имя пользователя и адрес электронной почты для этой папки, только выполнив указанные выше команды.
Изменяя это, вы можете теперь иметь доступ к серверу GitHub.
Посмотрите здесь: https://help.github.com/articles/setting-your-username-in-git
Кроме того, я считаю, что есть способ нажать на удаленное репо, используя имя пользователя и пароль github в самой команде, но я не цитирую его, потому что это не сработало для меня.
Ответ 5
Следуя за Джесси Глик, ответьте здесь с расширенной реализацией, потому что ИМО его предложение - лучший способ пойти на это.
Добавьте ниже в свой .bash_profile. Он предложит вам пользователя при первом запуске любой команды git в активной оболочке. Затем он запомнит пользователя для всех последующих прогонов.
(очевидно, перекрестная ссылка на входное значение пользователя для точных имен и адресов электронной почты для различных значений git auther/name в блоке case и обновления назначений по мере необходимости)
git() {
echo "Running BETTER git..."
if [ -z "$GIT_COMMITTER_NAME" ]; then
while true; do
read -p "Git User: " UNAME
case $UNAME in
user1 ) break;;
user2 ) break;;
* ) echo "Invalid User";;
esac
done
GIT_COMMITTER_NAME=$UNAME
export GIT_COMMITTER_NAME
[email protected]
export GIT_COMMITTER_EMAIL
GIT_AUTHOR_NAME=$GIT_COMMITTER_NAME
export GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL=$GIT_COMMITTER_EMAIL
export GIT_AUTHOR_EMAIL
fi
echo " using git user: $GIT_AUTHOR_NAME / $GIT_AUTHOR_EMAIL"
/usr/bin/git "[email protected]"
}