dotfilesをバックアップする上でさらに別のガイド


数ヶ月前、私はこれに遭遇 article これはどのように裸のgitリポジトリを使用することができます.私はしばらくの間それを気にして、最終的にシステムdotfileを管理するための全くナンセンスなシステムで終わりました.
裸のGITリポジトリは、あなたが作成するかもしれない規則的なGitプロジェクトのようですgit init . 唯一の違いは、特定の作業ツリーを持っていないが、実際のgit - repo(すなわちgitフォルダ)だけです.

ステップ1 : Gitリポジトリの初期化
コマンドの実行と同じくらい簡単です.
$ mkdir "${XDG_CONFIG_HOME}/cfg"
$ git init --bare "${XDG_CONFIG_HOME}/cfg/.git/"
あなたが時間の任意の期間のgitを使用した場合、あなたはそれを知っているgit init コマンドは、現在のフォルダ内の空のリポジトリを初期化します.裸のリポジトリを作成したいので、--bare フラグとGitフォルダの場所.これは.git フォルダ~/.config/cfg . その内容を調べると、他のリポジトリに似ていることがわかるでしょう.git フォルダ.

ステップ2 :エイリアス/関数によるリポジトリへのアクセス
次の行を追加します.zshrcあるいはその他のエイリアスと一緒に
cfg() { git --git-dir="${XDG_CONFIG_HOME}/cfg/.git/" --work-tree="$HOME" "$@" ; }
この関数は、我々のバックアップリポジトリにファイルをステージとコミットすることを可能にします.The --git-dir flag 1 iで指定したgitリポジトリを指定する.--work-tree 任意のファイルを追跡することができます$HOME ディレクトリを使用したディレクトリ.

ステップ3:バックアップをしたくないファイルを無視する
ランexec $SHELl または、以前のステップで使用したエイリアスを使用するようにターミナルを再起動します.次に、以下のコマンドを実行してください.そうすれば、倉庫があなたのホームディレクトリの何百ものファイルをあなたがそれをチェックするたびに表示しませんstatus :
$ cfg config --local status.showUntrackedFiles no

ステップ4 :リモートリポジトリの設定
空のリモートリポジトリを作成します.Githubでは、これはすぐにREPOが作成された後に利用可能です.最後にリモートを追加します.
$ cfg remote add origin <URL>
この時点では、次のように簡単にできます.
$ cfg add ~/.vimrc
$ cfg commit -m "Adding .vimrc"
$ cfg push origin master
これは、リポジトリの開始を追跡します.VIRCとあなたは、GitHubにファイルをコミットして、プッシュすることができます.閉じるこの動画はお気に入りから削除されていますstatus and diff 今すぐ利用できるようになりますcfg 関数.

新しいシステムでdotfilesを取得する
さて、新しいシステムで行う必要があるのは以下のコマンドを実行し、すべての設定を返します.
git init --bare "${XDG_CONFIG_HOME}/cfg/.git/"
cfg() { git --git-dir="${XDG_CONFIG_HOME}/cfg/.git/" --work-tree="$HOME" "$@" ; }
cfg config --local status.showUntrackedFiles no
cfg remote add origin https://github.com/nimaipatel/dotfiles.git
cfg pull origin master
あなたがすでに言っているならば、あなたは若干の誤りを得るかもしれません、...あなたの新しいシステムのzshrc.この場合、おそらくリモートからファイルを取り出す前にこれを削除したいでしょう.
それは我々がした🥳. 場合は、スクリプトを使用している場合は、任意の問題に直面してください教えてください!