web-dev-qa-db-ja.com

git checkout master error:次の追跡されていない作業ツリーファイルはcheckoutによって上書きされます

Gitリポジトリがあります。 A B C D E ...コミットがあります。ここで、Dbranchという名前の新しいブランチとしてDをチェックアウトします。だから私は実行します:git checkout D -b Dbranch。そして今、私はこのブランチを削除したい。まず、master branchに切り替えてから、git branch -d Dbranchを使用して削除します。しかし、git checkout masterを実行すると、エラーが発生します。

error: The following untracked working tree files would be overwritten by checkout:
    source/a/foo.c
        ...... (too many lines)
Please move or remove them before you can switch branches.
Aborting

Dbranchを削除するには?

31
Fei Xue

git checkout -f master

-fまたは--force

ソース: https://www.kernel.org/pub/software/scm/git/docs/git-checkout.html

ブランチを切り替えるときは、インデックスまたは作業ツリーがHEADと異なる場合でも続行します。これは、ローカルの変更を破棄するために使用されます。

インデックスからパスをチェックアウトするとき、結合されていないエントリで失敗しないでください。代わりに、マージされていないエントリは無視されます。

87
dekdev

を行う:

git branch

gitが次のようなものを表示する場合:

* (no branch)
master
Dbranch

「切り離されたHEAD」があります。このブランチでいくつかのファイルを変更した場合は、それらをコミットしてからマスターに戻ります

git checkout master 

これで、Dbranchを削除できるはずです。

0
Mali