将远程内容合并到本地仓库

时间:2012-11-01 23:13:31

标签: git version-control git-merge git-remote

我正在尝试将远程仓库克隆到我的本地工作区,并将内容推送到我设置维护的新备份仓库,此仓库需要偶尔从上游仓库进行更新,并且需要将新内容推送到当地的回购。

这是一个例子:

git clone ssh://username@whatevergitrepo.com/project

我创建了一个裸仓库作为project_local

mkdir project_local.git
git init --bare --share=2 project_local.git

远程仓库在我的工作区中克隆后,因为这个远程仓库有多个分支,

branch1
branch2
.
.
branchN

以下是我从远程获取所有分支并推送到我当地的裸仓库所做的工作。

cd project
git branch -a >&/tmp/branchinfo
sed s,.*/,, /tmp/branchinfo >&/tmp/branchinfo1                              #this remove everything before the last '/' before the actual name of the branch
for i in `cat /tmp/branchinfo1`; do git checkout $i; done                   #checkout all the branches from remote site.
for i in `cat /tmp/branchinfo1`; do git push project_local.git $i; done     # Push all the remote branches to local repo I created with all contents.

在此之后,来自远程仓库的内容现在在我的本地裸仓库中,但是如何获取并将各个分支的所有远程更改合并到我创建的本地仓库中的相应分支?

我尝试过使用'git remote add',但这只是获取引用,它实际上并不执行合并内容。

提前感谢您提供的任何帮助。

由于

1 个答案:

答案 0 :(得分:1)

听起来你正在做的就是更新分支。除非你计算一个真正只是参考更新的快进合并,否则没有合并。

您需要做的就是

git fetch original-repo
git branch -r | cut -f3- -d'/' | xargs -i{} git push new-repo original-repo/{}:{}

这假设您已为新回购添加了一个远程条目,并将其命名为new-repo