cd /Users/braitsch/repos/project1
git --git-dir=. --work-tree=/Users/braitsch/projects/project1 init
运行以上代码后,我可以通过git add somefile或git add .来添加位于“/ Users / braitsch / projects / project1”中的文件。提交和调用“git branch”都能正常工作。
然而,“git stash list”会抛出以下错误:
致命错误:/ usr / local / Cellar / git / 1.7.4.4 / libexec / git-core / git-stash无法在没有工作树的情况下使用。
用户自定义工作树不支持隐藏吗?
git config --local core.worktree
echoes out : /Users/braitsch/projects/project1
任何想法都将不胜感激! --------更新-------- 正如 @jleedev 在下面指出的那样,当尝试从工作树外部调用 "git stash" 时似乎存在一个错误。然而,我的解决方法是只需进入工作树,然后通过首先在 gitdir 路径之前添加路径来调用 stash。虽然不方便,但以下内容适用于 stash 命令:
git --git-dir="projects/proj1/.git" stash list
这个问题似乎不会困扰其他股票命令,如add、commit、branch等。据我所知,只有"stash"。
如果你想摆脱默认结构,即让.git文件夹嵌套在你的工作树内部,你可能会发现以下步骤很有用:
- create a directory where you'd like to store your git repository
- create a directory where you want keep the files your going to track (both of these can be anywhere on your file system)
cd into your git repository folder and run:
git --git-dir=. --work-tree="path-to-your-project-folder" init
This will init a new repository and link it to your external worktree folder.
要运行标准的添加、删除、分支和提交命令,请进入您的git库并像往常一样运行命令。
但是,如果要运行stash命令,请确保进入您的工作目录,然后像上面提到的那样在命令前加上您的gitdir路径。