gerrit – git (pull vs checkout vs cherrypick) which is for what?

You are right about the first one. Here are the rest of them:

  1. Checkout: Fetches the latest changes. You should already have this repo downloaded. It does not merge those new changes but makes your working directory reflect them. And a name-less commit is created to include these changes in your working directory. And a detached HEAD pointing to it. You can merge them at your leisure later.
  2. Pull: Fetches the changes AND merges them into the local branch of the same name.
  3. Cherry-pick: Fetches the commit and plays it on top of the current local branch, thus creating an entirely new commit which happens to have same changes as the one it fetched.

They are a little different than what they actually mean in git. checkout and cherry-pick don’t automatically fetch the changes. checkout just takes HEAD to a commit you specify, thus making working directory exactly as it was at that commit. Likewise, cherry-pick is used to replay commits which you already have local access to.

Leave a Comment