如下所示,我必须设置一个裸仓库的工作树:
cd barerepo
git status
fatal: This operation must be run in a work tree
git --work-tree=/var/www/mywork/ status
# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)
如何为该repo设置工作树,以便我不必每次都指定它?
我尝试barerepo/config用这个修改,但它不起作用.
[core]
repositoryformatversion = 0
filemode = true
bare = true
worktree = /var/www/mywork
Run Code Online (Sandbox Code Playgroud)
Ple*_*and 12
Bare repos不应该有工作树,所以git打印出"致命:core.bare和core.worktree没有意义"的错误信息.因此,您需要bare = false在repo的配置文件中进行设置.
user@host:~$ cd barerepo
user@host:~/barerepo$ git config --bool core.bare false
user@host:~/barerepo$ git config --path core.worktree /var/www/mywork
Run Code Online (Sandbox Code Playgroud)
但是,如果以前不存在barerepo,则应使用此命令:
git init --separate-git-dir=. /var/www/mywork
Run Code Online (Sandbox Code Playgroud)
此命令还将.git在工作树中创建一个指向git目录的文件:
gitdir: /home/user/barerepo
Run Code Online (Sandbox Code Playgroud)
请注意,问题和答案来自 2012 年,但从 git 2.5 开始,即使使用裸存储库,您也可以使用以下命令创建单独的工作树:
$ git worktree add /var/www/mywork/ master
$ git worktree add /var/www/workdev/ devel
Run Code Online (Sandbox Code Playgroud)
请参阅git-worktree(1)。
它不会改变core.worktree,但会在您的 git 存储库中创建一个worktrees目录。
extensions.worktreeConfig如果您不希望所有工作树和裸存储库共享相同的配置,您可能需要将配置选项更改为 true。
| 归档时间: |
|
| 查看次数: |
17064 次 |
| 最近记录: |