2012-02-13 46 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

相關問題