completion: change highlighting scheme for completion listing

Use only two colors.  The prefix is highlighted in bold blue and the rest in
bold white, same as the highlighting scheme for isearch and default contexts
in ZLE.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Start a bundle for custom git extensions.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Move git helper function from functions/git to git bundle.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Git: import existing ~/.gitconfig.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Git: always enable autosquash option for rebase -i.

When autosquash option is set:

When the commit log message begins with "squash! …" (or "fixup! …"), and there
is a commit whose title begins with the same …, automatically modify the todo
list of rebase -i so that the commit marked for squashing comes right after the
commit to be modified, and change the action of the moved commit from pick to
squash (or fixup).

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Git: use diff3 style to present merge conflicts.

In "diff3" style, a conflict may look like this:

Here are lines that are either unchanged from the common
ancestor, or cleanly resolved because only one side changed.
<<<<<<< yours:sample.txt
Conflict resolution is hard;
let's go shopping.
|||||||
Conflict resolution is hard.
=======
Git makes conflict resolution easy.
>>>>>>> theirs:sample.txt
And here is another line that is cleanly resolved or unmodified.

In addition to the <<<<<<<, =======, and >>>>>>> markers, it uses another
||||||| marker that is followed by the original text. You can tell that the
original just stated a fact, and your side simply gave in to that statement and
gave up, while the other side tried to have a more positive attitude. You can
sometimes come up with a better resolution by viewing the original.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Git: reuse recorded resolution of conflicted merges.

Helpful when I have to resolve same conflict multiple times when rebasing a
topic branch.  Git records resolution for each conflict, and automatically
reuses them when a same conflict presents itself.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Git: branch.autosetuprebase.

When a new branch is created with `git branch` or `git checkout` that tracks
another branch, automatically set up pull to rebase instead of merge.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Git: set templates directory.

Contents of template directory are copied to repository's .git/ directory on
`git init`.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Git: prepare a list of files patterns that should always be excluded.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Git: automatically include Signed-off-by line in commit messages.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Git: automatically comment out the "Conflicts:" part of a merge commit message.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Update dircolors-solarized.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Git: change alias for rebase --continue and rebase --abort.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Git: add alias for rebase --skip.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>