37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { ... }:
 | |
| 
 | |
| {
 | |
|   programs.git = {
 | |
|     enable = true;
 | |
|     lfs.enable = true;
 | |
|     signing = {
 | |
|       key = "5EFFB75F7C9B74EAA5C4637547940175096C1330";
 | |
|       signByDefault = true;
 | |
|     };
 | |
|     userEmail = "aliceghuston@gmail.com";
 | |
|     userName = "ahuston-0";
 | |
|     aliases = {
 | |
|       gone = ''
 | |
|         !git for-each-ref --format '%(refname:short) %(upstream)' | # dump all older branches
 | |
|                         awk 'NF < 2 {print $1}' | # get nuked branches
 | |
|                         grep -Pv "(^origin/|^origin$|stash)" | # filter out remotes & stash
 | |
|                         sed 's/\\x27/\\x5C\\x27/' | # remove single quotes, for xargs reasons
 | |
|                         xargs -r git branch -D # nuke the branches
 | |
|         # !git fetch -p && git for-each-ref --format '%(refname:short) %(upstream:track)' | # dump all branches
 | |
|         #                 awk '$2 == "[gone]" {print $1}' | # get nuked branches
 | |
|         #                 sed 's/\\x27/\\x5C\\x27/' | # remove single quotes, for xargs reasons
 | |
|         #                 xargs -r git branch -D; # nuke the branches #
 | |
|       '';
 | |
|     };
 | |
|     extraConfig = {
 | |
|       push.autosetupremote = true;
 | |
|       pull.rebase = true;
 | |
|       color.ui = true;
 | |
|       init.defaultBranch = "main";
 | |
|       format.signoff = true;
 | |
|       pack.windowMemory = "2g";
 | |
|       pack.packSizeLimit = "1g";
 | |
|     };
 | |
|   };
 | |
| }
 |