Подтвердить что ты не робот

Переопределить настроенного пользователя для одиночной фиксации 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. Есть ли что-нибудь еще, что я могу попробовать, и возможно ли это?

4b9b3361

Ответ 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]"
}