Gitリポジトリのクローンを作成してから、そのmasterブランチで遊んでみました。しばらくして、変更を(コミットせずに)無視し、別のブランチに切り替えたいと思います。ただし、コミットされていない変更があるため、切り替えができません。それらを隠さずに無視するにはどうすればよいですか?これが起こることです:
$ git checkout gh-pages
error: Your local changes to the following files would be overwritten by checkout:
somefile.txt
Please, commit your changes or stash them before you can switch branches.
Aborting
オプション1
git checkout -f gh-pages
オプション2
git reset --hard # beware: don't make that a habit
git checkout gh-pages
完全を期すため、および検索でここに上陸した人のために:OPは stashing なしで解決策を具体的に求めますが、stashは確かに非常に素晴らしいオプションであることに言及する価値があります。
このコマンドは、ローカルの変更を保存し、HEAD commitと一致するように作業ディレクトリを元に戻します。
だからあなたは簡単に
git stash
これはHEADにリセットするようなものです。これらのコミットされていない変更が実際に価値がないことを絶対に確実に確信している場合、単に
git stash drop
上記のドキュメントリンクに記載されているように、複数のスタッシュなどを持つこともできます。
大幅なコストをかけずにリセットする前に考え直す必要があるため、この方法をお勧めします。
コミットされていない変更はすべて無視できます。
git reset --hard HEAD
ステージングされていないファイルがある場合は、次を試してください。
git checkout -- .
または
git checkout -- filename
本当にコミットされていない変更(つまり、ステージングされた変更と作業ツリーの変更)を破棄したい場合は、次のことができます:
git reset --hard
一般に、スタッシングは多くの場合より安全です
git add -A git stash
これにより、行ったすべての変更がクリアされます(コミットされていない変更のみ)
特定のファイルで行った変更を破棄できます。
git checkout somefile.txt
そして、スムーズにブランチにジャンプします:
git checkout gh-pages