如何在 NixOS 中启用 `git gui`?

如何在 NixOS 中启用 `git gui`?

我已经安装了gittk,我可以运行git citool来显示 Git GUI 并创建一个单身的提交,之后应用程序退出。不幸的是git gui命令本身说

git: 'gui' 不是 git 命令。请参阅“git --help”

所以我被困住了。我如何

  1. 启用git gui作为命令
  2. 显示 Git GUI 直到我想退出它?

答案1

安装gittk无法在 NixOS 上运行,因为git无法tk。与大多数 Linux 发行版不同,NixOS 没有/usr/lib库的全局位置(例如 )。相反,可执行文件被修改为能够在 Nix 存储 ( /nix/store) 中找到所需的库。

使用git guiinstallgitFull而不是git.

这两个包实际上都来自同一个 Nix 表达式,但是在使用gitFull该表达式时,它会包含对git gui.

答案2

如果使用 home-manager / home.nix,则需要设置package = pkgs.gitFull

  programs.git = {
    enable = true;
    userName = "Firstname Lastname";
    userEmail = "[email protected]";
    package = pkgs.gitFull;
  };

旁注:如果您愿意,还可以设置更多选项:

    extraConfig = {
      push = {
        # Source: https://stackoverflow.com/a/72401899/873282
        autoSetupRemote = true;
    
        # Always push to the branch we pulled from
        # See https://git-scm.com/docs/git-config#Documentation/git-config.txt-pushdefault for details
        default = "current";
      };

      # Use SVN's ||| also in git - and remove matching lines in the conflict region
      #  See https://git-scm.com/docs/git-config#Documentation/git-config.txt-mergeconflictStyle for details
      merge = { configStyle = "zdiff3"; };

      # Colors in output
      # Source: https://unix.stackexchange.com/a/44297/18033
      color = { ui = "auto"; };
     
      # Sort branches at "git branch -v" by committer date
      branch = { sort = "-committerdate"; };

      # tabs are 4 spaces wide
      gui = { tabsize = 4; };
    };

相关内容