我用--serparate-git-dir
选项创建了一个git repo。我经常通过指定--git-dir
和--work-tree
作为参数来使用相同的repo形成不同的工作树。
我有两个工作树,我经常在它们之间切换,所以我在指向仓库目录的辅助工作树中添加了一个.git
文件。然而,由于存储库的config
文件指向主工作树,我仍然必须显式地指定它,否则它将使用主工作树。
我尝试在.git/config
文件中将worktree
的值设置为$PWD
,但这会导致以下错误:fatal: Could not chdir to '$PWD': No such file or directory
有办法让worktree
动态化吗?
2条答案
按热度按时间okxuctiv1#
我也遇到过类似的问题,我想让我的
~/.gitconfig
可以跨平台移植,这样我就可以在Macbook和Linux VM上使用相同的gitconfig。我需要credential.helper
根据平台的不同而有所不同。最后,我编写了一个小的
generate_gitconfig
脚本,并将其添加到我的bashrc中,以便在启动每个shell会话时自动生成~/.gitconfig
。通过脚本编写gitconfig给了你更多的灵活性,因为你可以根据环境变量、是否安装了某些命令、机器的主机名等来动态设置值。
下面是我的
generate_gitconfig
脚本,作为一个例子:of1yzvn42#
EDIT 05-2016As @amynbe comments,git >= 2.5 has git-worktree https://git-scm.com/docs/git-worktree
我有一个脚本,有人在freenode上传递,我不确定作者,但我知道我可以分享,它用于创建基于分支的不同工作副本,我认为它可以适合您的用例: