Gitのステージングされていない変更を破棄するにはどうすればよいですか?


4819

インデックスにない作業コピーの変更を破棄するにはどうすればよいですか?


9
git-cleanのみ作業ツリーから追跡されていないファイルを削除しgit-scm.com/docs/git-clean
Yega

24
上記のAsenarのコメントを明確にgit-clean -dfすることは危険です。ローカルの追跡されていないファイル(.gitignoreでカバーされているファイルなど)を削除します。以下をすべてよく読み、git checkoutを検討してください。代わりに
jacanterbury

15
'git clean -df'警告されます!私はそれを試してみて、復元できない主要なフォルダを失いました...痛い!
Gabe Karkanis

46
打つgit statusことでそれを行う方法が提案されます! git checkout -- .
パウロ

4
@Paulo:2019年7月以降git status、次の提案が行われますgit restoregit restoreまさにこの目的のための新しいコマンドです。2019年のアップデートをご覧ください。
プロソイト

回答:


2685

別のより速い方法は:

git stash save --keep-index --include-untracked

--include-untracked徹底したくない場合は、含める必要はありません。

その後、必要にgit stash drop応じてそのスタッシュをコマンドでドロップできます。


122
そしてそれについて徹底的に言うなら、あなた--include-untrackedも望んでいるでしょう。
TJクラウダー2015年

9
@KarimSamir:質問は、インデックスに含まれていない変更について具体的に尋ねます。このgit resetコマンドは、インデックスの変更も破棄します。
グレッグヒューギル2015

146
gitチェックアウト-。より速い
フランク

38
どちらもgit stash、また、任意の様々なgit checkout意志unstaged削除を捨てます。の出力によると、git statusここでの実際の正解はある種の味ですgit reset HEAD
Chris Warth

127
これにより、スタッシュスタックが汚染されます。git checkout -- .1つのコマンドのみでジョブを実行します。
フェリペトネロ2015

5339

現在の作業ディレクトリにあるすべてのステージングされていないファイルについては、次を使用します。

git checkout -- .

特定のファイルを使用する場合:

git checkout -- path/to/file/to/revert

--ここでは、引数のあいまいさを削除します


117
これはgitの標準的な方法のようです。つまり、入力した場合にgitが指示するとおりにgit status
ABMagil

27
追跡されていないファイルがある場合は機能しません。Gitは言うerror: The following untracked working tree files would be overwritten by checkout: ...
Michael Iles 2014

92
初心者の質問、「git checkout-」とは何ですか。意味的に意味しますか?
kaid

120
@Ninjackはとgit checkout -- .同じことを意味git checkout .しますが、ブランチ名を指定していないことを明示している点が異なります。彼らは両方とも、私が現在行っているブランチのHEADバージョンをチェックアウトすると言っています。または「./」。あなたが行う場合はgit checkout branch-name directory-or-file-name、一般的に、あなたはのHEADバージョンの取得directory-or-file-nameブランチ上をbranch-name
akgill 2014年

23
IMOこのバリアントは不完全です。変更されたリポジトリが変更のクリーニングの時点でHEADリビジョンになく、HEADに更新したくない場合に、変更をクリーンアップしたい場合には対応できません。
alexykot

1899

完全なソリューションは次のようです:

git clean -df
git checkout -- .

git clean追跡されていないファイルをすべて削除し(警告:.gitignoreで直接言及されている無視されたファイルは削除しませんが、フォルダーにある無視されたファイルを削除する可能性があります)、ステージングされていgit checkoutないすべての変更をクリアします。


116
他の2つの回答は実際には機能しません。これは機能しました。
John Hunt

18
@dvalこれは、最初のコマンドがインデックス付けされていないファイルを削除し、2番目のコマンドが(インデックス付けされたファイルの)ステージングされていない変更を削除したためです。したがって、段階的な変更がなかった場合、これは最後のコミットに戻すのと同じですgit reset --hard
アマヌエルネガ2014

3
追跡されていないディレクトリがgitクローンの場合は、-dffを使用します。
accuya 14

87
git clean -dfの実行には注意してください。それが何をするのか理解していない場合は、robots.txt、アップロードされたファイルなど、保持するつもりのファイルを削除している可能性があります
ctlockey

