46

gitリポジトリのクローンを作成してから、マスターブランチで遊んでみました。しばらくして、(コミットせずに)行った変更を無視して、別のブランチに切り替えたいと思います。ただし、コミットされていない変更があるため、切り替えができなくなります。それらを隠さずに無視するにはどうすればよいですか?これが起こることです:

$ 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
4

9 に答える 9

73

オプション1

git checkout -f gh-pages

オプション2

git reset --hard     # beware: don't make that a habit
git checkout gh-pages
于 2011-09-18T18:17:58.803 に答える
12

完全を期すために、そして検索してここに着陸した人のために:OPは特に隠し場所のない解決策を求めていますが隠し場所は確かに非常に優れたオプションであることに言及する価値があります。

このコマンドは、ローカルの変更を保存し、HEADコミットに一致するように作業ディレクトリを元に戻します。

だからあなたは簡単にできます

git stash

これは、HEADにリセットするようなものです。確かにそれらのコミットされていない変更が無価値であることを絶対的に積極的に確信しているとき、単に

git stash drop

上記のドキュメントリンクに記載されているように、複数の隠し場所などを作成することもできます。

かなりの費用をかけずにリセットする前に二重思考する習慣があるので、この方法をお勧めします。

于 2015-11-30T15:15:46.520 に答える
6

コミットされていない変更はすべて無視できます。

git reset --hard HEAD

于 2011-09-18T18:17:20.273 に答える
3

コミットされていない変更(つまり、ステージングされた変更と作業ツリー内の変更)を破棄したいことが本当に確実な場合は、次のことができます。

git reset --hard

一般的に、隠しておく方が安全なことがよくあります

于 2011-09-18T18:17:42.027 に答える
3

ステージングされていないファイルがある場合は、次を試してください。

git checkout -- .

または

git checkout -- filename
于 2014-09-22T03:34:12.203 に答える
0

git add -A git stash

これにより、行ったすべての変更がクリアされます(コミットされていない変更のみ)

于 2017-01-19T15:42:02.153 に答える
0

特定のファイルに加えた変更を破棄できます。

git checkout somefile.txt

そして、スムーズにブランチにジャンプします。

git checkout gh-pages
于 2017-02-23T13:09:22.513 に答える
0

Blockquoteオプション2は私には機能しませんでした、それはただエラーを繰り返すだけです。

私も同じです。git reset --hard + git checkoutの後も、同じエラーが発生していました。

ハードリセットの直後に、2番目のコマンドに--forceを追加して修正しました。

git reset --hard
git checkout -f <branch name>
于 2020-08-28T11:36:08.733 に答える
0

変更を無視するが削除しない

OPは変更を無視するように要求しますが、変更を削除するようには要求しません。OPは変更がまだ残っていることを望んでいるように聞こえます。したがって、この回答は、変更を失いたくない同様の状況にある人々のためのものです。

すでに遭遇した制限に加えて、それらの変更を保持したい場合、1つのオプションはそれらを別のブランチに配置することです

コミットされていない変更または段階的な変更がある場所に関係なく、いつでも新しいブランチを作成できます。

git checkout -b new_branch

そして必要git addgit commit応じて。これで、これらの変更が保存されていることを確認して、他のブランチに自由に切り替えることができます。

OPのように、私はスタッシュとポップ(およびチェリーピック)を使用するのは好きではありませんが、これらの変更を新しいブランチに配置することで分離し、マージしてリベースすることができます。ソリューションにブランチを使用するのは私にとって簡単です

于 2020-08-28T11:57:25.953 に答える