2016-09-15 6 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 development 'を実行しています。 (私は答えは分かりませんが、混乱しているかもしれないので、何を求めているのか分かりません) –

答えて

2

いいえ; <branch>は、git branch -d <branch>によってローカルでのみ削除されますが、そのコピーはリモートに存在します(以前にプッシュされていた場合)。これは、git branch -vvvvを実行することで確認できます。ローカルの追跡ブランチがないリモートブランチが表示されます。 (いずれかのフックをコミット除けば)何かに触れることなく、あなたのリモートリポジトリ(原点)へ

git push origin developはなりのみプッシュdevelop<branch>がリモートに存在し、削除したい場合は、削除操作を別の手順(git push origin :<branch>)として追加する必要があります。

+0

まことありがとうございます。 'git push origin --delete 'でリモートからブランチを削除する必要があります。小さな疑問:この文脈で、 'git push'と' git push origin developed'の違いは何ですか?第2のcmmdは、最初のものは何もしませんか? – Gabriel

+1

@ Gabriel:あなたの設定に依存します。 'git push 'は、特定のブランチを特定のリモートにプッシュするための絶対に明白な方法です。 'git push'はあなたの設定がコンテキストに基づいてそうすることができる場合にそうします。 – Makoto

+0

入手しました。再度、感謝します! – Gabriel

1

ありがとうございます。今私はあなたが答えをノーと尋ねていることを理解しています。 git-flowモデルでは、機能ブランチはリモートにプッシュされないので、すべてのアクションがローカルのgitリポジトリに影響します。

機能ブランチをリモートリポジトリにプッシュした場合は、手動で削除する必要があります。

関連する問題