40
@ctlockeyが言ったように、また、最初のコマンドそれらは無視されたファイルで構成されている場合は、削除のディレクトリにのみ ...私のプロジェクトでの設定ファイルの全体の束を失った:(注意してください。
マキシムLorant

326

これにより、現在のディレクトリの現在のインデックスがチェックアウトされ、ファイルのすべての変更が現在のディレクトリから下方向に破棄されます。

git checkout .

または、インデックスからすべてのファイルをチェックアウトして、作業ツリーファイルを上書きします。

git checkout-index -a -f

28
こんにちは、の違いは何であるgit checkout .とはgit checkout -- .
Evan Hu

5
@エヴァン:この場合、違いはありません。
Robert Siemer 2015

10
@ロバートシーマー、そして一般的なケースでは?
RJFalconer 2015年

2
@エヴァン:この質問をするのに悪い場所。–それはOPの質問とは無関係であり、ここでの回答とは無関係です。
Robert Siemer、2015年

14
+1これは正しい回答です。これは、一部のファイルに段階的変更非段階的変更の両方がある場合を正しく処理するためです。このソリューションは、ステージングされていない変更を破棄することに注意してください。それらを保持したい場合は、@ greg-hewgillの回答を使用してくださいgit stash save --keep-index
Rhubbarb 2015年

248
git clean -df

現在のディレクトリから始めて、バージョン管理されていないファイルを再帰的に削除して、作業ツリーをクリーンアップします。

-d:追跡されていないファイルに加えて追跡されていないディレクトリを削除する

-f:力(clean.requireForce設定によっては必要ない場合があり ます)

実行git help cleanしてマニュアルを表示


なぜこの回答にはすべての票がないのですか?2011年に答えたが、それでも正しい。
Eugene Braginets 2018年

106

私のお気に入りは

git checkout -p

これにより、チャンクを選択的に元に戻すことができます。

以下も参照してください。

git add -p

9
破棄される前に実際の変更を確認できる機能が気に入っています。
Penghe Geng、2015

これは私が使用するものです。git checkout -p、次に「a」ですべてを受け入れます。
マティス

2
考えたことはありません。これ-pにより、安全性がさらに高まります。それと組み合わせて、git clean -d実際にOPに答えます。
Stephan Henningsen

96

答えは私が使用する正確なオプションの組み合わせを示唆していないので、ここにあります:

git clean -dfx
git checkout .

これは、使用したgit cleanオプションのオンラインヘルプテキストです。

-d

追跡されていないファイルに加えて、追跡されていないディレクトリを削除します。追跡されていないディレクトリが別のGitリポジトリによって管理されている場合、デフォルトでは削除されません。-fこのようなディレクトリを本当に削除したい場合は、オプションを2回使用してください。

-f

Gitの構成変数がいる場合clean.requireForceに設定されていないfalse、Gitのクリーンは、与えられない限り、ファイルやディレクトリを削除することを拒否します-f-nまたは-i.git2番目-fが指定されない限り、Gitはサブディレクトリまたはファイル内のディレクトリの削除を拒否します。

-x

.gitignore(ディレクトリごとに)およびからの無視ルールを使用しないでください$GIT_DIR/info/exclude。ただし、-eオプションで指定された無視ルールは引き続き使用してください。これにより、ビルド製品を含むすべての追跡されていないファイルを削除できます。これを(おそらくと組み合わせてgit reset)使用して、クリーンビルドをテストするための初期の作業ディレクトリを作成できます。

また、git checkout .レポのルートで実行する必要があります。


このソリューションの+1。「git checkout。はリポジトリのルートで実行する必要がある」というあなたの発言に関して、多分あなたはgit reset --hard代わりに私たちができるだけだと言うかもしれませんか?(これは実際には同等でgit reset --hard HEADあり、どちらが現在のディレクトリでも機能するはずです...)
ErikMD

2
また、最初のコマンドについて、git clean -dfx実行する前に安全な側におくために使用するヒントを次に示します。直前に実行git clean -d -x -nして、削除するファイルのリストを表示し、実行して操作を確認しますgit clean -d -x -f(引数を指定します)-n-f最終的にはターミナルですばやく変更できるようにするため)
ErikMD

5
これは元に戻せないことに注意して.gitignoreください。ファイルが入っていると、それらは失われます。したがって、この前にプロジェクトをバックアップすることを検討してください。
ロブ

