10

私は と が初めてGITですGIT-Flow。[私の python-django プロジェクトについて]

私がしたこと :

git flow feature start new_feature
# perform some commits on the feature/new_feature branch

git push origin feature/new_feature

git flow feature finish new_feature
# I suppose that merges feature/new_feature to develop and deletes feature/new_feature

git push origin develop # Pushes the new changes to remote

問題:

  • ローカル マシンで feature/new_feature ブランチが削除されたようです。
  • しかし、github[My remote named origin] ではブランチ feature/new_feature が表示されます。
  • 混乱しています。削除されたブランチは表示されません。
  • 私は解決策を探しましたが、リモートで手動で削除する必要があると言われていますが、これはの抽象化に適合していないようですgit flow

では、使用するたびに、すべてのリモートからすべての機能ブランチを削除する必要がありますgit-flowか??

私は何か間違っていますか?

4

1 に答える 1

6

git push origin(ローカルでチェックアウトして)を実行したことがある場合featureは、現在のデフォルトのプッシュポリシーがデフォルトであることを知っておいてください。
つまり(git configmanページ

matching-両端で同じ名前のすべてのブランチをプッシュします。

だが:

これは現在デフォルトですが、Git2.0はデフォルトをに変更しますsimple

upstream-現在のブランチをそのアップストリームブランチにプッシュします。
これにより、git pushは、git pullによってマージされたものと同じリモート参照を更新し、pushとpullを対称にします。

feature最初はGitHubにアップストリームブランチがないため、プッシュされません)

(そのポリシーの変更は、過去数か月間議論されています

したがって、今のところ、ブランチをGitHubにプッシュした場合は、featureローカルにマージしてプッシュする前にdevelopdevelop機能ブランチをGitHubから削除する必要があります。

git push origin :feature

プロセス中のどの時点でもフラグ''を指定しなかった場合に、gitflowが機能ブランチを削除しない唯一の理由。ソースを参照してくださいfetch

# delete branch
if flag fetch; then
  git push "$ORIGIN" ":refs/heads/$BRANCH"
fi

つまり、あなたは

git flow feature finish -F new_feature

アイデアは、最初にフェッチし、GitHubを削除する前に、他のnew_feature寄稿者によってGitHubに新しい進化が追加されていないことを確認することです。

于 2012-06-22T07:13:20.757 に答える