aboutsummaryrefslogtreecommitdiff
path: root/home/git
diff options
context:
space:
mode:
Diffstat (limited to 'home/git')
-rw-r--r--home/git/commit.template22
-rw-r--r--home/git/default.nix56
2 files changed, 78 insertions, 0 deletions
diff --git a/home/git/commit.template b/home/git/commit.template
new file mode 100644
index 0000000..01ab956
--- /dev/null
+++ b/home/git/commit.template
@@ -0,0 +1,22 @@
+# (If applied, this commit will...) <type>: <subject>
+
+# Explain why this change is being made
+
+# --- COMMIT END ---
+# Remember to
+# Use the imperative mood, present tense: `change' not `changed' nor `changes'
+# Do not end the subject line with a period
+# Use the body to explain what and why vs. how
+# Can use multiple lines with "-" for bullet points in body
+
+# Suggested types:
+# build: Changes that affect the build system or external dependencies
+# ci: Changes to CI configuration files and scripts
+# docs: Documentation only changes
+# feat: A new feature
+# fix: A bug fix
+# perf: A code change that improves performance
+# ref: A code change that neither fixes a bug nor adds a feature (refactor)
+# style: Changes that do not affect the meaning of the code
+# tests: Adding missing tests or correcting existing tests
+# meta: Some meta information in the repo changes
diff --git a/home/git/default.nix b/home/git/default.nix
new file mode 100644
index 0000000..7e6cd15
--- /dev/null
+++ b/home/git/default.nix
@@ -0,0 +1,56 @@
+{ lib, config, ... }:
+
+let cfg = config.my.home.git;
+in {
+ options.my.home.git = with lib; {
+ enable = mkEnableOption "git configuration";
+ };
+
+ config = lib.mkIf cfg.enable {
+ programs.git = {
+ enable = true;
+ aliases = {
+ s = "status --short --branch";
+ amend = "commit --amend --no-edit";
+ };
+ extraConfig = {
+ core.whitespace = "trailing-space,space-before-tab";
+ color.ui = "true";
+ push.default = "simple";
+ init.defaultBranch = "main";
+ branch.autosetuprebase = "remote";
+ branch.sort = "authordate";
+ commit.template = "${config.xdg.dataHome}/git/commit.template";
+ };
+ userName = "Franck Cuny";
+ userEmail = "franck@fcuny.net";
+ extraConfig = {
+ "credential \"https://github.com\"" = { username = "fcuny"; };
+ "credential \"https://git.fcuny.net\"" = { username = "fcuny"; };
+ "credential \"https://cl.fcuny.net\"" = { username = "fcuny"; };
+ };
+ ignores = [
+ "*.elc"
+ "*.iml"
+ "*.o"
+ "*.pyc"
+ "*.pyo"
+ "*pyc"
+ "*~"
+ ".DS_Store"
+ ".\\#"
+ ".dir-locals.el"
+ ".direnv/*"
+ ".idea"
+ ".projectile"
+ ".pytest_cache/"
+ "/env/*"
+ "Icon"
+ "TAGS"
+ "\\#*\\#"
+ "tags"
+ ];
+ };
+ xdg.dataFile."git/commit.template" = { source = ./commit.template; };
+ };
+}