git 如何關聯多個庫


git 如何關聯多個庫

在本地同一個庫進行操作多個庫,可以把代碼推送到不同的庫中,可以拉取某個庫指定的代碼,這樣更加靈活使用

git remote

  • 查看遠程主機名
git remote -v
// λ git remote -v
// gitlab  git@github:b.git (fetch)
// gitlab  git@github:b.git (push)
// origin  git@gitee.com:a.git (fetch)
// origin  git@gitee.com:a.git (push)
  • 拉取遠程主機名,同時修改名

克隆版本庫的時候,所使用的遠程主機自動被Git命名為origin。如果想用其他的主機名,需要用git clone命令的-o選項指定。

git clone -o element-ui https://*******
git remote // element-ui
  • 顯示主機名下的詳細信息
git remote show element-ui
  • 添加主機名
git remote add <主機名> <網址>
  • 刪除遠程主機
git remote rm <主機名>
  • 遠程主機改名
git remote rename <原主機名> <新主機名>

git fetch

一旦遠程主機的版本庫有了更新(Git術語叫做commit),需要將這些更新取回本地,這時就要用到git fetch命令。

  • git fetch
git fetch <遠程主機名>
/** fetch 意義 **/
git fetch命令通常用來查看其他人的進程,因為它取回的代碼對你本地的開發代碼沒有影響。
  • 查看主機的分支
git fetch <主機名> <分支名>
  • 查看遠程分支
git brach -r
  • 查看所有分支 (本地和遠程)
git branch -a
  • 查看本地分支
git branch

git pull

git pull命令的作用是,取回遠程主機某個分支的更新,再與本地的指定分支合並

git pull <遠程主機名> <遠程分支名>:<本地分支名>
/** eg **/
git pull origin next
==== 等同於 ====
git fetch origin
git merge origin/next

git push

git push命令用於將本地分支的更新,推送到遠程主機。它的格式與git pull命令相仿。

git push <遠程主機名> <本地分支名>:<遠程分支名>
  • 如果當前分支與多個主機存在追蹤關系,則可以使用-u選項指定一個默認主機,這樣后面就可以不加任何參數使用git push。
git push -u origin master
// 下次就可以 直接使用 git push

不帶任何參數的git push,默認只推送當前分支,這叫做simple方式。此外,還有一種matching方式,會推送所有有對應的遠程分支的本地分支。Git 2.0版本之前,默認采用matching方法,現在改為默認采用simple方式。如果要修改這個設置,可以采用git config命令。

git config --global push.default matching
git config --global push.default sinmple
/** 本地分支都推送到遠程主機 **/
git push --all origin

了解上述命令后,可以開啟推送庫了

假設兩個庫,一個庫有內容,一個庫沒內容

// 庫A  
/** 庫A有內容 **/
mayun
// 庫B
/** 新建 **/
github
// 本地庫

首先本地添加庫

/** eg **/
git remote add mayun git@gitee.com:a.git
git remote add github git@github.com:b.git

檢查庫

git remote -v
github  github git@github.com:b.git (fetch)
github  github git@github.com:b.git (push)
mayun  git@gitee.com:a.git (fetch)
mayun  git@gitee.com:a.git (push)

拉取庫A內容到本地

git pull mayun
/** 有可能需要指定具體分支 **/
git pull mayun master

推送到庫B

git push github // 推送的只是當前分支
/** 若是多個分支 **/
git push github --all

若是下次拉代碼時,可以指定庫

探討

  • 推送時,無法同時推送兩個庫,需要一個個推,但是這樣可以拉取自己想要庫的內容

之前操作是可以同時推送多個庫,但是卻無法拉取某個庫的內容,在想是否可以將兩者進行結合呢,那這樣是否就可以按需進行操作了

git push all
修改**.git**里的 *config* 配置即可
原理是,同時將兩個庫名名為同一個名字
/ ** eg **/
origin git@github.com:b.git
origin git@gitee.com:a.git
git push -u origin // -u 默認第一次進行本地遠程關聯
git push origin // 之后的命令

總結

  • 內容很多是參考阮老師的,以及自己嘗試和網友的各種辦法
  • 最起碼加深了我對git的進一步了解了


免責聲明!

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



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