使用 git 將代碼推送到多個倉庫


使用 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/xxxx/xxx.git
	fetch = +refs/heads/*:refs/remotes/origin/*
+ [remote "all"]
+	url = https://gitee.com/xxx/xxx.git
+	url = https://gitHub.com/xxx/xxx.git
[branch "master"]
	remote = origin
	merge = refs/heads/master

    這樣我只需要 git push all 就可以同時 將原來只在 Gitee 倉庫的代碼 pushGitHub 倉庫了。當然了執行這個操作,代碼成功 pushGitee,但要求先要 pull GitHub 上的倉庫,才能 push 上去,(pull 是不可能 pull 的,這輩子只能 push 這樣子。。。),所以我選擇強推,一頓操作猛如狗

git push all -f

回車一敲(大力出奇跡!),ok,辦了! 打開 GitHub,GitHub 倉庫原來的所有 commits 全沒了,同步為 Gitee 倉庫一樣的 30+ commits!

學習一番


百度挺好。


彪悍!!!



I love my motherland!

--force

  • --force 適用於所有推送的 ref ,因此在 push.default 設置為 matching 或配置了多個推送目標的情況下使用它remote.*.push 可能會覆蓋當前分支以外的其他 ref(包括嚴格位於其遠程副本后面的本地ref)。
  • 常見情況,當您嘗試推送時,您可能會遇到非快進拒絕,即使您將其推送到其他人都沒有推送到的存儲庫中也是有可能的。自己推送提交 A 之后(在本節的第一張圖片中),將其替換為 git commit --amend 以生成提交 B ,然后嘗試將其推出,因為忘記了您已經將 A 退出了。在這種情況下,並且僅當您確定在此期間沒有人提取了較早的提交 A(並開始在其上構建)時,才可以運行 git push --force 來覆蓋它。換句話說,git push --force 是一種保留方法,用於您確實要失去歷史記錄的情況。

解決辦法

如果不幸遇到類似情況需要恢復,請參考這篇 文章 吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM