5

私が実行するときbranch -a

$ git branch -a
* master
 remotes/origin/HEAD -> origin/master
 remotes/origin/hello
 remotes/origin/master

そして、ブランチを削除します。

$ git branch -r -D origin/hello
Deleted remote branch origin/hello (was c0cbfd0).

わかりました:

$ git branch -a
* master
 remotes/origin/HEAD -> origin/master
 remotes/origin/master

ブランチ「hello」は削除されました。しかし、私がフェッチするとき:

$ git fetch
From localhost:project
 * [new hello]      hello     -> origin/hello

$ git branch -a
* master
 remotes/origin/HEAD -> origin/master
 remotes/origin/hello
 remotes/origin/master

私は困惑している。
削除されたと思いますが、まだ残っています。

4

4 に答える 4

6

次のコマンドを使用して、リモートから削除する必要があります。

git push origin --delete hello

実行git branch -rd origin/hello中は、ローカルブランチのみを削除します。上記のコードは、元のリポジトリからそれを削除します。

于 2012-09-05T06:27:50.310 に答える
3

リモートブランチを削除するには、

git push origin :remotebranch

それ以外はすべてローカルリポジトリでのみ動作します。最近のバージョンのgitでは、次のこともできます。

git push origin --delete remotebranch

ドキュメントによると、--deleteは「すべての参照の前にコロンを付けるのと同じ」を意味します。

の意味について疑問がある場合は:、の標準構文に従いますpush。通常、あなたは書くでしょう

git push origin localbranch:remotebranch

localbranchただし、ここでは「nothing」に置き換えて、リモートブランチを効果的に削除します。

于 2012-09-05T06:32:56.793 に答える
1

gitブランチではローカル参照のみを削除できることに注意してください。

 git branch -r -D origin/hello

これは、リモート追跡ブランチへのローカルポインターを削除するだけですが、リモートリポジトリコンテンツ自体には影響しません。他の回答で述べられているように、それを行うのは、だけです
git push origin :hello

さらに、それは構成を変更しませんbranch.hello.fetch:それはまだorigin / helloを参照します、それは次のフェッチがあなたのローカルリポジトリにリモートトラッキングブランチを再作成する理由です。

于 2012-09-05T07:32:25.460 に答える
0
git push origin --delete somebranch

リモートブランチを削除する方法です。まだ古いバージョンのGitを使用している場合は、古い構文を使用する必要があります。

git push origin :somebranch

これは、「原点が指すリモートのブランチに何もプッシュしない」という意味です。コマンドの形式は「gitpush(どのリモートリポジトリ)(どのローカル参照):(どのリモート参照)です。(どの参照)を省略すると、(どのリモート参照)に「何も入れない」と解釈され、効果的に削除されます。新しい構文ははるかに直感的です。

于 2012-09-05T06:47:12.797 に答える