使用 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

相關文章
相關標籤/搜索