2017-02-04 64 views
2

我似乎弄亂了我的git。移除遠程分支後,git上游不見了

我首先的改名是使用這個命名分支Sprint/13/Story/XXX-11

分支:

git branch -m Sprint13/Story/XXX-11

這並沒有遠程重命名它和我的混帳狀態充滿約未合併的消息,並未發生變化。

所以我想,那麼我會只是刪除遠程分支,所以我這樣做:

git branch --delete --remotes origin/Sprint/13/Story/XXX-11

現在,當我做混帳狀態,我得到以下信息: Your branch is based on 'origin/Sprint/13/Story/XXX-11', but the upstream is gone.

回答

3

這裏是你實際上迄今所做

git branch -m Sprint13/Story/XXX-11 

這改名爲當地分支Sprint/13/Story/XXX-11Sprint13/Story/XXX-11

然後你沒這個

git branch --delete --remotes origin/Sprint/13/Story/XXX-11 

此刪除遠程跟蹤您原始分支的分支。請注意,這個分支是實際的本地分支,並且每當您從遠程存儲庫獲取時,它都會作爲本地分支的同步點。

要解決這種情況,我覺得你應該先刪除本地重命名的分支:

git branch -d Sprint13/Story/XXX-11  # delete local new renamed branch 

然後把你的舊的本地分支到遠程新的名稱:

git push origin Sprint/13/Story/XXX-11:Sprint13/Story/XXX-11 

現在你可以把這個分支下拉到你的本地Git通過:

git pull origin Sprint13/Story/XXX-11 

在這個過程中,Git也會爲您創建一個指向正確位置的本地跟蹤分支。

爲了淨化的,你現在可以刪除舊的本地分支以及它的遠程副本:

git branch -d Sprint/13/Story/XXX-11  # delete old local branch 
git push origin :Sprint/13/Story/XXX-11 # delete old remote branch 
+0

即使我做到這一點,遠程分支仍然是所謂的Sprint/13 /故事/ PEN-6021。 – dagda1

+0

你在幫我,慢慢來。 – dagda1

+0

使用'git push origin local-name:remote-name'在遠程獲取你想要的名字。 –

1

首先,重命名分支的語法爲:

git branch -m [<oldbranch>] <newbranch> 

因此,您需要確保您有012在重命名之前檢出。
可以肯定,鍵入完整的重命名命令:

git branch -m Sprint/13/Story/XXX-11 Sprint13/Story/XXX-11 

然後你就可以用git branch檢查,如果當前的分支重新命名。

最後,這不影響遠程跟蹤分支。

你需要做:

git push -u origin Sprint13/Story/XXX-11 

到遠程回購創建同名的遠程分支。
git push origin :Sprint/13/Story/XXX-11刪除舊的。