3

切り離されたワークツリーを持つリポジトリがあります。通常、リポジトリで作業する必要がある場合は、次のように構成ファイルを変更し、次のようなコマンドを使用できgit statusますgit checkout

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        worktree = /var/www/mysite.net/httpd/

#       TO PUSH REPO TO STAGE: change bare=false and uncomment the worktree

しかし、今はエラーが発生していますfatal: This operation must be run in a work tree。このようにたくさんのサイトを設定しているので、何かを忘れてしまったと思いますが、何がわからないのです。誰もがこれを引き起こす原因を考えることができますか?

4

3 に答える 3

2

ばかげた間違い。そのワークツリーは、.netではなく.comにあるはずです。

だから私の答えはいつもの答えだと思います-あなたのスペルを再確認してください。

于 2012-12-12T17:41:28.077 に答える
2

通常、私はgitレベルのオプションを使用してgitを次のように機能させます。

git --work-tree=some/dir --git-dir=some/other/dir push

または、同じ効果を持つ環境変数を設定できます。過去のバージョンのgitでは、このように定義された有効なアクティブパスは、一部のコマンドでは機能しましたが、他のコマンドでは機能しませんでした。

現在、すべてのコマンドで機能するように見えるgitレベルのオプションを使用しています。

もう1つ、作業ツリーをオーバーライドする場合は、gitフォルダーも指定する必要があります。つまり、一方を他方なしで指定することはできません。

于 2012-12-12T17:41:50.463 に答える
0

私が正しければ、根本的な問題は、シェルスクリプトによって実装されたGitコマンドが、リポジトリディレクトリにcdすることによって、切り離されたワークツリーで機能しないことです。(バイナリによって実装されたコマンドはこの状況で機能します。)スクリプトコマンドを切り離されたワークツリーで機能させるには、ワークツリーにcdし、GIT_DIR環境を使用してGitにリポジトリを探す場所を指示します。

于 2013-10-09T19:56:39.180 に答える