1つの特定のgitに対してgitとして機能するcgitと呼ばれるbashスクリプトがありますrepo(/.git
にあります):
#!/bin/bash
cd /;
Sudo git $@ > /dev/stdout
重要なシステムファイルを追跡するために使用します。
cgit add /etc/rc.conf
問題は、自分がいるディレクトリに関連するコンテンツを追加しようとしたときです。たとえば、次のようになります。
cd /home/user
cgit add .ssh/config
cgitは、/.ssh/config
を/.git
リポジトリに追加しようとします。
提案や回避策はありますか?
--git-dir
を使用するようにcgitスクリプトを更新します。マニュアルページから:
--git-dir=<path>
Set the path to the repository. This can also be controlled by
setting the GIT_DIR environment variable. It can be an absolute
path or relative path to current working directory.
したがって、次のようになります。
#!/bin/bash
Sudo git --git-dir=/.git $@ > /dev/stdout
FTR、私はそれを試していません。
独自のソリューションの代わりに etckeeper を使用する方がはるかに優れています。 etckeeperがうまく対処する落とし穴がたくさんあります。これはいくつかのLinuxディストリビューションのパッケージであり、ソースからのビルドも簡単です。
Debianベースのシステムの本当に素晴らしい機能は、パッケージのインストールまたは更新の前後に自動的にコミットするaptと連携していることです。これは、自分で行った変更とパッケージの更新によって行った変更を区別するのに役立ちます。また、(オプションで)毎日の自動コミットを実行します。