Difference between revisions of "Git settings"

From Dreamwidth Notes
Jump to: navigation, search
(Recommended settings: git config user.name/email: DW user/email pls, per http://dw-dev.dreamwidth.org/125137.html)
(Recommended settings: git config color.ui *should* set colour output for all commands (I think ^_^;))
Line 27: Line 27:
 
You can of course increase or decrease the number. Note that storing your password for a very long time may be ill-advised.
 
You can of course increase or decrease the number. Note that storing your password for a very long time may be ill-advised.
  
To put a number of git command-line commands' output into colour, to make them more readable:
+
Many git commands can render their output in colour, which can help make them more readable.  To tell git to use colour output for every command that supports it, use:
 +
 
 +
<pre>git config --global color.ui auto</pre>
 +
 
 +
If you don't want colour output for every command, but only for a select few, you can set them individually, eg:
 +
 
 
<pre>git config --global color.branch auto
 
<pre>git config --global color.branch auto
 
git config --global color.diff auto
 
git config --global color.diff auto
git config --global color.status auto
+
git config --global color.status auto</pre>
git config --global color.ui auto</pre>
+
  
 
To set your preferred text editor (used for writing commit notes):
 
To set your preferred text editor (used for writing commit notes):

Revision as of 02:16, 14 April 2013

This page currently lists a few git settings that I've found useful on my 'hack. These are from the perspective of a beginner with git who was trying to make it comfy to use. I'm hoping that an experienced git user may add anything else that's nifty or important.

You may also be interested in setting up command-line autocomplete for branch names and the like. If so, see Git autocomplete.

Levels of settings & how to change them

git has three levels of settings:

  • system-wide, called "system"
  • per-user, called "global"
  • per-repo, called "local".

Settings can be viewed or set with the git config command. All the examples given below are per-user, which is probably the most useful on dreamhacks.

You can use git config --list to see the settings that you have at present.

Recommended settings

To add your username and email to commits:

git config --global user.name "???"
git config --global user.email=???

where the ???s should be replaced with a username and email address. If possible, this should be set to your Dreamwidth username and your username@dreamwidth.org email address.

To avoid having to type in your github username and password every time you push something,

git config --global credential.helper cache

This will cache your details for 15 minutes so that you will not have to enter them again during that time.

If you want to limit this to five minutes (i.e. 300 seconds) instead use:

git config --global credential.helper 'cache --timeout=300'

You can of course increase or decrease the number. Note that storing your password for a very long time may be ill-advised.

Many git commands can render their output in colour, which can help make them more readable. To tell git to use colour output for every command that supports it, use:

git config --global color.ui auto

If you don't want colour output for every command, but only for a select few, you can set them individually, eg:

git config --global color.branch auto
git config --global color.diff auto
git config --global color.status auto

To set your preferred text editor (used for writing commit notes):

git config --global core.editor nano

(change nano to the text editor of your choice)

Excluding files from git

You can tell git to ignore certain files and pay them no attention. For instance, I use vim as my main text editor, and vim creates .swp files all over the place to indicate when it has a file open. Whenever they appeared, git was warning me that these were "untracked files". To resolve this:

  • Create a file in your home directory called .gitignore_global.
  • In this file, specify the types of files to ignore. For example, mine simply says "*.swp".
  • Then do
    git config --global core.excludesfile /dreamhack/home/????/.gitignore_global
    , substituting your actual home directory for ????.