69

既存のファイルへの変更を削除するだけの場合は、checkoutここに記載されている)を使用します

git checkout -- .
  • ブランチが指定されていないため、現在のブランチをチェックアウトします。
  • 二重ハイフン(--)は、2番目の引数(パス)として続くものをGitに伝え、ブランチの指定をスキップしたことを示します。
  • ピリオド(.)はすべてのパスを示します。

最後のコミット以降に追加されたファイルを削除したい場合は、cleanここに記載されている)を使用してください:

git clean -i 
  • この-iオプションは、clean誤った削除を防ぐために、インタラクティブを開始します。
  • 他のいくつかのオプションを使用して、より迅速に実行できます。ドキュメントを参照してください。

後でアクセスできるように変更を保留スペースに移動したい場合は、stashここに記載されている)を使用します。

git stash
  • 後でアクセスできるように、すべての変更はGitのStashに移動されます。
  • より微妙な隠し場所にはいくつかのオプションがあります。ドキュメントを参照してください。

これにより、変更が正確に変換され、以前にコミットしたときに新しく追加されたファイルが破棄されます。
ヨハン・チョン

説明のためにこれを支持しました:)
Archie

62

どのコマンドをいつ使用するかを説明するのに、この記事は本当に役に立ちました:http : //www.szakmeister.net/blog/2011/oct/12/reverting-changes-git/

いくつかの異なるケースがあります:

  1. ファイルをステージングしていない場合は、を使用しますgit checkout。チェックアウト「インデックス内のバージョンと一致するように作業ツリー内のファイルを更新します」。ファイルがステージングされていない場合(別名、インデックスに追加されている場合)...このコマンドは基本的に、ファイルを最後のコミット時の状態に戻します。

    git checkout -- foo.txt

  2. ファイルをステージングした場合は、git resetを使用します。リセットは、コミットに一致するようにインデックスを変更します。

    git reset -- foo.txt

使用することgit stashは、少し危険が少ないため、人気のある選択だと思います。git resetを使用しているときに誤って吹き飛ばしすぎた場合は、いつでも元に戻すことができます。デフォルトでは、リセットは再帰的です。

詳細については、上記の記事をご覧ください。


60

これを行う最も簡単な方法は、次のコマンドを使用することです。

このコマンドは、作業ディレクトリの変更を破棄するために使用されます-

git checkout -- .

https://git-scm.com/docs/git-checkout

gitコマンドでは、追跡されていないファイルを隠しておくには、次のようにします。

git stash -u

http://git-scm.com/docs/git-stash


19
二度ここに来て、この答えを読ん.で、最後にを忘れました。未来の私にとって:期間は不可欠です!
ベジャド2017年

2
他のすべての変更を吹き飛ばすことなく、サブディレクトリ内のすべてのローカル変更を取り除く必要がありました。この回答は非常に役に立ちました。ありがとう
Ally

2
2つのコマンドの機能を説明してください。説明がないのは本当に役に立ちません。
クリスケネディ

2
優秀な。チェックアウトは1つのコマンドで実行され、最も一般的なものは2つです。git clean -fdインデックスにないファイルをクリーンアップするためにフォローアップすることもできます。
オリゴフレン2017年

49

ステージングされていない変更を保持することに興味がない場合(特に、ステージングされた変更が新しいファイルである場合)、これは便利です。

git diff | git apply --reverse

44

git checkout -f


man git-checkout

-f, --force

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

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


2
これはインデックスの変更を破棄します!! (そしてOPはそれらをそのままにしておく必要があります。)
Robert Siemer '19

44

git statusと入力すると、 (「git checkout-...」を使用して作業ディレクトリの変更を破棄します) が表示されます。

例えば git checkout -- .


1
すべてのファイルをすばやく破棄するのに役立つわけではないため、反対票が投じられました。3つのドットは、すべてのファイルをリストする必要があることを示しています。たとえば、大量のファイルを一度に破棄する必要がある場合、これは特に悪いことです。あなたは維持したいあなたはすべての修正を上演した後に大規模なマージ中
USR-ローカルΕΨΗΕΛΩΝ

