this post was submitted on 11 Aug 2023
287 points (98.6% liked)

Programming Humor

2526 readers
2 users here now

Related Communities [email protected] [email protected] [email protected] [email protected]

Other Programming Communities [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected]

founded 1 year ago
MODERATORS
 

Want to make a branch ?

git checkout

Want to make switch branches ?

git checkout

Want to get a specific file version ?

git checkout

Want to get remove changes to one file ?

Believe it or not, also git checkout

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 1 year ago (1 children)

Nice, would you explain cherry picking to me, a dummy?

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago) (1 children)

You can copy a commit that was pushed in branch 1 and paste it to branch 2

[–] [email protected] 1 points 1 year ago (1 children)

Thanks. I wonder what effect that has on the git history of branch 2?

For some reason I thought cherry picking might be the ability to take any file from any commit on any branch and copying it to the current branch.

[–] [email protected] 2 points 1 year ago (1 children)

the pasted commit will be at the top of the history for branch 2

[–] [email protected] 1 points 1 year ago (1 children)

That seems like it would cause chaos if those branches were ever merged.

[–] [email protected] 5 points 1 year ago

Git's smart enough to realize it's the same commit and skip it.

Common workflow use of cherry-pick:

  1. Say you have a master branch and a release branch
  2. You have a bug in production (off your release branch)
  3. You have other changes in master that are not ready for release
  4. You make a commit to fix the bug and merge to master, run CI and verify it's fixed
  5. Cherry pick the change to the release branch and release as normal
  6. Merge with master before next release to make sure you can cut a new release

All this works without issue.