日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git url地址无效_如何同步多个 git 远程仓库

發布時間:2024/4/20 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git url地址无效_如何同步多个 git 远程仓库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

日常需求

以前源碼是托管在 github 的, 現在想要同步托管在 gitee, 一做備份分發, 二方便國內下載使用(網速可觀), 三防特色墻...

方式一 使用 gitee 的強制同步

之前在 github 托管了這么一個項目 mirrors-in-china, 后來國內出了 gitee, 那么想著把項目同步一份到 gitee, 方便大家查看... 正巧 gitee 提供強制同步功能, 方便操作...

我還是只用維護 github 那份源碼, gitee 這邊沒忘記的話, 手搓點擊下強制同步按鈕即可.

但是容易忘記, 造成兩邊不完全同步.

不過我這個項目本身就非常簡單, 這點同步時差完全沒大問題, 夠用, 并且沒有其他任何多余的操作.

方式二 手搓 push 多次

換另一個項目來說, 我之前在 github 托管了這么一個項目 GlobalScanner.Sdk, 應廣大小伙伴需求, 希望把項目在國內同步一份, 方便下載/參考/使用.

那么不外乎就是配置多個遠程庫地址, 多次推送咯, 那么我們先來看看現有遠程庫的情況:

$ git remote --verbose origin git@github.com:taadis/GlobalScanner.Sdk.git (fetch) origin git@github.com:taadis/GlobalScanner.Sdk.git (push)

可以看到目前僅有 git@github.com:taadis/GlobalScanner.Sdk.git 這個遠程庫地址.

我們來加一個 gitee 的遠程地址, 首先在 gitee 建好同步倉庫, 然后我們在本地添加一個新的遠程庫地址:

$ git remote add giteeorigin git@gitee.com:taadis/GlobalScanner.Sdk.git

添加完成后我們查看一下:

$ git remote --verbose giteeorigin git@gitee.com:taadis/GlobalScanner.Sdk.git (fetch) giteeorigin git@gitee.com:taadis/GlobalScanner.Sdk.git (push) origin git@github.com:taadis/GlobalScanner.Sdk.git (fetch) origin git@github.com:taadis/GlobalScanner.Sdk.git (push)

可以查看到以下2個遠程庫地址:

  • giteeorigin: 是我們新加的 gitee 的遠程庫地址
  • origin: 是我們之前在 github 的遠程庫地址

接下來同步:

git add . git commit -m "add gitee" git push -u origin master git push -u giteeorigin master

有鏈接有真相:

  • github: add gitee
  • gitee: add gitee

比之前多個一次 git push 操作...其他和之前沒有太大區別...沒有更多的心智負擔.

但是經常容易忘記...

方式三 最多跑一次

不想著法偷懶的 coder 不是好程序員, 秉承 "最多跑一次" 的理念, 讓我們試試怎么一次 push 統統搞定.

在本地 git 倉庫里找到這個文件 .git/config, 內容如下:

[core]repositoryformatversion = 0filemode = falsebare = falselogallrefupdates = truesymlinks = falseignorecase = true [remote "origin"]url = git@github.com:taadis/GlobalScanner.Sdk.gitfetch = +refs/heads/*:refs/remotes/origin/* [branch "master"]remote = originmerge = refs/heads/master [remote "giteeorigin"]url = git@gitee.com:taadis/GlobalScanner.Sdk.gitfetch = +refs/heads/*:refs/remotes/giteeorigin/*

改為如下:

合并2個 remote 配置

[core]repositoryformatversion = 0filemode = falsebare = falselogallrefupdates = truesymlinks = falseignorecase = true [remote "origin"]url = git@github.com:taadis/GlobalScanner.Sdk.giturl = git@gitee.com:taadis/GlobalScanner.Sdk.gitfetch = +refs/heads/*:refs/remotes/origin/* [branch "master"]remote = originmerge = refs/heads/master

上面這個手動配置是為了更好的說明而已, 其實可以用以下命令簡化操作, 在 origin 節點下補充了一個新的遠程地址.

$ git remote set-url --add origin git@gitee.com:taadis/GlobalScanner.Sdk.git

看看補充后的遠程地址情況

git remote --verbose origin git@github.com:taadis/GlobalScanner.Sdk.git (fetch) origin git@github.com:taadis/GlobalScanner.Sdk.git (push) origin git@gitee.com:taadis/GlobalScanner.Sdk.git (push)

注意看后面的 (fetch)(push), 相信你會明白點什么.

然后我們可以繼續這樣使用來實現 github & gitee 的同步推送和分發:

git add . git commit -m "github & gitee 同步推送和分發" git push origin master

有鏈接有真相:

  • github: github & gitee 同步推送和分發
  • gitee: github & gitee 同步推送和分發

可以看到, 使用上和最初沒有任何區別, 只是多配置了一次, 算是實現了 "最多配(跑)一次".

總而言之

幾種方式, 各取所需咯.

來源:開源中國

作者:taadis

原文:https://my.oschina.net/taadis/blog/3073220

總結

以上是生活随笔為你收集整理的git url地址无效_如何同步多个 git 远程仓库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。