• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    gitlab实践教程使用git config进行相关的配置操作

    这篇文章根据实际碰到的一个问题来介绍一下git配置相关的内容。

    命令: git config

    使用git config进行相关的配置操作

    配置文件

    git在整体上,配置文件分为三级,结合优先级相关信息如下

    简单来说,优先级别离仓库越近越高,所以 项目级别 > 用户级别 > 系统级别。相同的设定同时出现时,优先级别高的会覆盖上层的配置。

    配置检查

    使用git config 不同的参数可以对如上三个不同的级别进行相关设定的检查

    因为相同的设定有可能会产生覆盖,使用git config -l会列出git认为的最终设定信息

    问题现象

    很多客户端在自动生成.gitignore时会碰到问题,比如在如下git和os的版本下碰到了ng new动作发生的错误提示

    环境信息

    liumiaocn:angualr liumiao$ git --version
    git version 2.15.0
    liumiaocn:angualr liumiao$ uname -a
    Darwin liumiaocn 17.3.0 Darwin Kernel Version 17.3.0: Thu Nov 9 18:09:22 PST 2017; root:xnu-4570.31.3~1/RELEASE_X86_64 x86_64
    liumiaocn:angualr liumiao$ 
    liumiaocn:angualr liumiao$ ng --version
      _           _         ____ _   ___
      / \  _ __  __ _ _  _| | __ _ _ __   / ___| |  |_ _|
     / △ \ | '_ \ / _` | | | | |/ _` | '__|  | |  | |  | |
     / ___ \| | | | (_| | |_| | | (_| | |   | |___| |___ | |
    /_/  \_\_| |_|\__, |\__,_|_|\__,_|_|    \____|_____|___|
            |___/
    Angular CLI: 1.7.3
    Node: 8.9.1
    OS: darwin x64
    Angular: 
    ...
    liumiaocn:angualr liumiao$

    现象

    liumiaocn:angualr liumiao$ ng new demo1 --skip-install
     create demo1/README.md (1021 bytes)
     create demo1/.angular-cli.json (1240 bytes)
    ...省略
     create demo1/src/app/app.component.ts (207 bytes)
    error: could not expand include path '~/.gitcinclude'
    fatal: bad config line 44 in file /usr/local/git/etc/gitconfig
    Project 'demo1' successfully created.
    liumiaocn:angualr liumiao$ 

    配置信息

    liumiaocn:angualr liumiao$ cat /usr/local/git/etc/gitconfig 
    [core]
      excludesfile = ~/.gitignore
      legacyheaders = false # >git 1.5
      quotepath = false
    [user]
    #  name = your name
    #  email = your@name
    [mergetool]
      keepBackup = true
    [push]
      default = simple # [ matching | simple ]
    [color]
      ui = auto
      interactive = auto
    [repack]
      usedeltabaseoffset = true # >git 1.5
    [alias]
      s = status
      a = !git add . && git status
      au = !git add -u . && git status
      aa = !git add . && git add -u . && git status
      c = commit
      cm = commit -m
      ca = commit --amend # careful
      ac = !git add . && git commit
      acm = !git add . && git commit -m
      l = log --graph --all --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
      ll = log --stat --abbrev-commit
      lg = log --color --graph --pretty=format:'%C(bold white)%h%Creset -%C(bold green)%d%Creset %s %C(bold green)(%cr)%Creset %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
      llg = log --color --graph --pretty=format:'%C(bold white)%H %d%Creset%n%s%n%+b%C(bold blue)%an <%ae>%Creset %C(bold green)%cr (%ci)' --abbrev-commit
      d = diff
      master = checkout master
      spull = svn rebase
      spush = svn dcommit
      alias = !git config --list | grep 'alias\\.' | sed 's/alias\\.\\([^=]*\\)=\\(.*\\)/\\1\\\t => \\2/' | sort
    [include]  # as of 1.7.10 https://github.com/git/git/commit/9b25a0b52e09400719366f0a33d0d0da98bbf7b0
      path = ~/.gitcinclude
      path = .githubconfig
      path = .gitcredential
    #[github]
    #  user =
    #  token =
    [diff]
      # git does copy/rename *detection*. if you want it to track copies/renames:
      # http://stackoverflow.com/questions/1043388/record-file-copy-operation-with-git
      # renames = copies
    [diff "exif"]
      textconv = exif
    [credential]
      helper = osxkeychain
    liumiaocn:angualr liumiao$

    原因

    原因似乎是因为~的展开出现了问题,将~在设定文件中展开为全局的名称暂定解决了这个问题,但是结合上文可知,其实是将系统级的设定降到了用户级的处理方式。

    修改方法

    liumiaocn:angualr liumiao$ sudo cp /usr/local/git/etc/gitconfig /usr/local/git/etc/gitconfig.org
    Password:
    liumiaocn:angualr liumiao$ echo $HOME
    /Users/liumiao
    liumiaocn:angualr liumiao$ echo ~
    /Users/liumiao
    liumiaocn:angualr liumiao$ sudo vi /usr/local/git/etc/gitconfig
    liumiaocn:angualr liumiao$ 
    liumiaocn:angualr liumiao$ diff /usr/local/git/etc/gitconfig /usr/local/git/etc/gitconfig.org
    2c2
    <  excludesfile = /Users/liumiao/.gitignore
    ---
    >  excludesfile = ~/.gitignore
    44c44
    <  path = /Users/liumiao/.gitcinclude
    ---
    >  path = ~/.gitcinclude
    liumiaocn:angualr liumiao$

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    上一篇:docker私库Harbor的架构与组件说明
    下一篇:Alpine镜像中telnet转移至busybox-extras
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    gitlab实践教程使用git config进行相关的配置操作 gitlab,实践,教程,使用,git,