Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
推拉时发生Git错误_Git_Github - Fatal编程技术网

推拉时发生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

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。

非常感谢。非常感谢。