私はしばらくシステム構成を管理するためにgit repoを使用してきました。 Digital Oceanチュートリアルのドキュメントを使用しました。ここ。私のサーバーにリモートリポジトリがほとんどありました。リポジトリのgit cloneを作成します。次に、ドットファイルとディレクトリをホームディレクトリにシンボリックリンクします。設定ファイルを変更したら、リモートリポジトリにgit pushするだけです。
私が経験している問題は、特定の構成の他のバージョンが必要であることです。たとえば、.i3blocksの設定は、家庭用ワークステーション、ラップトップ、またはワークコンピュータを使用しているかどうかによって異なります。私はgitに慣れていないので、この問題をどのように処理するのかわかりません。どんな提案がありますか?
答え1
これは実際には子の問題ではありません。代わりに、構成ファイルの種類、他のファイルを読み取るためのオプション、システムごとにどのように異なるかを検討する必要があります。
たとえば、~/.bashrc
ホスト固有の設定を1行で読み取るデフォルトファイルがあるとしますsource
。
DOTFILES=~/.dotfiles
source $DOTFILES/$HOSTNAME.bashrc
構成構文でこれらの操作を許可しない他のプログラムの場合、実際にはリポジトリーに異なるシステム用の複数のファイルがあり、適切なファイルのみを関連付ける必要があります。
ln -s ~/.dotfiles/i3blocks.$HOSTNAME ~/.i3blocks
これを、git Hookによってトリガされるビルディングブロックからファイルをビルドするいくつかのスクリプトまたはいくつかのテンプレートメカニズムと組み合わせることもできます。
答え2
私は似たようなことをし、異なる設定で異なるポイントを使用しました。これにより、特定のコンピュータから目的のファイルを取得するために、次のgit checkout config-laptop
操作を実行できます。git checkout config-htpc
また、あるブランチのファイルを変更して別のブランチに伝播したい場合は、複数のブランチにマージできます。次のツールを使用してください。Git クラーケン必要な部分(ブロック)のみをマージすることも、1行だけをマージすることもできます。