web-dev-qa-db-ja.com

ブランチに加えられたすべての変更を破棄する方法は?

私はブランチ(つまりdesign)で作業しており、いくつかの変更を加えましたが、それらをすべて破棄し、リポジトリのバージョンに合わせてリセットする必要があります。 git checkout designがやると思っていましたが、すでにブランチdesignにいて、3つの変更されたファイルがあることを教えてくれます。

これらの変更を破棄して、リモートサーバー上に現在存在するブランチを取得するにはどうすればよいですか?

100
Will

注:CANNOT UNDO this。

git checkout -fを試してください。これは、ALLブランチとマスターでコミットされたnotローカル変更を破棄します。

176
ismail

git reset --hardは、最後のコミット以降すべてを破棄したい場合に役立ちます

69
gor

designany変更が不要で、リモートのブランチに一致することを確実に望む場合は、ブランチを削除することもできます。そしてそれを再作成します:

# Switch to some branch other than design
$ git br -D design
$ git co -b design Origin/design            # Will set up design to track Origin's design branch
16
mipadi
git diff master > branch.diff
git apply --reverse branch.diff
15
Mike Kaganski

@Will、 gitimmerment は本当に素晴らしくシンプルなgitチュートリアルです。ステージングなし、ステージング済み、コミット済みの場合に変更を元に戻す方法を示します。ラボ14〜18

7
Cesar A. Rivas

ソースルート:git reset ./ HEAD <--un-stage any staged changes git checkout ./ <--discard any unstaged changes

3
Clifford Harms

ローカルブランチの変更を破棄する場合、git stashコマンドを使用してこれらの変更をスタッシュできます。

git stash save "some_name"

変更は保存され、必要に応じて後で取得したり、削除したりできます。これを実行すると、ブランチにはコミットされていないコードがなくなり、git pullを使用してメインブランチから最新のコードをプルできます。

2
user4948761

git checkout -f

あなたの質問にはこれで十分です。一度行われるのは、それだけです。元に戻すことはできません。

0
thestar