2016-09-15 78 views
4

我正在關注git-flow模型,我有疑問。將'git push origin <branch>'從本地刪除後遠程刪除<branch>?

首先,我從增加新的特性分支「發展」:該功能完成

# Checkout from develop branch 
$ git checkout -b <branch> 
# Push and track <branch> 
$ git push --set-upstream origin <branch> 

後,我按照結合上完成的功能開發

# Switch to 'develop' 
$ git checkout develop 
# Merge <branch> into 'develop' 
$ git merge --no-ff <branch> 
# Remove <branch> locally 
$ git branch -d <branch> 
# Remove <branch> remotely <-- ??? 
$ git push origin develop 

最後命令是我不確定的。它會遠程移除我剛剛在本地移除的<branch>嗎?

+0

我假設最初是從原點拉。不,那個分支會保持 –

+0

當你嘗試時發生了什麼? – hobbs

+0

因此,您在從本地回購庫中刪除'develop'分支後運行'get push origin develop'。 (我不知道答案,我只是澄清你在問什麼,因爲可能有一些混淆。) –

回答

2

否; <branch>僅由git branch -d <branch>在本地刪除,但它的副本存在於遠程(如果先前已在該處推送)。這可以通過運行git branch -vvvv來驗證,這將顯示沒有關聯的本地跟蹤分支的遠程分支。

git push origin developdevelop到遠程倉庫(來源)不接觸任何東西(不包含任何承諾掛鉤)。如果<branch>確實存在,並且您想要刪除它,則必須將刪除操作作爲單獨的步驟添加(git push origin :<branch>)。

+0

謝謝真誠。我必須用'git push origin --delete '遠程刪除分支。一個小小的疑問:在這種情況下'git push'和'git push origin develop'有什麼區別?第二個cmmd會做第一個沒有的東西嗎? – Gabriel

+1

@Gabriel:取決於您的配置設置。 'git push '是將特定分支推送到特定遠程的絕對明確的方式。如果你的配置允許你根據上下文來做,'git push'將會這樣做。 – Makoto

+0

明白了。再次感謝! – Gabriel

1

感謝您的評論。現在我明白你要問的答案是否定的。在git-flow模型中,功能分支不會被推送到遠程,所以所有的操作都會影響你的本地git倉庫。

如果您已將功能分支推送到遠程倉庫,則需要手動將其刪除。