![]() ![]() That way the "somewhere" that you are applying them, has nothing else in it, and you'll just be trying the stashed changes: git status # see if there's anything you need to commit This one is beyond the scope of this answer see this other StackOverflow answer instead.įor complicated cases, I recommend starting in a "clean" working tree first, by committing any changes you have now (on a new branch if you like). You're using git stash save -keep-index in order to test "what will be committed". So now you use git stash apply -index, and that sometimes fails with: Conflicts in index. You had one version in the stashed index/staging area and another (different) version in the working tree. (Extra-advanced) You've used git stash save -p, or carefully git add-ed and/or git rm-ed specific bits of your code before running git stash save. ![]() I personally prefer to transfer these changes to a new branch, because branches have names, and cleanup-attempt-in-December means a lot more to me than (The git stash command takes an optional save-message, and those can help, but somehow, all my stashes just wind up named WIP on branch.) ![]() Again, the one without a number is also you pile up a lot of stashes, it can get fairly messy (was the stash I wanted or was it Wait, I just pushed another, now they're 8 and 5?). Dropping a specific stash renumbers only the higher-numbered ones. You can apply and then drop a specific stash, too: git stash apply and so on. If you had, even more, the one that was becomes and so on. When you git stash drop, it drops the newest, and the one that was moves to the top of the stack. The newest is always the lowest-numbered. If you do that, you have two stashes, one just called stash-but you can also write one spelled Use git stash list (at any time) to see them all. You can in fact git stash save again, as git stash makes a "stack" of changes. Now you want to keep, or even move, these changes, and apply your stash too. Then you switched to another branch and started more changes, forgetting that you had the stashed ones. You started some changes and stashed them.Inspect the results carefully (with git diff) to see if you like them, and if you do, use git stash drop to drop the stash. ![]() This gets Git to merge in your earlier changes, using Git's rather powerful merge mechanism. Check out the other branch and use git stash apply. Run git stash save (or plain git stash, same thing). You just want to take the changes you have now and "move" them to another branch. You started with a clean branch, were working on some changes, and then realized you were doing them in the wrong branch.The above is for "way 1", the "easy way": There are at least three or four different "ways to use git stash", as it were. What if you're doing more-advanced or more-complicated stuff? It's all pretty minor one way or the other though, and for a newbie to Git, it should be about the same. If you apply, you get to choose when to drop. If pop is able to extract the stash, it will immediately also drop it, and if you subsequently realize that you wanted to extract it somewhere else (in a different branch), or with -index, or some such, that's not so easy. The difference is that apply leaves the stash around for easy re-try of the apply, or for looking at, etc. I always suggest using git stash apply rather than git stash pop. Then use git diff to see the result.Īfter you're all done with your changes-the apply looks good and you're sure you don't need the stash any more- then use git stash drop to get rid of it. Just check out the branch you want your changes on, and then git stash apply. If it lists your directories folders and files, it means that your configuration was successful.The easy answer to the easy question is git stash apply Close all terminals, as well as GitHub desktop, then open the windows command line again at the project root folder then execute ls command.Make sure bin folder path is available in the env path variables. To be able to use linux commands in windows cmd.Can now use Linux commands in Cygwin Terminal.Install (Follow vid for installation and setup : ).Note that I had already tried this before posting the question on Stack overflow, but windows had not recognized those commands because they are Linux commands.To solve this, I installed cygwin which allows you to use linux commands in windows : If commit is the right one, recover changes with git stash apply *hash*.Show contents with git show *hash* using one of the hashes listed in previous command.Command to list all lost/unreachable stash like commits git fsck -unreachable | grep commit | cut -d ' ' -f3 | xargs git log -merges -no-walk.I was able to recover the stash using the following commands : ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |