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

 更新时间:2018年12月28日 09:57:52   作者:liumiaocn  
今天小编就为大家分享一篇关于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$

总结

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

相关文章

  • k3s 通过docker部署 Kubernetes的方法步骤

    k3s 通过docker部署 Kubernetes的方法步骤

    本文主要介绍了k3s 通过docker部署 Kubernetes的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • VSCode连接远程docker环境操作步骤

    VSCode连接远程docker环境操作步骤

    这篇文章主要介绍了如何在容器内部署和配置,包括查看Docker版本、管理容器和镜像、构建容器、配置容器内部环境、安装和配置VSCode以及远程连接和配置远程Docker容器环境,需要的朋友可以参考下
    2025-03-03
  • Alpine Docker镜像字体的问题解决操作

    Alpine Docker镜像字体的问题解决操作

    这篇文章主要介绍了Alpine Docker镜像字体的问题解决操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • gitlab-runner中搭建nvm、nrm以及优化maven打包方式

    gitlab-runner中搭建nvm、nrm以及优化maven打包方式

    文章描述了如何在GitLab Runner上配置NVM、NRM,并优化Maven打包过程,通过上述配置和优化,作者将Maven打包时间从三分钟缩短到不到40秒
    2024-11-11
  • docker创建镜像并上传云端服务器的实现示例

    docker创建镜像并上传云端服务器的实现示例

    镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,本文介绍了如何使用Docker创建镜像,并将其上传到云端,感兴趣的可以了解一下
    2023-08-08
  • docker 安装TDengine 时序数据库的技术指南

    docker 安装TDengine 时序数据库的技术指南

    TDengine是一个高性能、分布式a的时序数据库,专为物联网(loT)和大数据分析日设计,下面给大家分享docker 安装TDengine 时序数据库的技术指南,感兴趣的朋友一起看看吧
    2025-04-04
  • 详解docker容器的层的概念

    详解docker容器的层的概念

    这篇文章主要介绍了详解docker容器的层的概念,帮助大家更好的理解和学习使用docker容器,感兴趣的朋友可以了解下
    2021-04-04
  • docker部署vue项目的实现步骤

    docker部署vue项目的实现步骤

    当我们在本地开发了一个vue项目之后,肯定是想部署到服务器上供其他人访问,本文主要介绍了docker部署vue项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Docker容器搭建运行python的深度学习环境的方法

    Docker容器搭建运行python的深度学习环境的方法

    本文主要介绍了Docker容器搭建运行python的深度学习环境的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • 在docker创建的mysql容器中如何执行mysql脚本

    在docker创建的mysql容器中如何执行mysql脚本

    在Docker容器中执行MySQL脚本的步骤包括进入容器、连接MySQL服务并执行脚本,如果脚本在主机上,可以直接通过命令执行,无需进入容器
    2024-11-11

最新评论