Git Config

Git can be configured by creating a .gitconfig file in your home directory. This is also where changes made with git config --global are saved.

Using this file you can make global changes that will be applied to each repo on your machine (unless overwritten in that repo).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Pretty log format
[log]
    date = relative
[format]
    pretty = shortlog
[pretty]
    shortlog = format:%C(auto,yellow)%h%C(auto,magenta)% G? %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(20,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD
# Default git push behaviour
[push]
    default = current

default = current gives the following behaviour (git-config):

Push the current branch to update a branch with the same name on the receiving end. Works in both central and non-central workflows.

Per Repo Config

Each repo has a file in it at .git/config and this controls configuration for the repo you have checked out

Generall this is updated using git commands such as git branch and git remote however you can also edit it manually

Pushing Commits and Tags in One Go

If you are using a tagging workflow, it can be a pain to have to continously remember to push commits and tags separately.

You can configure things so that git push will always push all commits and tags

Open the .git/config file and find the [remote "origin"] bit and then make it look like this:

1
2
3
4
5
[remote "origin"]
    url = ...
    fetch = +refs/heads/*:refs/remotes/origin/*
    push = +refs/heads/*
    push = +refs/tags/*

[https://wincent.com/wiki/Pushing_branches_and_tags_with_a_single_%22git_push%22_invocation]