Undoing Changes
Sync with remote, overwrite local changes
git fetch origin && git reset --hard origin/master && git clean -f -d
Git reset first commit
git update-ref -d HEAD
Reset: preserve uncommitted local changes
git reset --keep <commit>
Revert: Undo a commit by creating a new commit
git revert <commit-ish>
Reset: Discard commits, advised for private branch
git reset <commit-ish>
Before deleting untracked files/directory, do a dry run to get the list of these files/directories
git clean -n
Forcefully remove untracked files
git clean -f
Forcefully remove untracked directory
git clean -f -d
Undo assume-unchanged.
git update-index --no-assume-unchanged <file_name>
Clean the files from .gitignore.
git clean -X -f
Dry run. (any command that supports dry-run flag should do.)
git clean -fd --dry-run
Unstaging Staged file
git reset HEAD <file-name>
Revert: Reverting an entire merge
git revert -m 1 <commit-ish>
Restore file (modern alternative to reset/checkout --)
git restore <file-name>
Alternatives:
git restore --staged <file-name>