我目前正在开展一个项目,我必须从master
分支出来,在本地进行一系列更改,并且“上线”#39;将测试环境推送到特定的远程仓库,如下所示:
git push origin site-testing
在以下回购中推送到site-testing
分支:
user-name@testing.com:/path/to/root-dir-containing-.git
现在我需要从site-testing
分支到master
分支进行更改。
当我git push origin master
时,我希望将这些更改推送到一个完全不同的远程仓库。
所以期望的结果是:
git push origin master
将master
推送到以下代表处:
user-name@aws-live-domain.com:/path/to/root-dir-containing-.git
在master
.. 上和不 testing.com
这可能吗?我感谢任何建议
答案 0 :(得分:3)
您可以添加另一个原点并按下它,如下所示:
git remote add origin1 https://aws-live-domain.com/user-name/<path/to/root-dir-containing->.git
git push origin1 master
答案 1 :(得分:2)
您可以拥有多个遥控器。这可以让你做你想做的事。
使用git push
的一般语法是:
git push remote branch
,例如git push origin master
。 origin
部分是远程的名称,第二部分是分支名称(嗯,它实际上更复杂,但是我们只需要在这里使用“分支名称”:-))
请记住,Git中的远程只是其他某个URL上另一个Git存储库的简称。通常,Git存储库附带一个名为origin
的远程预制,因为git clone
为您设置了一个远程,默认情况下它使用的名称为origin
。
要添加另一个不同的远程,请运行git remote add
,例如:
git remote add xyzzy ssh://user-name@testing.com/path/to/repo.git
现在xyzzy
是第二个遥控器的名称,它引用testing.com
上的Git存储库,通过ssh user-name@testing.com
访问,位于该系统的path/to/repo.git
。您现在可以git push xyzzy branch
。
每个分支可能有一个(并且只有一个)上游设置。分支的上游实际上是一对项目:它是远程的名称,加上分支名称。这对项目也是你的Git用来记住那个分支的那个分支上一次你的 Git实际转换的那个 与其他Git。
因此,如果您的分支plugh-test
通常应该推送到远程xyzzy
,您可以这样做:
git branch --set-upstream-to=xyzzy/plugh-test plugh-test
现在你的分支plugh-test
会记住它的上游是xyzzy/plugh-test
,这是你自己的Git在plugh-test
上看到xyzzy
的记忆。
如果您的push.default
设置为simple
(默认情况下为Git 2.0或更高版本),而您 分支plugh-test
,则可以刚跑:
git push
因为你的Git会查找你的当前分支的远程,并在推送当前分支时使用它作为默认的远程参数,这是默认的< em> branch 参数。
但请注意,如果您不小心跑了:
git push colossal-cave
认为这将推动分支 colossal-cave
,它不会:这里的位置参数始终是远程,而不是分支。
(xyzzy
and plugh
are magic verbs from Colossal Cave Adventure.)