这是我的子模块 redmine_dashboard 配置文件:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
worktree = /Users/daniel/redmine/vendor/plugins/redmine_dashboard
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:ebc/redmine_dashboard.git
[branch "master"]
remote = origin
merge = refs/heads/master
[gui]
wmstate = normal
geometry = 841x391+-8+43 187 177
worktree = /Users/daniel/redmine/vendor/plugins/redmine_dashboard
worktree = /home/daniel/redmine/vendor/plugins/redmine_dashboard
我可以为亲戚更改此绝对路径吗?类似的东西:
worktree = ../../vendor/plugins/redmine_dashboard
答案 0 :(得分:7)
是的,您应该能够使用相对路径更新配置文件。您还应该将子模块根目录中的.git
文件中的工作树目录更新为返回该模块的相对路径。
我相信这在(至少)最新版本的git(1.7.10.1)中得到了修复。我似乎找不到更改日志,所以我不知道它何时修复。通过删除.git/modules
文件夹中的子模块和文件夹,然后重做git submodule init
和git submodule update
,我能够让git解决问题。
答案 1 :(得分:3)
请注意git config
man page提及:
core.worktree
设置工作树根目录的路径。这可以被
GIT_WORK_TREE
环境变量和--work-tree
命令行选项覆盖 它可以是{strong>或.git
目录的相对路径,由--git-dir
或GIT_DIR
指定,或自动发现。
如果指定了--git-dir
或GIT_DIR
但未指定--work-tree
,GIT_WORK_TREE
和core.worktree
,则将当前工作目录视为工作树的根目录
答案 2 :(得分:2)
为什么要设置worktree
?默认情况下,工作树是您从.git
目录运行命令的位置。有关详细信息,请参阅this question。