我有时间让git与我的用户定义的工作树合作,该工作树存在于包含我的.git目录的文件夹之外.
基本上设置是这样的:我有两个目录,一个名为"git-worktree",其中包含我想要跟踪的文件,另一个名为"git-dir",其中包含存储库的.git文件夹,即GIT_DIR.
我通过cd进入文件夹"git-dir"并运行:
git --git-dir=./.git --work-tree=/Users/braitsch/Test/git-worktree/ init
Run Code Online (Sandbox Code Playgroud)
这成功初始化了存储库,当我在"git-dir"文件夹中时,我可以添加工作树中的文件,运行git status并提交它们.凉.
当我尝试运行git stash时,这里出现了踢球,这让我误以为:
fatal: /usr/local/git/libexec/git-core/git-stash cannot be used without a working tree.
Run Code Online (Sandbox Code Playgroud)
现在这是BS,因为我知道(或者至少我认为)我将工作树设置为包含我想要跟踪的文件的"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
Run Code Online (Sandbox Code Playgroud)
我甚至尝试手动将.git文件夹添加到本地配置文件,看看是否有帮助,但无济于事.
core.gitdir=/Users/braitsch/Test/git-dir/.git
Run Code Online (Sandbox Code Playgroud)
现在来这里是踢球者.如果我将工作树设置为git-dir的父目录,那么 Git stash将起作用.例如,如果我将工作树设置为说出我的主目录.
core.worktree=/Users/braitsch/
Run Code Online (Sandbox Code Playgroud)
所以我给你们的问题是我错过了什么设置告诉git允许我的工作树存在于文件系统的任何地方,而不仅仅是沿着git-dir的父路径返回到根目录?当然必须有一种方法可以将你的git-dir和你的工作树放在你想要的任何地方,然后告诉git他们有什么工作吗?非常感谢阅读.任何见解都将得到慷慨的赞赏.
git --git-dir=<your path> --work-tree=<work tree path> stash
Run Code Online (Sandbox Code Playgroud)
应该管用.你尝试过绝对路径吗?
更新:
似乎是一个错误.最近只添加了--git-dir选项的扩展功能,而git stash等命令还没有新的实现.
git-stash是一个bash脚本.您可以破解它并删除需要工作的dir检查然后cd进入工作文件夹.
归档时间: |
|
查看次数: |
3059 次 |
最近记录: |