2
もちろん、正しいコマンドは「git checkout-」です。単一のドット。コメントでは、3つの点が使用されている可能性があり、他の多くのオプションがある示すために、文法的なものだった...
Josef.B

39

git stashを使用できます。問題が発生した場合でも、stashから復帰できます。ここでの他のいくつかの回答と同様ですが、これはすべてのステージングされていないファイルとすべてのステージングされていない削除も削除します。

git add .
git stash

すべてが問題ないことを確認した場合、隠し場所を捨てます。

git stash drop

Bilal Maqsoodからの回答git cleanも私にとってはうまくいきましたが、隠しておくことで私はより詳細に制御できます-誤って失敗した場合でも、変更を取り戻すことができます

更新

私はもう1つの変更があると思います(これが以前にうまくいった理由がわかりません)。

git add . -A の代わりに git add .

せずに-A削除されたファイルが上演されることはありません


38

2019アップデート:

20197月以降、これを正確に実行する新しいコマンドがありますgit restore

ではgit status、今ではGitは以前のようにではなくこのコマンドをgit checkout使用することを推奨しています。

このコマンドを使用して、作業ツリーを特定のコミットに復元したり、インデックスの内容を復元したりすることもできますが、デフォルトでは、作業ツリーはインデックスの状態に復元されます(ここで尋ねられた内容)。

したがって、pathspecに一致するファイルを復元するには(ステージングされていない変更を取り除く)、次のようにします。

git restore <pathspec>

たとえば、ステージングされていないすべての変更を現在のディレクトリに復元するには、次のコマンドを実行します。

git restore .

これをプロジェクトのルートから実行すると、ステージングされていないすべての変更がリポジトリ全体に復元されます。

git checkout -- .(Mariusz Nowakによって指摘されたように)これはGitによって追跡されたファイルへの変更のみを破棄し、新しい追跡されていないファイルは破棄しないことに注意してください。新しい追跡されていないファイルを含む、ステージングされていない変更を破棄したい場合は、追加で実行できます。

git clean -df

この後のコマンドには十分注意してください。ただし、削除するつもりがなかったファイルは破棄される可能性があります。


注意git restore:これは新しいコマンドなので、そのmanページは警告を出します:

このコマンドは試験的なものです。動作が変わる場合があります。

したがって、将来的に動作が変更されると、この回答が古くなる可能性があります。したがって、man git-restore使用する前にクイックを実行するのが賢明かもしれません。


2
新しく追加されたファイルに影響を与えずに、ステージングされていない変更を元に戻したいので、 git restore .完全に機能しました。ありがとう。
Saurabh Misra

3
私はそうしましたgit restore <filename>、そしてそれは完全に働きました。
マーリン

1
私にとってはうまくいきました。
プロメテウス

1
マニュアルページによると、git restore .リポジトリ全体ではなく、現在のディレクトリにあるすべてのファイルを復元します。
jarno

1
あなたが正しいです。ありがとう!私はそれをテストしました、そして実際、それは事実です。ただし、再帰的です。したがって、プロジェクトのルートから実行すると、リポジトリ全体に適用されます。回答を編集します。
プロソイト

35

変更を破棄する代わりに、リモートを原点にリセットしました。注-この方法は、フォルダーをリポジトリのフォルダーに完全に復元するためのものです。

だから私はこれを行って、私がgit resetしたときに彼らがそこに座っていないことを確認します(後で-Origin / branchnameのgitignoresを除外します)

注:まだ追跡されていないがGITIGNOREではないファイルを保持する場合は、リモートリポジトリにない追跡されていないファイルをワイプするため、この手順をスキップすることができます(@XtrmJoshに感謝)。

git add --all

その後私は

git fetch --all

次に、元にリセットします

git reset --hard origin/branchname

それはそれを正方形に戻します。ブランチを再クローニングするのと同じように、gitignoredされたすべてのファイルをローカルで適切な場所に保持します。

以下のユーザーコメントごとに更新:ユーザーが現在使用しているブランチにをリセットするバリエーション。

git reset --hard @{u}

これが私の推奨オプションですが、なぜ最初にすべての変更を追加するのですか?私が知っている限り、これはGitファイルのディレクトリリストを変更するだけですが、git reset --hardを使用している間は、ディレクトリは削除されますが、いずれにしても失われます。
XtrmJosh

