git關聯多個repository
比如我一個關聯github倉庫,另一個關聯bitbucket倉庫;或者兩個github倉庫。這里就需要用到 git remote。首先我們先在github上面創建一個倉庫,然后會出現下面這樣的提示:
//首先創建一個文件
echo "# test" >> README.md
//然后初始化倉庫,此時上面的文件就存在當前的工作區內
git init
//文件會被本地倉庫索引住
git add README.md
//文件會提交到本地倉庫
git commit -m "first commit"
//給本地倉庫加一個遠程的倉庫
git remote add origin https://github.com/myyan/test.git
//把本地倉庫推送到遠上面這個遠程倉庫的 master分支
git push -u origin master
如果執行上面的這樣這些操作執行成功你便會發現遠程倉庫會出現一個master分支,而且你本地的提交也會存在遠程的master分支上面。
通過git remote -v 查看本地倉庫關聯的遠程倉庫情況,結果如下:
我們可以再次關聯一個遠程倉庫:
git remote add haozi https://github.com/myyan/test2.git
//其中這個在本機的haozi 就是關聯的遠程的test2的倉庫
通過git remote -v 查看遠程分支情況,結果如下:
可以看到我們關聯了兩個遠程倉庫。接下來我們分析一波下面這條命令:
git push -u origin master
我們先來分析一下origin 后面的master,這個master 就想相當于master:master(本地分支名:遠程分支名),為什么這里可以省略呢?首先要有兩個要求:
1.首先本地要有master分支上(git init會自動生成master分支)
2.遠程倉庫的命名也叫master分支
如果我們想讓遠程倉庫的名稱為haozi,就可以這樣:
git push -u origin master:haozi
git push -u 遠程倉庫名 本地分支:遠程分支
那么上面的-u這個參數是設么意思呢?
u 是upstream的意思,也就是上游的意思,代表的是 本地分支 和 遠程倉庫的遠程分支建立一個默認對應的關系。其實不建立也可以,那么這樣建立后會有什么好處呢?
拿這個例子來說吧:
git push -u origin master:haozi
以后我們在本地的master分支的時候,直接寫 git push 就會把本地的master分支推送到 遠程倉庫origin的haozi分支。只要我們建立了這個默認的關系,其中 -u就是來建立這種關系的。
如果我們不想建立這種關系,或者我們忘了我們建立了什么關系,我們push的時候這樣寫就可以了:
git push 遠程倉庫 本地分支名:遠程分支名
//如果本地分支和遠程分支名相同,可以寫成下面這樣
git push 遠程倉庫 分支名