在实际的开发中,有可能遇到须要将A仓库的某个branch的代码独立成为一个新的仓库B。咱们须要的不单单是这个branch的最新提交的代码,而是须要它的整个提交历史。这种需求对于git来讲很是简单,主要依靠git remote
命令来实现。git
假如仓库repo_a当前位于branch_a,要求将branch_a的整个数据(包括提交历史)所有提取出来,并创建一个新的仓库repo_b。这里假设仓库repo_b已经被创建。git remote add
基本语法以下。name和url是必须的。服务器
git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>fetch
一、 将仓库repo_b的URL添加到工做仓库的remote。url
git remote add origin_repo_b git@server_ip:/path/repo_b.git
(origin_repo_b
:本身起的名字,只要不与现有的remote名重复便可)
(git@server_ip:/path/repo_b.git
:repo_b的远程路径)code
二、将代码推送到远程repo_b。server
git push origin_repo_b branch_a
(origin_repo_b
:远程仓库repo_b的名字)
(branch_a
:仓库repo_a的的branch_a分支)ip
三、克隆仓库repo_b,检查是否push成功。开发
git clone git@server_ip:/path/repo_b.git
方法很是类似,多使用到了命令git remote set-url --add [--push] <name> <newurl>
假设在远程的git服务器上又新增了一个仓库repo_c,如今要求repo_b、repo_c提交的代码必须一致。
一、将远程repo_c配置到当前的工做的本地git仓库中rem
git remote set-url --add origin_repo_b git@192.168.1.101:~/project/repo_c.git
这句话的意思是,将远程仓库git@192.168.1.101:~/project/repo_c.git也加入到origin_repo_b这个名字下面管理it
二、将代码同时提交到远程仓库repo_b和远程仓库repo_c
git push origin_repo_b branch_a