Upgrade to Pro — share decks privately, control downloads, hide ads and more …

dotfilesを管理しよう / get-started-with-dotfiles-management

yammerjp
January 26, 2023
460

dotfilesを管理しよう / get-started-with-dotfiles-management

2023/01/26 CTOA 若手エンジニアコミュニティ LT会

yammerjp

January 26, 2023
Tweet

More Decks by yammerjp

Transcript

  1. dotfiles
    を管理しよう
    2023/01/27
    CTO
    協会 若手エンジニアコミュニティ LT

    やんまー @yammerjp
    1

    View full-size slide

  2. 自己紹介
    やんまー
    @yammerjp
    中山 慶祐
    GMO
    ペパボ株式会社
    Web
    アプリケーションエンジニア
    月刊誌 Software Design
    にて
    「開発環境 探求の道」を連載中
    https://yammer.jp
    2

    View full-size slide

  3. dotfiles
    とは
    3

    View full-size slide

  4. dotfiles
    とは?
    Unix/Linux
    における
    ユーザごとの
    アプリケーションの設定ファイル
    .bashrc
    、.zshrc
    、.vimrc
    、.gitconfig
    、、、等々
    ホームディレクトリに、ドットで始まるファイル名のものが多い
    8

    View full-size slide

  5. dotfiles
    の例
    .gitconfig
    [user]
    name = Keisuke Nakayama
    email = [email protected]
    [include]
    path = ~/.config/git/config-company
    [alias]
    l = log --graph \
    --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' \
    --abbrev-commit --date=relative
    sw = !git branch --all --format=\"%(refname:short)\" | fzf | xargs git checkout
    https://github.com/yammerjp/dotfiles/blob/master/.config/git/config
    9

    View full-size slide

  6. dotfiles
    の利用例
    git l
    で、ブランチのマージ
    状況を視覚的に表示したログ
    を表示
    https://github.com/yammerjp/dotfiles/blob
    /3b3813ed3f9c8e06006fef14d30df14cb3
    228738/.config/git/config#L41
    10

    View full-size slide

  7. dotfiles
    の利用例
    NeoVim
    上でショートカット
    sf
    を押して、リポジトリ内の
    記述を曖昧検索して開く
    https://github.com/yammerjp/dotfiles/blob
    /3b3813ed3f9c8e06006fef14d30df14cb3
    228738/.config/nvim/init.vim#L121
    https://github.com/yammerjp/dotfiles/blob
    /3b3813ed3f9c8e06006fef14d30df14cb3
    228738/.config/nvim/init.vim#L171
    11

    View full-size slide

  8. 今日は設定の中身ではなく
    ..
    12

    View full-size slide

  9. dotfiles
    の管理
    13

    View full-size slide

  10. dotfiles
    の管理
    GitHub
    にある「dotfiles
    」リポジトリ
    変更履歴を記録できる
    他のマシンへ設定を適用しやすい
    そのほかにも
    Public
    リポジトリであれば、他の人へ共有しやすい
    開発環境を構成するツールやシェルスクリプトなどに詳しくなる
    例: yammerjp/dotfiles
    15

    View full-size slide

  11. dotfiles
    管理をはじめる
    GitHub
    にリポジトリを作る* ... https://github.com/new
    ファイルをコピーしてcommit
    、push
    $ git clone https://github.com/
    あなたのGitHub
    ユーザ名/dotfiles.git ~/dotfiles
    $ cd dotfiles
    $ cp ~/.gitconfig ~/dotfiles/.gitconfig
    $ git add .gitconfig
    $ git commit -m "Add .gitconfig"
    $ git push origin main
    *
    各ファイルの中身を公開して良いかわからなければ、ひとまずPrivate
    にしておくとよ
    いだろう
    16

    View full-size slide

  12. ホームディレクトリ
    のファイルを
    Git

    管理する
    シンボリックリンクを用いる
    Git
    リポジトリにあるファイル
    を、ホームディレクトリから
    参照可能にする
    $ mv ~/.gitconfig ~/.gitconfig.org
    $ ln -s ~/dotfiles/.gitconfig ~/.gitconfig
    17

    View full-size slide

  13. ln
    コマンド以外で管理する
    Git
    のbare
    リポジトリを使う
    $ alias dotfiles='git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
    Dotfiles:
    ベア Git
    リポジトリに保存する最もよい方法 - Atlassian Git Tutorial
    dotfiles
    の管理ツールを使う
    chezmoi, yadm, Dotbot, rcm, GNU Stow, ...
    18

    View full-size slide

  14. dotfiles
    の管理、はじめてみませんか?
    自分好みにカスタマイズして素早く効率的に作業できる
    他のマシンでも環境を再現できる
    ソフトウェアエンジニアの工具箱*
    ともいえるかもしれない
    (*)https://scrapbox.io/june29/
    父親の工具箱
    19

    View full-size slide