這篇文章根據實際碰到的一個問題來介紹一下git配置相關的內容。
命令: git config
使用git config進行相關的配置操作
配置文件
git在整體上,配置文件分為三級,結合優先級相關信息如下
簡單來說,優先級別離倉庫越近越高,所以 項目級別 > 用戶級別 > 系統級別。相同的設定同時出現時,優先級別高的會覆蓋上層的配置。
配置檢查
使用git config 不同的參數可以對如上三個不同的級別進行相關設定的檢查
因為相同的設定有可能會產生覆蓋,使用git config -l會列出git認為的最終設定信息
問題現象
很多客戶端在自動生成.gitignore時會碰到問題,比如在如下git和os的版本下碰到了ng new動作發生的錯誤提示
環境信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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$ |
現象
1
2
3
4
5
6
7
8
9
|
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$ |
配置信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
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$ |
原因
原因似乎是因為~的展開出現了問題,將~在設定文件中展開為全局的名稱暫定解決了這個問題,但是結合上文可知,其實是將系統級的設定降到了用戶級的處理方式。
修改方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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$ |
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
原文鏈接:https://blog.csdn.net/liumiaocn/article/details/81068478