2011-04-20 296 views
11

我有3个本地和3个远程分支,并希望在两个同一分支上。如何切换到git不同的远程分支

地方:

git branch 
    A 
* B 
    master 

git branch -r 
    origin/A 
    origin/B 
    origin/master 

远程:

git branch 
    A 
    B 
* master 

我能够承诺,推拉B,而我的更新挂钩部署,而不是B中间,我想因为远程分支仍然设置为主。

git branch B 
git checkout B 
git push origin B 

回答

4

据我所知,没有办法更改远程当前分支git push:我使用创建的分支B中。推送只会将您的本地更改复制到该存储库中。通常,您推送的遥控器应该是--bare,没有工作目录(因此没有“当前分支”)。

+0

我认为你是对的,这不是我的问题。问题是我正在使用更新挂钩,因此它内部的git存档没有得到最后的提交或其他东西。我所知道的是我部署的分支是本地推送后的一个提交 – sanon 2011-04-20 22:30:15

+0

你能发布你的钩子脚本的相关部分吗? – dahlbyk 2011-04-20 22:50:05

+0

这是我的更新钩子'git archive $ 1 | tar -x -C/local/B/rsync -arq \ --exclude“.git”\ --delete --delete-excluded \/local/B/me @ dev:/ remotedev/html/B /' – sanon 2011-04-21 17:52:56

13

下面是我的方法来切换和工作的git仓库的远程分支。

看一看所有的分支机构第一,只是输入下面的命令终端:

git branch --all 

,然后你会看到在本地和远程的所有分支。类似这样的:

*master 
remotes/origin/develop 
remotes/origin/master 
remotes/origin/web 
remotes/origin/app 

让我们假装你想切换到remotes/origin/develop分支。键入以下内容:

git checkout remotes/origin/develop 

然后再次键入git branch --all找到这样的:

*(detached from remotes/origin/develop) 
master 
remotes/origin/develop 
remotes/origin/master 
remotes/origin/web 
remotes/origin/app 

然后就去做:

git checkout -b develop 

从现在起,你正好在remotes/origin/develop分公司工作。