Как вы выполняете код как другой пользователь?
Я хочу иметь возможность сделать это для script. Я по существу пересоздал всю историю версий некоторого кода в Git - в настоящее время он использует другую систему управления версиями. Мне нужно script, чтобы иметь возможность добавлять в commits к Git, сохраняя исходный автор (и дату).
Предполагая, что я знаю автора фиксации и дату/время изменения, была ли команда Git, которая позволяет мне это делать? Я предполагаю, что есть, потому что git -p4 делает что-то подобное. Я просто прошу лучшего способа сделать это.
Ответы
Ответ 1
Проверьте --author
параметр git commit
:
На странице :
--author=<author>
Заменить автора фиксации. Укажите явного автора используя стандартный формат A U Thor <[email protected]>
. В противном случае <author>
считается образцом и используется для поиска существующего совершить этот автор (т.е. rev-list --all -i --author=<author>
); автор фиксации затем копируется из первая такая фиксация найдена.
Ответ 2
Просто добавьте к этому: Опция --author
, упомянутая в принятом ответе, только переопределит автора, а не коммиттерную информацию о фиксации.
В большинстве случаев это правильное поведение, но если по какой-то причине вам необходимо вручную переопределить информацию <коммандера , используйте переменные среды GIT_COMMITTER_NAME
и GIT_COMMITTER_EMAIL
(есть GIT_COMMITTER_DATE
). См. Git-Internals-Environment-Variables
$ GIT_COMMITTER_NAME="New Name" GIT_COMMITTER_EMAIL="[email protected]" git commit --author="New Name <[email protected]>"
Это заставит коммит выглядеть так, как будто он был автором и, совершенным указанным пользователем.