7

我的本地 git repo 需要从一台服务器中提取。然后,它需要将特定分支推送到不同服务器上具有不同分支名称的审查存储库。

类似于:从 Server1 上的 PullOnlyRepo 中提取所有内容(我们可能会称其为起源?)将分支修补程序推送到 ReivewRepo,分支名称为 Server2 上的 JistChanges。

现在 git config -l 显示:

remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=<URL for Server1>
remote.origin.pushurl=no_push (this shouldn't matter since it is a pull only repo)
branch.production.remote=origin
branch.production.merge=refs/heads/production
remote.review.url=<URL for Server2>
remote.review.fetch=+refs/heads/*:refs/remotes/review/*

git pull 做我想做的事(从 Server1 上的正确位置获取更改并将它们合并到我的工作树中)。

但是 git push 没有。为了实现我想要的,我必须做

git push review hotfix:JistChanges

有没有办法让 git pull 做到这一点而不必放入额外的东西?

已经设置了一些问题,以便您的本地分支推送到具有不同分支名称的远程。然而,它们也改变了上游和拉力的来源。

4

2 回答 2

4

您可以将上游分支设置为hotfix

git config push.default upstream
git config push.default review 
git branch --set-upstream hotfix review/JistChanges

请参阅“如何使现有的 git 分支跟踪远程分支? ”请参阅默认策略上的“结果是git push origin什么?push ” (即将成为“ simple”)

启动 git1.8.0:

git branch -u review/JistChanges hotfix

OP jstanidiot 报告已取得相同的结果:

git remote set-url --push origin
git config remote.origin.push refs/heads/hotfix:JistChanges
于 2012-10-19T07:04:34.543 回答
3

好的 VonC 的回答让我走上了正轨。这是我所做的:

git remote set-url --push origin <review repo URL>
git config remote.origin.push refs/heads/hotfix:JistChanges

唯一的问题是现在所有的东西都推送到了review repo。现在没关系,因为 90% 的工作都在这个分支中。剩下的 10% 我可以用正确的推送配置做一个 git push 其他相同来源的仓库。

于 2012-10-19T13:33:08.933 回答