So Whats The Matter ?
from somewhere in the internet
Will It ?
Imagine this, you were working on some feature that hasn’t been completed and something important came up and you dont want to commit this partial feature with that urgent feature that you added and during this situations, there are a few options :
Horrible one
Reset all the changes and clean out un-tracked stuff
git reset HEAD --hard
git clean -fd
You can do this if there isn’t much that you have done since the last commit. But if you ve spent hours working on it and you are about to complete that? Not a good idea then.
The Correct Way :
You should use git-stash
git stash
Just consider it like a clipboard, running this command will move all your changes to stash. After that you can start working upon that urgent feature, commit that and once you are ready to start working upon that partial feature that you were working upon back at the point when you had to stash the changes, you can get your stashed changes back to your working copy by :
git stash apply
You can clear your stash by using :
git stash -u
and no it will not stash your untracked file
for stashing untracked files you need to run :
To stash untracked files as well, you need to do
git stash -u
Time for some meme's
commit your thoughts in the comment section
# Conclusion
Top comments (1)
I find git stash is best used to move changes to another branch, as it will handle merge conflicts. Though there is autostash for that. Anything else seem to get me in trouble.
You shouldn't be afraid to partial commit git has
--amend
and--fixup
for that.Also I came across an article about working tree to make a clone of the repo in another directory.