🏹
Gitコマンド入門::Gitカスタマイズ機能(config)第七十回
Gitコマンド入門::Gitカスタマイズ機能(config)第七十回
みなさんこんにちは! 今回からは、git のカスタマイズ機能、config を学習して行きましょう! 今回からは、8.1 Git のカスタマイズ - Git の設定 こちらのページに沿って進めていきますね。
実際のページは、こちらです!
前回の記事はこちらから!
git本家本元の情報はこちらから!
それでは、いつもの環境作成から!
$ mkdir func0070 && cd $_
$ git init
Initialized empty Git repository in /home/shiozumi/mygit/func0070/.git/
$ ls .git/
HEAD branches config description hooks info objects refs
// gitのローカル環境設定ファイル、config が作成されましたね!!
.git/config は、ローカルの環境設定!
こちらは、git init の時に作成される、各ローカルフォルダ内に存在する、リポジトリ毎のコンフィグ設定ファイルになりますね。荒っぽいですが、早速、中身を確認!
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
// 私の環境での、ローカルのconfigファイルです!
git config --local -l のコマンドで確認!
$ git config --local -l
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
次は、お行儀よく、gitコマンドで確認しますね。ちなみに、--local は省略可能です![1]
[core] 項目のみの設定となっていますね。
git config --local core.editor vim
それでは、月並みですけど、編集するエディターの設定を、vim にしてみますね。
$ git config --local core.editor vim
$
// 特に実行後のメッセージは何も表示されませんけど・・・
$ git config --local -l
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.editor=vim
// core.editor の項目が増えて、vim が登録されました!
git config --local --unset core.editor
それでは、またまた基本中の基本で削除しましょう! --unset
$ git config --local --unset core.editor
$
// 特に実行後のメッセージは何も表示されませんけど・・・
$ git config --local -l
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
// core.editor の項目が無事に削除されました!
これで、追加と削除ができましたね!
git config --local core.editor vim
git config --local --unset core.editor
git config --local --edit
次は、ファイルを直接編集してみましょう!
$ git config --local --edit
// vi .git/config でも実際には同じ!(笑)
// ここでは、私は強引にも、aaa=bbb と追記!
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
aaa = bbb // <!-- 実際には、存在しない項目でも、追加可能!
$ git config --local --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.aaa=bbb
// ↑↑↑ ちゃんと認識していますね(苦笑)
では、更に[temp]項目を、追加!
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
aaa = bbb
[temp]
ccc = ddd
// ↑↑↑ 強引にも、temp 項目を追加!
$ git config --local --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.aaa=bbb // <!-- 追加済
temp.ccc=ddd // <!-- 新規に追加分も認識されました!
--unset
で削除しましょう!
では、$ git config --local --unset core.aaa
$ git config --local --unset temp.ccc
$ git config --local --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
// 無事に削除ができました!
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
// 直接、ファイルの中身を見ても、無事に削除されていますね!
そして最後は、もう一度、コマンドラインから追加!
$ git config --local core.aaa bbb
$
$ git config --local temp.ccc ddd
$
// 相変わらず、なにもメッセージは、表示されませんけど・・・
$ git config --local --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.aaa=bbb // <!-- 追加されました!
temp.ccc=ddd // <!-- 追加されました!
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
aaa = bbb
[temp]
ccc = ddd
// はい、追加されました!
もっと、試してみたい方は、こちらをどうぞ!
ちらっと見てみると、git config --local --remove-section core
なんてやると、一括削除できそうですよね~
$ git config --local --remove-section core
$ git config --local --remove-section temp
$ git config --local --list
$
// なにも表示されません!
$ cat .git/config
$
// なにも表示されません!
$ ls -l .git/config
-rw-rw-r-- 1 shiozumi shiozumi 0 4月 5 11:39 .git/config
// ファイルはありますが、容量は、0バイトですね。
まとめ
さあ、いかがでしたか? 今回は、--local オプションを付けて、ローカルのconfigファイルの編集のみ試しましたけど、実際には、--global とか、--system なども可能です。ファイルは、それぞれ、個人の作業フォルダ以下と、/etc/ の下にconfigファイルができると書いてありますけど、こちらは、また次回やって行きますね!
それでは、今回はここまで、お疲れ様でした!
次回の記事はこちら!
-
--local を省略すると、--global の設定も表示されるので、今回は、明確に区別するためにも、毎回、--local オプションを付けています。 ↩︎
Discussion