4

次のようなフォルダ構造があると仮定します。

repos
    /repo1  <-- here is git repository

そうです:

cd repos

そして、ディレクトリに/repo1残っている状態でリポジトリを使用するにはどうすればよいですか?reposやりたくない

cd repo1
git status (...)
git commit (...)
...

しかし、次のようなものです。

git --git-dir=repo1 (...)

また

git --work-tree=repo1 (...)

そのスタイル、eventですべてのgitコマンドを実行したいと思いますgit init。正しいアプローチは何ですか?

4

3 に答える 3

4

環境変数を設定できます$GIT_DIR。調べる。

于 2012-11-17T13:54:12.757 に答える
2

--git-dirとを組み合わせ--work-treeて、現在のディレクトリ外のレポを操作できます。

git --git-dir=/some/other/dir/.git --work-tree=/some/other/dir status

GIT_DIR@opqdonut に記載されているように設定することもできますが、設定する必要もありますGIT_WORK_TREE。はターゲット リポジトリ内のディレクトリGIT_DIRへのパスであり、ターゲット リポジトリ自体であることに注意してください。.gitGIT_WORK_TREE

これはすべて非常に便利ですが、生活を楽にするシェル関数を次に示します。

function git-dir() {
    dir=$1
    shift
    git --git-dir="$dir/.git" --work-tree="$dir" $*
}

これは、Bash または Zsh (およびおそらく他の Bourne 派生シェル) で機能します。~/.bashrc環境に適した場所に配置します~/.zshrc

次に、これを行うことができます:

git-dir /some/other/dir status

statusGit コマンドはどこにありますか。gitコマンドに直接渡される他の引数でも機能します。

git-dir /some/other/dir remote -v
于 2013-08-13T15:39:44.970 に答える