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 远程仓库 分支名