There are few conditions here, long words in short:
Situation 1: Some changes have been made, but not git add
yet. Need to restore this file to previous version.
git checkout -- your_file_name
Situation 2: Some changes have been made and already git add
.
git reset HEAD your_file_name
Situation 3: Some changes have been made, git add
and already git commit
. Be cautious: the change will be permanently lost
git reset --hard HEAD^1
In git, there are few concepts you need to know:
- Workspace (Working directory, working area): where your code sits
- Local Repo: includes the all the commits, logs and etc
- Stage area: this is the layer between workspace and local repo, contains some changes you made but haven't committed yet.
So regarding the situation 1, the changes are only made in the workspace.
Under situation 2, the changes are made and added to the staging area
For situation 3, changes are made, added to staging area and also added to local repo:
Reference
- Image "Designed by stories / Freepik"
- Needone