У меня есть репозиторий git, где я совершал коммит с разных компьютеров, поэтому в итоге я оказался двумя разными участниками, но на самом деле это один пользователь - я. Как я могу объединить этих пользователей в одного?
Как объединить пользователей в репозиторий git?
Ответы (3)
Вы должны установить одинаковое имя пользователя и адрес электронной почты на обеих машинах:
git config --global user.name <name>
git config --global user.email <email>
Если вы хотите изменить существующие коммиты, имейте в виду, что вы будете переписывать историю.
Вы можете обратиться к этому ответу: Как переписать коммиттера имена в репозитории git?
.mailmap
в соответствии с предложением nulltoken. Он предназначен именно для этой цели, когда люди меняют подпись электронной почты с течением времени и в любом месте.
- person Philip Oakley; 06.01.2013
@SergiuDumitriu прав, добавляя все ваши электронные письма в свою учетную запись на https://github.com/settings/emails. Таким образом, вся ваша проделанная работа (из разных писем) будет связана с вашей учетной записью GitHub и собрана в разделе «Графики» каждого репозитория, в который вы внесли свой вклад.
Однако, чтобы это происходило и в вашем локальном репозитории на вашем компьютере, вам нужно будет зафиксировать .mailmap
файл в корне вашего репозитория, который будет связывать все ваши электронные письма. Once можно найти дополнительную информацию об этой функции git и формате файла в git shortlog документация.
Таким образом, запуск $ git shortlog -s -n
правильно объединит все ваши идентификаторы.
Если все, что вам нужно, это привязать все коммиты к вашей учетной записи GitHub, тогда достаточно добавить оба адреса электронной почты в свою учетную запись.
Если вы действительно хотите изменить все существующие коммиты, не делайте этого, если код на самом деле не использовался кем-либо еще, поскольку вы собираетесь переписывать каждую фиксацию, всю историю в ваш репозиторий.
Если вы все еще хотите это сделать, используйте git-filter-branch --env-filter
, как показано в этот ответ.