.gitディレクトリを含むフォルダの外にあるユーザー定義のワークツリーとgitを連携させるのに苦労しています。
基本的に、セットアップは次のようになります。2つのディレクトリがあります。1つは追跡するファイルを格納する「git-worktree」と呼ばれ、もう1つはリポジトリの.gitフォルダ(別名GIT_DIR)を含む「git-dir」と呼ばれます。
フォルダ「git-dir」にcdして実行し、リポジトリを初期化します。
git --git-dir=./.git --work-tree=/Users/braitsch/Test/git-worktree/ init
これにより、リポジトリが正常に初期化され、「git-dir」フォルダーにいる間に、作業ツリーにあるファイルを追加し、git statusを実行して、それらをコミットできます。涼しい。
ここでのボールのキックは、git stashを実行しようとすると、エラーが発生します。
fatal: /usr/local/git/libexec/git-core/git-stash cannot be used without a working tree.
追跡したいファイルを含む「git-worktree」フォルダーにワークツリーを設定していることがわかっているので(または少なくとも私は思うので)、これはBSです。
git config --local -lは私に次のことを示しています:
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.worktree=/Users/braitsch/Test/git-worktree
core.ignorecase=true
.gitフォルダーをローカル構成ファイルに手動で追加して、それが役立つかどうかを確認しましたが、役に立ちませんでした。
core.gitdir=/Users/braitsch/Test/git-dir/.git
これがキッカーです。git-dirの親であるディレクトリにワークツリーを設定すると、 Git stashが機能します。たとえば、ホームディレクトリを指定するようにワークツリーを設定した場合です。
core.worktree=/Users/braitsch/
だから私があなたたちに持っている質問は、私のワークツリーがルートに戻るgit-dirの親パスに沿ってだけでなく、ファイルシステム上のどこにでも存在できるようにするためにgitに指示するためにどのような設定が欠けているのですか?確かに、git-dirとwork-treeを好きな場所に配置し、gitに指示した後、すべてが機能するようにする方法が必要ですか?読んでくれてありがとう。任意の洞察をいただければ幸いです。