如何将一个具有提交历史的分支复制到另一个新的仓库?

How to copy one branch with commit history to another new repo?

我想从 git 存储库 A 克隆一个分支到新的 git 存储库 B。希望包含所有提交历史记录。

http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/之后一切正常。但是当我尝试推送到远程时,发生了错误。

remote: ERROR: invalid comitter email: someone@hehe.com
...
remote: valid email addresses:
...
remote: error: hook declined to update refs/heads/mybranch
To ssh://git@git.internal/myrepo.git
 ! [remote rejected] mybranch -> mybranch (hook declined)
error: failed to push some refs to 'ssh://git@git.internal/myrepo.git'

我知道过去的所有提交都是由另一个人完成的,他不再在有效电子邮件地址列表中。如何忽略这种验证?还有其他方法吗?

更新

要求我们的管理员更改远程设置。现在一切正常。

你应该忽略钩子:

git push --no-verify

来自 git-push documentation:

--[no-]verify Toggle the pre-push hook (see githooks[5]). The default is --verify, giving the hook a chance to prevent the push. With --no-verify, the hook is bypassed completely.

EDIT 如@torek 所述,标签 [remote rejected] 表示问题来自远程。因此,在本地设置标志无济于事。您需要查看 git.internal 服务器上的设置。