推拉时发生Git错误
我创建了一个项目,并使用以下信息初始化git推拉时发生Git错误,git,github,Git,Github,我创建了一个项目,并使用以下信息初始化git git config user.name 'name' git config user.email 'username@gmail.com' 然后将代码推送到github,我使用了git日志,发现电子邮件地址错误,所以我用以下内容更新它 git filter-branch --commit-filter ' if [ "$GIT_AUTHOR_EMAIL" = "username@gmail.com" ]; then GIT_AUTHOR_
git config user.name 'name'
git config user.email 'username@gmail.com'
然后将代码推送到github,我使用了git日志
,发现电子邮件地址错误,所以我用以下内容更新它
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_EMAIL" = "username@gmail.com" ];
then
GIT_AUTHOR_EMAIL="the.username@gmail.com";
git commit-tree "$@";
else
git commit-tree "$@";
fi' -f HEAD
所有提交都已更改,我再次将其推送到github,但失败并出错
! [rejected] master -> master (non-fast-forward)
让我拉,我拉,但它显示出另一个错误
* branch master -> FETCH_HEAD
fatal: refusing to merge unrelated histories
如何修复此问题?您已使用
过滤器分支
命令重写了整个历史记录,并且该历史记录与GitHub中的历史记录不同。您可以使用git push-f
强制推送本地提交,它将覆盖您在GitHub中拥有的任何内容。您已使用过滤器分支
命令重写了整个历史记录,并且该历史记录与您在GitHub中拥有的历史记录不同。您可以使用git push-f强制推送本地提交,它将覆盖您在GitHub中拥有的任何内容。您使用过滤器分支重写了存储库历史记录。当您推送到github时,它会注意到您的更改将覆盖旧的历史记录。为了防止你意外地失去历史,它拒绝这样做
通常,当其他人在您之前推动新的更改时,就会发生这种情况。使用更改推送历史记录将覆盖其更改。因此,错误消息建议您合并它们的更改,然后推送组合的历史记录
发件人:
git推原始主机到![已拒绝]主控->主控(非快进)错误:无法将某些引用推送到“”,以防止丢失历史记录,已拒绝非快进更新。请在再次推之前合并远程更改(例如“git pull”)。有关详细信息,请参阅“git推送--帮助”中的“关于快进的说明”部分
但是,对于您的情况,建议不适用。您不希望将重写的历史记录与旧历史记录合并。你真的想失去过去的历史。在这种情况下,您可以使用Git push--force origin master告诉Git。您使用filter branch重写了存储库历史记录。当您推送到github时,它会注意到您的更改将覆盖旧的历史记录。为了防止你意外地失去历史,它拒绝这样做 通常,当其他人在您之前推动新的更改时,就会发生这种情况。使用更改推送历史记录将覆盖其更改。因此,错误消息建议您合并它们的更改,然后推送组合的历史记录 发件人: git推原始主机到![已拒绝]主控->主控(非快进)错误:无法将某些引用推送到“”,以防止丢失历史记录,已拒绝非快进更新。请在再次推之前合并远程更改(例如“git pull”)。有关详细信息,请参阅“git推送--帮助”中的“关于快进的说明”部分
但是,对于您的情况,建议不适用。您不希望将重写的历史记录与旧历史记录合并。你真的想失去过去的历史。在本例中,您可以使用Git push--force origin master告诉Git。非常感谢。非常感谢。