web-dev-qa-db-ja.com

使用するgitリポジトリを指定する

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リポジトリに追加しようとします。

提案や回避策はありますか?

3
Stefan

--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、私はそれを試していません。

3
Gert

独自のソリューションの代わりに etckeeper を使用する方がはるかに優れています。 etckeeperがうまく対処する落とし穴がたくさんあります。これはいくつかのLinuxディストリビューションのパッケージであり、ソースからのビルドも簡単です。

Debianベースのシステムの本当に素晴らしい機能は、パッケージのインストールまたは更新の前後に自動的にコミットするaptと連携していることです。これは、自分で行った変更とパッケージの更新によって行った変更を区別するのに役立ちます。また、(オプションで)毎日の自動コミットを実行します。

2
Neil Mayhew