2015-11-03 74 views
2

我有一个孤儿分支new-version为我的应用程序的全新版本。重命名远程git分支而不提取

在我的本地系统上,我没有得到master branch。我只有new-version branch by doing git init`,并且手动添加原点并推送到新的分支。

我想重命名master分支到archived-v1,所以我可以推new-version分支为master

存储库相当大。所以我想重命名master分支,而不必先取/拉它。

如何重命名远程分支而不将其提取到本地系统?


我的本地系统没有主设备,只有远程设备。所以:

$ git checkout master 
error: pathspec 'master' did not match any file(s) known to git. 

$ git checkout origin/master 
error: pathspec 'origin/master' did not match any file(s) known to git. 
+0

头,您可以使用“混帐分支-m主存档-V1”,然后“混帐分支-m新版本的主”。这些命令会重命名分支,之后您可以强制将分支推送到原点。试试吧,如果你对解决方案感到满意,我也会发布我的答案:) – love

+0

我没有本地主分支,所以'git branch -m'将不起作用。 –

+0

@ Jasny-ArnoldDaniels我在不使用'fetch'的情况下更新了我的答案,您只需在本地提供'origin/master'具有的一次提交。 –

回答

2

一种方法是尝试做一个合并的服务器端(使用GitHub的拉动请求),以保护origin/master的提交,然后移动的local/masterHEAD最后才力推master起来。

我会尝试确定承诺您:

  1. 在本地(和)
  2. 包含在origin/master
git checkout (your determined commit) 
git checkout -b archived-v1 
git push origin archived-v1 

然后打开GitHub上拉请求合并origin/master分成origin/archived-v1(应该是快进而没有冲突)。

移动的origin/master

git checkout master 
git reset --hard new-version 
git push -f origin master 
+0

现在的问题是如何做到这一点,而不需要将主设备拉到我的本地系统。 –

+0

我没有包含在origin/master中的提交。新的分支是一个孤儿。 –

+0

请注意,问题要求没有改变我只是试图说清楚,因为我得到不正确的答案。 –