今天遇到一個新的需求, 要把現在的代碼再推送到一個新的代碼庫,并不定期自動更新代碼,實現如下效果
同一項目使用兩個或者多個遠程代碼倉庫管理, 有兩種情況
第一種:從剛開始建項目,需求就是代碼要上傳到兩個或多個倉庫
這種情況比較好處理
步驟如下,
A. 本地創建項目
B. 打開終端 cd/
項目 git int
C. 去對應的兩個代碼倉庫創建本地代碼要存儲的目錄, 并生成一個git地址
D. 回到終端 分別執行下面語句
git remote add 倉庫 A https:///項目A倉庫的地址
git remote add 倉庫 B https:///項目B倉庫的地址
(倉庫 A,B 的名字可以自己起,用來區分哪個遠程倉庫)
查看遠程倉庫的情況
git remote -v
可以看到已經有兩個遠程倉庫了
git push 倉庫A master:master
git push 倉庫B master:master
pull 的時候也是兩次
git pull 倉庫A master
git pull 倉庫B master
如果是多個代碼倉庫,每次都要push 和pull 多次, 比較繁瑣, 可以使用下面的方法
使用 git remote set-url
命令
1.刪除方法一的 倉庫A 遠程倉庫。
gitremote rm 倉庫A
2.使用如下命令添加遠程倉庫。
git remote set-url --add 倉庫B(名稱) http://倉庫A地址
3.查看遠程倉庫情況。可以看到 github 遠程倉庫有兩個 push 地址。這種方法的好處是每次只需要 push 一次就行了。
git remote -v
git push倉庫B master:master
第二種:項目中途增加倉庫
比如一直在自己的公司git服務器上做開發, 突然有個需求, 讓你中途把目前的代碼再同步一份放到
另一個git服務器, 而且要不定期向這個服務器更新代碼
操作: 現在已經有本地的代碼和一個代碼倉庫了,
1.去要求存放代碼的git服務器上創建一個git倉庫
2.執行: git remote add XXXX https://項目A倉庫的地址
- 從新建的代碼庫更新一下,合并節點(代碼庫要求是新庫)?
git pull bx_bank master
From http://x'x'x'x'x'x'x'x'x'x'x'x'x'x'x*
branch master -> FETCH_HEAD fatal: refusing to merge unrelated histories
報如下錯誤
原因:不可以合并不同沒有相同結點的分支,如果需要合并兩個不同結點的分支,那么需要在git pull
添加一句代碼--allow-unrelated-histories
。于是修改之后的代碼,假如源是XXXX,分支是master,那么執行以下名下
git pull XXXX master --allow-unrelated-histories
成功, 然后將現在的本地代碼push 到遠程倉庫
git push XXXX master
大功搞成~~,定期執行git push XXXX master
這個語句就好了
追加: 如果只是定期往B倉庫同步推代碼,B倉庫又是一個新建倉庫
可以直接加入 add remote ,然后push
git remote add origin http://xie_bxbak@x.dev.bx/git/bxbak/viop/sysmagoor git push -u origin --all git push -u origin --tags