Commits / Cherry-pick

git cherry-pick abcd0123

A commit exists on a feature branch, let’s call that branch_a.

Let’s head back to our sample repository and add a new commit to branch_a:

$ echo 4 >> new_file
$ git add new_file 
$ git commit -m 'forth commit'
$ git log --oneline --decorate --all --graph
* 87b5eff (HEAD -> branch_a) forth commit
* c890001 thirdcommit
| * 1094303 (master) secondcommit
|/  
* 16797ce (tag: first_commit_tag) first commit m8

Now we can see the commit we made. Let’s checkout master

$ git checkout master

Now say we just wanted that 87b5eff forth commit on master, and not c890001 third commit… We could cherry-pick just that change on to our master branch, so we wouldn’t have to merge the whole branch over, just that commit.

git cherry-pick 87b5eff

* 74d1d09 (HEAD -> master) forth commit
* 1094303 secondcommit
| * 87b5eff (branch_a) forth commit
| * c890001 thirdcommit
|/  
* 16797ce (tag: first_commit_tag) first commit m8

Now that we know about cherry-pick, lets take a look at git reset and resetting changes.