使用 git 将代码推送到多个仓库

原由

起初,在 github 建了一个仓库,200+ 的 commits 。后来(终于在眼泪中明白。。。误🙃),在 gitee 建了一个仓库,复制了一份代码,以后没在管 github 惹,gitee 上又随之进行了30+ 次 commits,这是前景。最后为了省劲,要用 git 将 gitee 的代码一次推送到两个仓库。方法以下,由于我只要 push 上去就行了,不须要分别来 pull 远端的仓库,只是我写着玩的小项目,我将 .git 文件下的 config 做了以下修改:
[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = https://gitee.com/guangzan/awescnb.git
    fetch = +refs/heads/*:refs/remotes/origin/*
+ [remote "all"]
+   url = https://gitee.com/guangzan/awescnb.git
+   url = https://github.com/github923665892/awesCnb-G.git
[branch "master"]
    remote = origin
    merge = refs/heads/master

这样我只须要 git push all 就能够同时 将原来只在gitee仓库的代码 push 到 GitHub 仓库了。固然了执行这个操做,代码成功 push 到 gitee,但要求先要 pull GitHub 上的仓库,才能 push 上去,(pull 是不可能 pull 的,这辈子只能 push 这样子。。。),因此我选择强推,一顿操做猛如狗git

git push all -f

回车一敲(大力出奇迹!),ok,办了! But 打开 GitHub 一看(没错我就是这个biaoqing 😳 ),GitHub 仓库原来的全部 commits 全没了,同步为 gitee 仓库同样的 30+ commits!github

学习一番

挨打要立正,我来学习一番。


彪悍!!!


I love my motherland!学习

--force

  • --force适用于全部推送的 ref,所以在push.default设置为matching或配置了多个推送目标的状况下使用它remote.*.push可能会覆盖当前分支之外的其余ref(包括严格位于其远程副本后面的本地ref)。要仅强制推送到一个分支,请+在refspec前面使用a 进行推送(例如git push origin +master,强制推送到master分支)。有关 ...详细信息,请参见上面的 部分。
  • 常见状况,当您尝试推送时,您可能会遇到非快进拒绝,即便您将其推送到其余人都没有推送到的存储库中也是有可能的。本身推送提交A以后(在本节的第一张图片中),将其替换为“ git commit --amend”以生成提交B,而后尝试将其推出,由于忘记了您已经将A退出了。在这种状况下,而且仅当您肯定在此期间没有人提取了较早的提交A(并开始在其上构建)时,才能够运行“ git push --force”来覆盖它。换句话说,“ git push --force”是一种保留方法,用于您确实要失去历史记录的状况。

解决办法

若是不幸遇到相似状况须要恢复,请参考这篇文章吧!fetch

过后诸葛亮

遇到问题不能随便一搜不了解直接上手干,特别像这类敏感操做,应该有基本的反应。
还好只是玩玩!🙃url

相关文章
相关标签/搜索