web-dev-qa-db-ja.com

SourceTreeでコミットされていない変更を破棄する方法は?

Git環境は初めてで、MacのSourceTreeでBitBucketを使用しています。ここでやりたいことは、最後のコミット以降の変更を破棄することです。どうすればいいですか? 「変更を破棄」のようなものを見つけていないし、最後のコミットから直接プルしてもうまくいかないようだ。 GUIまたはコマンドラインのいずれかを使用して行うソリューションが適切です。ありがとうございました。

68
goldfrapp04

使用したい

git stash

これにより、コミットされていないすべての変更が stash に保存されます。これらの変更を後で破棄する場合は、git stash drop(または復元するにはgit stash pop)だけを使用します。

これは技術的には変更を破棄する「適切な」方法ではありません(他の回答やコメントが指摘しているように)。

50
Max

MacSourceTreeで、破棄するファイルを右クリックします(作業ツリーのファイルリスト) 、およびResetを選択します。

WindowsSourceTreeで、破棄するファイルを右クリック(Working Copy Changesリスト)、およびDiscardを選択します。

gitでは、次のようにします。

git reset --hardは、バージョン管理されたファイルに加えられた変更を破棄します。

git clean -xdfは、無視されたファイル(xオプション)を含む新しい(ntracked)ファイルを消去します。 dは追跡されていないディレクトリも削除し、fは強制的に削除します。

130
Roberto

ステージングされていないファイルで、右側の3つのドットをクリックします。クリックすると、Discard fileできるポップオーバーメニューが表示されます。

7

OK私はちょうど私の質問がすでに質問タイトルで回答されていることに気づきました。

ファイルのステージングを解除するには

git reset HEAD /file/name

そして、ファイルへの変更を元に戻すには

git checkout -- /file/name

フォルダー内にファイルのバッチがある場合は、フォルダー全体を元に戻すことができます

git checkout -- /folder/name

これらのすべてのコマンドは、git status

ここでは、ダミーリポジトリを作成し、3つの可能性すべてをリストしました。

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   test
#
# 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:   test2
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       test3
3

Sourcetree guiで作業ディレクトリをクリックし、破棄するファイルを右クリックして、[破棄]をクリックします

3
giuse