0

私のローカル マシンには、趣味のプロジェクト (GitHub でホストされている) と仕事関連の (他の場所でホストされている) いくつかの git リポジトリがあります。私はそれを間違っているので(質問しないでください、それは無関係です)、定期的にrm -rfリポジトリを再クローンする必要があります。これにより、.git/configファイルも消去されます。

~/.gitconfig仕事のプロジェクトと趣味のプロジェクトで設定がuser.email異なるものを my に入れたいと思います。(定期的に消去されるため、使用できないことを忘れないでください.git/config。)これは、プロジェクト名に基づいているか、クローンしているリモート リポジトリの URL に基づいている可能性があります。

別の関連する問題として、レポジトリを複製するたびに変更を忘れずに、すべてのレポジトリに適用されるグローバル pre-commit フックを指定できるようにしたいと考えています。.git/hooks/pre-commit(私は知っていgit clone --templateます。)

エイリアスを付けたBashスクリプトを書いgitて、git clone. それが唯一の答えですか?

4

3 に答える 3

0

なぜあなたがリクライニングする/持っている/のかわかりません..

git reset --hard && git clean -xdf

十分であり、クリーンな作業ディレクトリが得られます。これにより、構成の変更が保持されます。

参照が混乱している場合は、リモートブランチをクリーンアップできます

git remote prune

言い換えれば、私は/am/ なぜあなたが「間違ったことをしている」のか尋ねています :)

于 2012-05-30T19:25:38.753 に答える
0

ディレクトリを変更するときにプロンプ​​トを変更する Bash 拡張機能のいずれかを使用する場合は、それらにフックして、現在のリポジトリに応じてGIT_AUTHOR_NAME、 、および関連する電子メール環境変数を設定することをお勧めします。GIT_COMMITTER_NAME

.bashrc では、次のようなことができます。

__git_ps1() {
   BRANCH=`git branch 2>/dev/null`
   if [ "$?" == "0" ]; then
      # Do something with your prompt
      if [[ `git remote -v` =~ $WORK_URL_REGEX ]]; then
         export GIT_AUTHOR_EMAIL="me.working@work.com"
      else
         export GIT_AUTHOR_EMAIL="me.playing@home.org"
      fi
   endif
}

これは明らかに非常に大雑把ですが (私もテストしていません)、良い出発点になるはずです。

于 2012-05-30T19:13:48.553 に答える
0

私だったら、rm -rf保存したいコンテンツを一時的な場所にコピーし、すべてを削除し、レポを複製して、コンテンツを元に戻すスクリプトで raw 呼び出しをラップするでしょう。

于 2012-05-30T21:18:39.270 に答える