2012-02-13 45 views
8

我不确定我是如何进入这个状态的,但是我的本地git-svn repo上的master分支似乎指向远程UAT分支。重新将git-svn master分支返回到trunk

git status 
# On branch master nothing to commit (working directory clean) 
git svn dcommit Committing to https://svn...com/MyRepo/branches/UAT ... 

我该如何解决这个问题?

+0

它'帮助确切知道你想要“修复”什么。让本地主分支脱离远程分支没有任何问题;事实上,这正是我通常如何操作我的存储库。 – 2012-02-17 14:16:43

回答

5

认为你试图解决的是你的本地“主”分支是基于远程UAC分支,而不是远程中继。如果你很高兴失去提交,你可以简单地运行下面的代码,这将检查中继线,然后将主分支移动到当前点。

git checkout remotes/trunk 
git checkout -B master 

如果你不想失去你的提交,git rebase是你的朋友。使用如下:

git rebase $(git merge-base remotes/UAC master) master --onto remotes/trunk 

这工作了UAC分支和本地主分支的共同的父,使所有从有到主分支到干线的尖端提交,然后移动主分支指向那里。

+0

我以某种方式让自己陷入了同样的境地(将错误的分支合并到了主内?),并且'checkout'解决方案为我解决了这个问题。如果可以,我会接受这个答案。 – abeger 2015-08-03 16:28:36

0

一种方法是重命名当前主分支,并将origin/trunk作为(新)主分支签出。

git branch -m master uat 
git checkout origin/trunk master 

如果你需要,你现在可以樱桃PIC的提交从UAC分公司主(我会用gitk --all来帮助我)

稍微复杂的问题: Rename master branch for both local and remote Git repositories

相关问题