我很难让Git与我的用户定义的工作树合作,该工作树存在于外部的之外,该文件夹包含我的.git目录。
基本上,设置如下:我有两个目录,一个叫做"git-worktree“,它包含我想要跟踪的文件,另一个叫做"git-dir”,它包含存储库的.git文件夹,也就是GIT_DIR。
我在存储库中加入了"git-dir“文件夹,并运行:
git --git-dir=./.git --work-tree=/Users/braitsch/Test/git-worktree/ init这成功地初始化了存储库,当我在" git -dir“文件夹中时,我可以添加位于工作树中的文件,运行git状态并提交它们。凉爽的。
当我试图运行git stash时,就会出现这个问题,这会给我带来错误:
fatal: /usr/local/git/libexec/git-core/git-stash cannot be used without a working tree.这是胡说八道,因为我知道(或者至少我认为)我将工作树设置为"git-worktree“文件夹,其中包含我想要跟踪的文件。
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存储将工作。
core.worktree=/Users/braitsch/因此,我的问题是,我缺少什么设置来告诉Git允许我的工作树在文件系统上存在anywhere,而不仅仅是沿着git-dir的父路径返回到根呢?当然,一定有一种方法可以将你的git-dir &您的工作树放在任何您想要的位置,并且在告诉Git它们在哪里之后,让所有的东西都能工作吗?
发布于 2011-06-17 23:59:55
git --git-dir=<your path> --work-tree=<work tree path> stash应该行得通。你试过绝对的方法吗?
更新:
好像是个虫子。-- git -dir选项的扩展功能是最近才添加的,一些命令(如git stash )还没有新的实现。
吉特-藏是一个巴什脚本。您可以破解它并删除所需的工作dir检查,然后cd进入工作文件夹。
https://stackoverflow.com/questions/6392862
复制相似问题