Как вы делаете код другим пользователем? - PullRequest
101 голосов
/ 13 сентября 2010

Я хочу иметь возможность сделать это для скрипта.Я по сути воссоздаю всю историю версий некоторого кода в Git - в настоящее время он использует другую систему контроля версий.Мне нужно, чтобы скрипт мог добавлять коммиты в Git при сохранении исходного автора коммита (и даты).

Если я знаю автора коммита и дату / время внесения изменений,Команда Git, которая позволяет мне сделать это?Я предполагаю, что есть, потому что git-p4 делает нечто подобное.Я просто прошу лучший способ сделать это.

Ответы [ 2 ]

134 голосов
/ 13 сентября 2010

Проверьте параметр --author для git commit:

со страницы руководства :

--author=<author>

Переопределить автора коммита. Укажите явного автора используя стандартный формат A U Thor <author@example.com>. Иначе <author> предполагается шаблоном и используется для поиска существующего совершить этим автором (т.е. rev-list --all -i --author=<author>); автор коммита затем копируется из первый такой коммит найден.

89 голосов
/ 19 мая 2015

Просто добавьте к этому: параметр --author, упомянутый в принятом ответе, переопределит только author , а не committer информацию о коммите.

Это правильное поведение в большинстве случаев, но если по какой-то причине вам необходимо вручную переопределить информацию о коммитере , используйте переменные окружения GIT_COMMITTER_NAME и GIT_COMMITTER_EMAIL (есть GIT_COMMITTER_DATEтакже).См. Git-Internals-Environment-Variables

$ GIT_COMMITTER_NAME="New Name" GIT_COMMITTER_EMAIL="name@email.com" git commit --author="New Name <name@email.com>"

Это сделает коммит похожим на то, что он был создан и зафиксирован указанным пользователем.

...