可能性の数が多く、ある状況に適しているものが別の状況に適していないため、「1つの答え」の解決策はありません。したがって、@ twalbergが指摘しているように、さまざまなコマンドと、何が何を、なぜ行うのかを学ぶ必要があります。
そうは言っても....私は通常次のものを使用します:
git reset --hard HEAD
#ローカルで行ったことをすべて削除し、最初にプルした(または最後のコミット以降)バージョンのブランチの使用に戻ります。他の開発者もこれを行うgit reset --hard origin/the_branch_name
ために行います。
git checkout -b new_branch
#新しいブランチに対してこれを実行し、ブランチに多数の変更を加えたときに、新しいブランチでこの作業を実行することを意図していたことに気付きました。また、マージとリベースを行う前に、new_branchからチェックアウト-b new_new_branch_nameを実行して、リベースとマージを行うのが良いことを学びました。そうすれば、問題が発生した場合は、そのブランチを削除して、悪影響を与えることなくやり直すことができます。 。
git rebase -i HEAD~10
過去10回のコミットをインタラクティブにリベースすることを意味します。これは、行われた履歴コミットに変更を加えることを意味します(現在の状態自体は変更されません)。
これにより、コミット履歴内のコミットを押しつぶしたり、並べ替えたり、削除したりできるエディターが表示されます。これは、さまざまなコミットのさまざまな変更を整理して、より少ないコミットにグループ化するための非常に便利なコマンドです。コードレビューの前に、(必要に応じて)常に押しつぶそうとします。
警告:インタラクティブリベースは、特に他の共同作業者がいる場合に、まだリモートにプッシュされていないブランチに最適です(注意しないと履歴を台無しにする可能性があります)。基本的に、まだローカルにいる場合、またはリモートにプッシュしたが、他の誰もそのブランチで作業していないことがわかっている場合に使用するのが最適です。
git checkout path_to/and_file_at/myfile.rb
これは、単一のファイルを最後のコミット時の状態に戻しました。基本的に、ローカルの(コミットされていない)変更は破棄されます。
git clean
-現在のディレクトリから、バージョン管理されていないファイルを再帰的に削除します。