1

我正在尝试将远程存储库克隆到我的本地工作区,并将内容推送到我设置要维护的新裸存储库,此存储库需要偶尔从上游存储库进行更新,并且需要将新内容推送到本地存储库出色地。

这是一个例子:

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”,但它只获取引用,实际上并没有合并内容。

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

谢谢

4

1 回答 1

1

听起来你所做的只是更新分支。除非您计算实际上只是参考更新的快进合并,否则没有合并。

你需要做的就是

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

这假设您已经为您的新仓库添加了一个远程条目并调用了它new-repo

于 2012-11-01T23:40:21.937 回答