Linux or Cygwin、WSLの設定ファイルをGitHubで共有しよう

Pocket

Linux or Cygwin、WSLの設定ファイルをGitHubで共有しよう
Linux or Cygwin、WSLの設定ファイルをGitHubで共有しよう

Dotfilesとは

Dotfilesとは、Linuxなどの設定ファイルのうち、見られても特に不都合のない設定ファイルをGitHub上にアップロードし、(主に自分用の)別のLinux環境で git clone して、環境の設定状況を統一する方法のことです。
もちろん、リポジトリがprivateの場合は、どんな設定ファイルでもかまいません。

Dotfile(s), exsample:~/.bashrc
Dotfile(s), exsample:~/.bashrc

実際にリポジトリを作る

$ mkdir -p projects/dotfiles
$ cd projects/dotfiles/
$ git init
$ git add .gitignore
$ git config --global user.email tkaiXXX@la-bit.sakura.ne.jp
$ git config --global user.name "tkaiXXX"
$ git commit -m "firstcommit"
GitHub上でリポジトリ作成
GitHub上でリポジトリ作成

リポジトリにpushする

ここでは、先にGitHubで、gitのリポジトリを作成し、cloneしていなかったため、mergeする必要がありました。。。
通常は先にGitHub上でリポジトリを作成し、git cloneしてからgit addgit commitし、git pullgit pushする方が楽だと思います。

$ git remote add origin git@github.com:kabahandle/dotfiles.git
$ git pull origin master
$ git fetch
$ git merge --allow-unrelated-histories origin/master
$ git pull origin master
$ git push origin master

他のLinux環境にgit cloneする

それでは、dotfilesを使用してみましょう。
新規のLinux環境にdotfiles環境を作成し、git cloneします。

mkdir -p ~/projects; cd ~/projects

まずは、ディレクトリ構成を構築します。

$ mkdir -p ~/projects; cd ~/projects

以下のようになります。
ただし、dotfilescdするのではなく、~/projectscdします。

mkdir し、cdする
mkdir し、cdする

git clone する

以下のように、~/projects フォルダで、dotfiles.gitを、git cloneします。

$ git clone https://github.com/kabahandle/dotfiles.git

Git clone:

git clone
git clone

Git clone成功:

git clone成功
git clone成功

git cloneが成功したので、dotfiles上の設定ファイルから、ホームディレクトリにシンボリックリンクを張る

git cloneが成功したので、dotfiles上の設定ファイルから、ホームディレクトリにシンボリックリンクを張り、実際に設定ファイルを使用できるようにしましょう。

$ ln -s ~/projects/dotfiles/bashrc2.sh ~/

追記:
すみまません。下図では、ln -sではなく、lnだけになっていました。皆さんはln -sして、シンボリックリンクを張られて下さい。

ln -s
ln -s

ここでは、~/bashrc2shとしており、.bahrcからsource ~/bashrc2.shするようにしています。

~/.bashrcにdotfilesのファイルを簡単にgit pullできるよう設定しよう

~/.bashrcにdotfilesのファイルを簡単にgit pullできるよう設定してみます。
実際にはbashのalias機能を使用します。

alias dotpull="( cd ~/projects/dotfiles; git pull origin master )"
dotfiles git pull
dotfiles git pull

実際にgit pullしてみよう

前項のdotpullを実際に実行してみましょう。
カレントディレクトリはどこでもかまいません。
子シェルを使用して~/projects/dotfilescdしているため、他に全く影響を与えません。

$ dotpull
dotpull
dotpull

無事、git pull出来ているようですね。

実際のサンプル

今回のDotfilesの実際のサンプルは以下のURLに置いています。
実際にgit cloneされるなどして、お試しされてみてください。

今回のDotfilesのサンプル。git cloneの練習もできます。

まとめ

皆さん、ここまで読んで頂いて、誠にありがとうございました。

本日の学びを以下にまとめます。

  • まずはGitHubにリポジトリを作成、そこからgit cloneした方が手順が楽。
  • Dotfilesの開発環境でお気に入りの設定ファイルを追加・修正しgit addgit commitし、git pushできる。
  • 他のLinuxでは、気軽にgit pullできる。シンボリックリンクを使用しているので、問題はでない

など、色々なメリットが挙げられます。
この機会に、ぜひチャレンジされてみてください!

それではー またー (^_^)/