mail

git cherry-pick

Usage :

Apply the changes introduced by some existing commits :
  1. make sure the working tree is clean : no changes on HEAD
  2. pick one or more commits
  3. these commits are re-applied, recording a new commit for each picked commit
    Commits are not moved, they are copied.
Which gives :

Don't forget :

  • cherry-pick commits in the chronological order
  • successfully cherry-pick'ed commits are regular commits, which means you can undo a cherry-pick just like you would with any commit (source)
mail

git clean

Usage :

Cleans the working tree by recursively removing files that are not under version control, starting from the current directory.

Flags :

Flag Usage
-i --interactive show what would be done and clean files interactively
-n --dry-run don't actually remove anything, just show what would be done
mail

git commit

Usage :

git commit stores the current contents of the index (+ a log message) in a new commit, into the repository. The data to be committed can be specified either : The usual syntax is :
git commit [options, whether to commit index or listed files] -m "commitMessage"

Flags :

Flag Usage
--amend instead of creating a new commit, git commit --amend adds stuff into the previous commit. The typical use cases are when :
  • you forgot to commit a file
  • you discover a minor error just after committing
  • you want to edit the commit message (typo, missing information, ...)
This rewrites the history and, as usual, must not be applied to pushed commits.
--date 'someDate' Override the author date used in the commit.
-m message
--message=message
Use message as the commit message.
If multiple -m options are given, their values are concatenated as separate paragraphs.
--no-edit To be used with --amend : don't offer to edit the commit message when amending a commit
mail

git checkout

Usage :

Updates files in the working tree to match the version in the index or the specified tree. If no paths are given, git checkout will also update HEAD to set the specified branch as the current branch.

Flags :

Flag Usage
(none) git checkout branch : "cd" to branch
-b
git checkout -b newBranch
create + checkout the branch newBranch
git checkout -b newBranch commitId
create a new branch named newBranch from commitId
git checkout -b branch origin/branchName
checkout the remote branch origin/branchName locally as branch (source)
-t --track When creating a new branch, set up upstream configuration
This can be used to "checkout" a branch we got from an upstream repo :
  1. git fetch upstream
  2. git checkout --track upstream/someBranch
mail

git clone

Usage :

Clone a repository into a new directory

Flags :

Flag Usage
--bare Make a bare Git repository
-b branch
--branch branch
clone the specified repository then checkout the branch branch

Example :

How to clone a single branch (source) :

git clone gitUser@gitServer:projectName.git -b branch /destination/directory
mail

git config

Usage :

Get/set repo/global config options

Exit Status :

Code Condition Details
1 The specified option does not exist or is not set

Example :

  • git config -l
  • git config --list | grep configurationOption
  • git config --get user.email
  • git config --get-regexp user.*