'Git: Cherry-Pick to working copy without commit
I have several branches where I keep certain commits that I want to apply to my working copy every now and then. Initially I tried cherry-picking but I do not want to have the commit in the target branch later.
So I did cherry-pick + reset HEAD~1 --soft
Is there something simpler like cherry-picking to working copy only?
Solution 1:[1]
If you are using Terminal
git cherry-pick -n <HASH>
If you are using Intellij Idea
Settings -> Version Control -> git
untick commit automatically on cherry-pick
Solution 2:[2]
Solution 3:[3]
You can also use apply instead of cherry-pick if you're just trying to apply all the changes you made in a commit to your working directory:
git show <commit> | git apply
This will apply the changes made in but will not add them to staging or create a commit.
Solution 4:[4]
I was getting errors that error: server/metadata/metadata-preui-prod.xml: No such file or directory
So now I do this
git checkout SHA -- server/metadata && git reset -- server/met
adata
Old
git show SHA -- file1.txt file2.txt | git apply -
or all files from SHA
git show SHA | git apply -
Solution 5:[5]
Simply run:
$ git cherry-pick --no-commit <HASH>
Solution 6:[6]
To solve this in Visual Studio 2019 without opening a console I went to the "Git Repository" window and right clicked on the Git Commit history and did a cherry pick on the commit I wanted. This commits the cherry pick. But then I did a right click on the commit below and did a "Reset -> Keep changes (--mixed)" which reset the commit but kept the changes uncommitted.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Ravinda Lakshan |
| Solution 2 | Trayan Momkov |
| Solution 3 | adamgy |
| Solution 4 | |
| Solution 5 | moriarty007 |
| Solution 6 | Janspeed |

