Suppose I create (but do not commit) a file file.txt, and then type git checkout HEAD or git checkout HEAD .. I thought git checkout basically overwrote your current working files with the snapshot at the commit you give it, so I would have thought this would delete file.txt. But it doesn't. Why?
Why does git checkout not delete new files?
5k views Asked by Jack M At
2
There are 2 answers
0
Andrei Prigorshnev
On
git checkout doesn't overwrite your working copy by-design.
It works in the same way as git reset --hard but with the important difference - git checkout is working-directory safe, so it doesn't overwrite existing changes in your working directory. Actually, it’s a bit smarter — it tries to do a trivial merge in the working directory.
So, if you want to discard all of your changes and just get the snapshot from HEAD use git reset --hard HEAD or just git reset --hard instead.
But even git reset --hard doesn't remove your untracked files. To remove untracked files:
- Run
git clean --dry-run. It just tells you what will be removed. Do it because cleaning is a dangerous command. - Run
git clean --forceto eventually remove your untracked files.
You can find more details about git checkout and git reset here and about cleaning here.
Related Questions in GIT
- problem to push files on a repository git
- diff3 output in git conflict style, including mergeable hunks
- Git Not In Sync with Local Branch
- Setting up the version control of .dotfiles while the .config is connected to a forked repo
- How to fix overriding the main branch in Git?
- I can't add text to "Message" in VS Code when committing to Git
- How can i redirect pull request from main branch to another branch
- Xcode commits (possibly outside of any branch) disappeared, how to get them back?
- Git/TortoiseGit : how to apply ONLY the changes from ONE commit from branch A, to branch B?
- How can I reintroduce username an password on git using fedora?
- GIT SKIP EMPTY DIRECTORIES
- Git smudge run once per checkout or per commit?
- I can't find ~/.profile or ~/.bashrc in C:/Users/<user>/.ssh folder
- Set environment variable during push for GitHub Actions
- Android WebRTC compile
Related Questions in VERSION-CONTROL
- Setting up the version control of .dotfiles while the .config is connected to a forked repo
- How can i redirect pull request from main branch to another branch
- Visual Studio 2022 convert spaces to tabs on checkout and back to spaces on checkin
- Handle workspace/monorepo with different deployments
- P4 change ownership through command line
- gitignore for Unity VR project does not work
- Different SDK for specific build
- Sourcetree GUI : Why main branch is behind another branch? Is it normal?
- Strongly Connected Components Using Kosaraju Algorithm
- How to use git-credential-gopass with git send-email?
- Run Robot in Jenkinsfile does not fetch the correct test.robot file from Github
- Git Hub not showing my Organization's Repositories in Android Studio
- Sourcetree caches old branches that no longer exist on github. I do not want this
- How to retrieve Inference image location for my Sagemaker pytorch custom model for Model registry
- I have an error with my Material UI react-swipeable-views in TypeScript
Related Questions in GIT-CHECKOUT
- Git checkout updates local branch and remote repository at the same time
- Git LFS Repo Fails To Checkout On Jenkins With Status Code 130
- Non-interactive git restore for specific lines in a file
- How to keep changes when switching branches without using `git stash`
- Why does Git fetch remember and use deleted local tracking branches
- GitHub Actions Checkout with LFS (Private Repo)
- Getting error while copying folder from one branch to another in gitlab repo
- VScode + git: does not checkout submodules
- How to checkout a file from the current tracking branch?
- How to get checked out remote repository directory in github actions
- Is there a simple way to update somebody else's file on gist.github.com?
- GitHub `actions/checkout`: Fetch history up to before the push event
- Azure Cli / Git Checkout previous HEAD is incorrect
- In Git, How do I checkout to a New Branch from an already Existing Branch?
- How can disbale poll scm for specific checkout in Jenkinsfile?
Related Questions in GIT-RESET
- How to remove a feature from master-dev after has been intermingled with other feature commits?
- Reset all files affected by past commit to the state before that commit
- Can't use reset --hard on individual file?
- I want to bring back COMMITED but then deleted files on my local repository after doing git reset hard
- How do I cancel a merge commit (non-squash)?
- I accidentally git reset --hard in the first initial commit, how to restore it back?
- I want to checkout into an existing branch but handle it as a new branch
- Wrong git commit to trunk in local, how to pull clean from remote?
- How do I check what `origin` references in my remote repository?
- git "You have divergent branches" when I havent made any changes or commits
- How can I reset to the main branch in git
- Unknown revision or path not in the working tree on git reset --soft
- Where is the git documentation that specifies that a reset can take a branch name as an argument?
- git reset --hard HEAD~1
- Change files in working directory while not changing branch
Related Questions in GIT-CLEAN
- Delete sensitive string from all Git commits
- git and github i have a problem i hope you will help me
- I did the git clean -fd command and deleted everything
- Any way to avoid git checkout -f "warning directory is not empty"?
- How can I recover files after running "git clean -df" by accident?
- How to print X month ago time before branch name?
- can't delete ".git" using git clean -xdff
- git clean -fd not removing a folder
- clean untracked directories only
- Rejected refs in repo-cleaning
- How to reverse 'git clean -xdf'
- Chaining git clean (Porcelain) command
- How can i remove untracked changes and deleted files showing on my git terminal
- How to restore the files that removed with the git command 'git clean -fdx'
- remove untracked file but not delete it from hard disk
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
file.txt, being untracked, is "invisible" to Git. If there is another file namedfile.txtin the commit you check out, it can be overwritten as a side effect of the check out, but Git won't go out of its way to removed untracked files.