MacやLinuxではいけません。githubwindows powershellは、リセット後にファイルをそこに残すことがあります。git resetはリポジトリ内のすべてのファイルを元の状態に設定するためだと思います。追加されない場合は、変更されません。デスクトップクライアントは、「このファイルはここにあり、コミットする必要がある」ということをピックアップします
Nick

センスができました。私はWindowsを使用していないので、その問題は確認していません(少なくとも過去数か月間Windowsを使用していません。それ以前はあまり覚えていません。これは残念なことです)。主な回答の根拠に注意する価値があるかもしれません:)
XtrmJosh

Macでもこの問題に遭遇しました。ファイルがリポジトリで追跡されていない場合、git resetがファイルに触れないことがあります。私は本当に「なぜ」を分離することはできませんが、それが発生した場合、リセットしてもまだコミットされていないファイルが1つまたは2つある場合は、-allとreset --hardを再度追加します
Nick

2
私が好きなこの小さな素敵なバリエーションはgit reset --hard @{u}、現在のリモート追跡ブランチがある場所にブランチをリセットすることです
user2221343

31

上記のすべてのソリューションを試しましたが、まだ新しいステージングされていないファイルを取り除くことができませんでした。

git clean -fこれらの新しいファイルを削除するために使用します- ただし注意してください!強制オプションに注意してください。


21

単に言う

git stash

ローカルの変更がすべて削除されます。後で言うことでも使用できます

git stash apply 

またはgit stash pop


21

ただ使用する:

git stash -u

できました。簡単です。

stashスタックが本当に気になる場合は、でフォローできますgit stash drop。しかし、その時点で(Mariusz Nowakから)を使用したほうがよいでしょう。

git checkout -- .
git clean -df

それでも、1つのコマンドgit stash -uですべての追跡された変更と追跡されていない変更を「破棄」するので、私は最高のものが好きです。しかし、唯一の破棄の変更、および追跡のみ破棄人跡未踏の変更を...と両方のコマンドを入力することでこれまであまりにも多くの仕事:)git checkout -- .git clean -df


注:git stash -uまもなく(Git 2.14.x / 2.15、Q3 2017)少し進化します:stackoverflow.com/a/46027357/6309
VonC

OPの質問が正しい場合、インデックス付きファイルを保持する必要があります。ステージングされていない変更のみを削除してください。git stash -k私の意見ではそうです。
スナップ

21

完全に破棄するには: git reset --hard

後で変更を保存するには: git stash


16

これは次のディレクトリでも機能します。通常のgit権限以外。

