aboutsummaryrefslogblamecommitdiffstatshomepage
path: root/%HOME%/.gitconfig
blob: 577bd5d84dbd8c8d11fae1f1cfd50b489b77cd9b (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

                          
                                
 
      





                                                                               
                        
 

                                                                        
                         
 



                                               


                                                                       
                                               
      
                       
                              

                               


                                                                                                      

                                                          




                                            



                         
     
                         
                     
 


                                                             
           

                                                                           
                          
 
      
                                                                      
                 
 
       
                              

                                  
 
                         


                                                                                                                                       
 

                                                                              
                                          



                                                                                  
 

                                                         

                                                   

                            
                     
                        
 


                                        
                                   


                       

                                                                          
                                 
[user]
	name = Egor Tensin
	email = egor@tensin.name

[core]
	# Don't touch line endings (I hate the fact that this is an option).
	# My go-to approach now is to store everything w/ LF line endings in
	# index (using '* text=auto' in root .gitattributes), and checkout with
	# specific line endings as required (using additional records in
	# .gitattributes, like '*.sh text eol=lf', '*.bat text eol=crlf',
	# etc.).
	autocrlf = false

[push]
	# If no refspec is given, push to the branch with the same name.
	default = current

[advice]
	# I know about detached HEADs, shut up.
	detachedHead = false

# Git submodules suck, but they suck less if you read
# https://medium.com/@porteneuve/mastering-git-submodules-34c65e940407.

# Show submodule changes in a more verbose way.
[diff]
	submodule = log
	wsErrorHighlight = all
[status]
	submoduleSummary = true
[alias]
	# Pull and sync submodules.
	pulll = !git pull && git submodule sync --recursive && git submodule update --init --recursive

# Automatically remove obsolete things/publish new things.
[fetch]
	# Prune old branches:
	prune = true
	# Prune old tags (since Git 2.17.0):
	pruneTags = true
[push]
	# Push new tags:
	followTags = true

[log]
	# Follow renames:
	follow = true

[merge]
	# Show the common ancestor when resolving a conflict:
	conflictStyle = diff3
[mergetool]
	# I don't even know why those are necessary, since we can abort and
	# retry merges.
	keepBackup = false

[pull]
	# Don't create a merge commit when pulling, fast-forward only.
	ff = only

[alias]
	clean-all = clean -fdx
	clean-ignored = clean -fdX
	clean-unknown = clean -fd

	l = log --oneline
	# This is awesome: http://stackoverflow.com/a/1838938/514684
	ll = log --graph --full-history --all --pretty=format:"%h%x09%d%x20%s"
	lll = log --graph --full-history --all --color --pretty=tformat:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s%x20%x1b[33m(%an)%x1b[0m"

	# I think this is only usable on Cygwin, given all the file permission
	# madness there:
	xx = update-index --add --chmod=+x

	hide = update-index --skip-worktree
	unhide = update-index --no-skip-worktree
	hidden = !git ls-files -v | grep --basic-regexp \"^\\([[:lower:]]\\|S\\)\"

	# Squash the staging area with the latest commit.
	# Pass "-a" to skip using `git add`.
	fixup = !GIT_EDITOR=true git commit --amend

	# Life is too short.
	s = status
	co = checkout
	cp = cherry-pick

[filter "lfs"]
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process
	clean = git-lfs clean -- %f
	required = true

[include]
	# Include a file with computer-specific settings (like a different
	# [user] section under a specific directory, etc.).
	path = ~/.gitconfig_local