web-dev-qa-db-ja.com

現在いるローカルGitブランチを削除(またはマージ)するにはどうすればよいですか?

私はgitを使用するのが初めてなので、AOKP Android ROM。に貢献するためにそれを使用します。いくつかのブランチを正常に作成し、コードを変更し、しかし、私のローカルリポジトリでは、これらのブランチはまだ表示されています(変更がないと表示されている場合でも)問題は、これらのブランチを作成したときに、必要なサブフォルダからそうしたことです変更されるため、「上位」のブランチはありません。そのため、それらのブランチを削除できません-git tels me error: Cannot delete the branch 'MyMods' which you are currently on.

それで、それらの枝を取り除くために私は何ができますか?

36
user496854

削除する前に、別のブランチを最初にチェックアウトします。

git checkout master
git branch -d MyMods

また、ブランチはフォルダとは関係ありません。 Gitは常にすべてのフォルダーとファイルを使用して、リポジトリー全体を常に追跡します。ブランチは、リポジトリの履歴内の単一のコミットまたはスナップショットへのポインタにすぎません。

52
poke

はい、別のブランチ(おそらくマスター)をチェックアウトしてから:

git checkout master
git branch -d thebran
4
slash28cu

削除できないブランチがワークツリーの場合、最初にそのワークツリーを削除する必要がある場合があります。

rm -r MyMods
git worktree list    # shows MyMods
git worktree Prune
git worktree list    # doesn't show MyMods
git branch -d MyMods
1
101

しかし、私のローカルリポジトリでは、それらのブランチはまだ表示されています(変更がないと表示されている場合でも)。

ブランチは、削除しない限り、ローカルリポジトリに表示されます。それらをプッシュしても消えません。

上記の回答は、ブランチを削除する方法を示しています。ただし、-Dオプションを使用するともう少し強力になることを付け加えます。このオプションは、マージされた(未)ステータスに関係なくブランチを削除します。

git branch -D branchName

それはブランチ削除の原子爆弾です。注意して使用してください。

0
gitlinggun