sudo chmod -R 664 ./* && git checkout -- . && git clean -dfx

最近私に起こった


ただし、gitで無視されたコンテンツには元の権限が保持されないことに注意してください。したがって、セキュリティリスクを引き起こす可能性があります。
Twicejr

@twicejr不正解です。git help clean「-d追跡されていないファイルに加えて追跡されていないディレクトリを削除する」をお読みください。
GlassGhost

なぜすべてのファイルを読み取り/書き込み可能に設定したのですか?良い習慣ではありません。
Ghoti

@Ghoti悪い、664は正しい?回答を編集することもできます。
GlassGhost 2015

すべての権限を664に設定すると、プロジェクトに必要な権限の種類について多くの仮定が行われます。コマンドのその部分を使用すると、一部の人にとって問題が発生すると思います。
ianrandmckenzie


14
cd path_to_project_folder  # take you to your project folder/working directory 
git checkout .             # removes all unstaged changes in working directory

12

私の考えでは、

git clean -df

トリックを行う必要があります。git cleanのGitドキュメントに従って

git-clean-作業ツリーから追跡されていないファイルを削除する

説明

現在のディレクトリから始めて、バージョン管理されていないファイルを再帰的に削除して、作業ツリーをクリーンアップします。

通常、Gitに認識されていないファイルのみが削除されますが、-xオプションが指定されている場合、無視されたファイルも削除されます。これは、たとえば、すべてのビルド製品を削除するのに役立ちます。

オプションの...引数を指定すると、それらのパスのみが影響を受けます。

オプション

-d追跡されていないファイルに加えて、追跡されていないディレクトリを削除します。追跡されていないディレクトリが別のGitリポジトリによって管理されている場合、デフォルトでは削除されません。そのようなディレクトリを本当に削除したい場合は、-fオプションを2回使用します。

-f --force Git構成変数clean.requireForceがfalseに設定されていない場合、-f、-n、または-iを指定しない限り、git cleanは実行を拒否します。


11

リポジトリがどのような状態であっても、以前のコミットにいつでもリセットできます。

git reset --hard <commit hash>

これにより、そのコミット後に行われたすべての変更が破棄されます。


2
これにより、OPが要求する範囲を超える、インデックス内のすべてのもの(インデックス内にないものだけでなく)も破棄されます。
Linus Arver

10

git clean -dfよりも具体的な新しいファイルを取り除く別の方法(必ずしもすべてではない一部のファイルを取り除くことができます)は、最初に新しいファイルをインデックスに追加し、次にstashしてからドロップします隠しておく。

この手法は、何らかの理由で、追跡されていないファイルを通常のメカニズム(rmなど)で簡単に削除できない場合に役立ちます。


9

以下は、別のリポジトリと定期的に同期(プルリクエストなど)するリポジトリのフォークを使用している場合の実際の解決策です。短い答え:forkとreforkを削除しますが、githubの警告を読んでください

私は同様の問題を抱えていましたが、おそらく同じではなく、私の解決策は理想的ではないと言って悲しいですが、最終的には効果的です。

私はしばしば次のようなgitステータスメッセージを表示します(少なくとも2/4ファイルが含まれます):

$ git status
# Not currently on any branch.
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   doc/PROJECT/MEDIUM/ATS-constraint/constraint_s2var.dats
#       modified:   doc/PROJECT/MEDIUM/ATS-constraint/parsing/parsing_s2var.dats
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   doc/PROJECT/MEDIUM/ATS-constraint/constraint_s2Var.dats
#       modified:   doc/PROJECT/MEDIUM/ATS-constraint/parsing/parsing_s2Var.dats

鋭い目で、これらのファイルには、大文字と小文字が区別されない場合の1文字のdopplegangersがあることに注意してください。どういうわけか、私がこのパスを最初に何に導いたのか(私は上流のリポジトリから自分でこれらのファイルを操作していなかったため)、私はこれらのファイルを切り替えていました。このページ(および他のページ)にリストされている多くの解決策を試しても、役に立たないようです。

フォークしたリポジトリとすべてのローカルリポジトリを削除し、フォークすることで問題を解決できました。これだけでは十分ではありませんでした。アップストリームは、問題のファイルの名前を新しいファイル名に変更する必要がありました。コミットされていない作業、ウィキ、アップストリームリポジトリから分岐する問題がない限り、問題はありません。控えめに言っても、上流はあなたにあまり満足していないかもしれません。私の問題については、私はgitにそれほど熟達していないため、間違いなくユーザーエラーですが、点を修正するのは簡単ではなく、gitの問題にもほど遠いという事実です。


7

スタッシュを他の人に転送したい場合:

# add files
git add .  
# diff all the changes to a file
git diff --staged > ~/mijn-fix.diff
# remove local changes 
git reset && git checkout .
# (later you can re-apply the diff:)
git apply ~/mijn-fix.diff

[編集]コメントのとおり、スタッシュに名前を付けることができます。まあ、あなたがあなたの隠し場所を共有したいなら、これを使ってください;)


5
実際、Git stashにはタイトルを付けることができます。例えばgit stash save "Feature X work in progress"
Colin D Bennett

7

説明的な方法でそれを行う方法を説明する独自のエイリアスを作成できます。

次のエイリアスを使用して変更を破棄します。


作業ツリー内のファイルのリストの変更を破棄する

discard = checkout --

次に、それを次のように使用して、すべての変更を破棄できます。

discard .

または単にファイル:

discard filename

そうでなければ、すべての変更と追跡されていないファイルを破棄したい場合は、チェックアウトとクリーンを組み合わせて使用​​します。

作業ツリーの変更と追跡されていないファイルをクリーンアップして破棄する

cleanout = !git clean -df && git checkout -- .

したがって、次のように使用は簡単です。

cleanout

多くのエイリアスを含む次のGithubリポジトリで利用可能になりました:


7

ファイルが常にステージングされないという奇妙な状況がありました。これは解決に役立ちます。

git rm .gitattributes
git add -A
git reset --hard

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.