Совершите толкание с 2 авторами - PullRequest
1 голос
/ 29 мая 2019

У меня установлены рабочие ssh-ключи в моей локальной системе. Теперь я также попытался отправить проект на мою личную учетную запись github.

Я изменил автора коммита во время коммита. На git log я вижу нового автора.

commit 73344e555da22600723a8302b7d476787f2668e3 (HEAD -> master)
Author: A G <laun.biz@gmail.com>
Date:   Wed May 29 00:35:41 2019 +0530

    First Commit

Я нажал, используя имя пользователя и пароль.

git push https://username:password@github.com/Laun/laun-api.git master

Теперь, когда я иду и проверяю Github, я вижу,

Laun and agupta-at-wellthie First Commit

Laun - мое личное имя пользователя и agupta-at-wellthie - это имя пользователя моей рабочей учетной записи. Что я сделал не так?

1 Ответ

5 голосов
/ 29 мая 2019

Я изменил автора коммита во время коммита.

Хорошо, но вы не изменили коммитер .

У каждого коммита есть не один, а два", который сделал этот коммит и когда" ставит на нем штамп: author , который можно переопределить с помощью --author в git commit и committer , который не имеет очевидного параметра командной строки для его переопределения.

Можно переопределить все шесть частей по отдельности через шесть переменных среды:

  • GIT_AUTHOR_NAME устанавливает часть имени автора строки
  • GIT_AUTHOR_EMAIL устанавливает адрес электронной почты в строке автора
  • GIT_AUTHOR_DATE устанавливает часть даты и времени в строке автора
  • GIT_COMMITTER_NAME устанавливает часть имени строки коммиттера
  • GIT_COMMITTER_EMAIL устанавливает часть адреса электронной почты для строки коммиттера
  • GIT_COMMITTER_DATE устанавливает часть метки даты и времени строки коммиттера

Если вы не перекрываете отдельные детали переменными среды, по умолчанию они:

  • author: вы, либо от --author, либо от автора в коммите, на который вы указали -c или -C.
  • коммиттер: вы.

В данном случае «вы» означает:

  • настройка от user.name, плюс
  • настройка от user.email, плюс
  • текущая дата и время, сообщаемые часами вашего компьютера.

Следовательно, один из способов переопределить все в новом коммите (один без информации, скопированной из некоторого существующего коммита) - это установить ваши user.name и user.email, либо через git config, либо через командную строку:

git -c user.name='A U Thor' -c user.email='thor@example.com' commit

Если вы добавите --author='Someone Else <else@example.com>', часть --author здесь переопределит строку автора, а строка коммиттера будет получена из двух -c частей (и текущей отметки времени).

Если вы хотите переопределить метку времени коммиттера, единственным механизмом является использование GIT_COMMITTER_DATE или изменение часов вашего компьютера (либо этого достаточно, и, конечно, переменная окружения проще и безопаснее, поскольку не будет мешать остальным). вашего компьютера).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...