gpt4 book ai didi

vim - 如何将 vim-fugitive 与 git 裸存储库一起使用?

转载 作者:行者123 更新时间:2023-12-04 01:10:24 30 4
gpt4 key购买 nike

环境
设置
我使用 git 裸存储库来版本我的配置文件。我可以使用与使用普通 git 存储库相同的命令,只需要包含一些标志:

git --git-dir=/home/kunzaatko/.cfg/ --work-tree=/home/kunzaatko/ __command__
代替
git __command__
用法
我将 vim-fugitive 与普通 git 存储库一起使用,主要是为了进行重大更改,并通过部分暂存(仅一组离散的大块/更改)并分别提交它们来将其添加到许多不同的提交中。我用 :Gdiff为此,我可以使用漂亮而高效的界面。
欲望
我想用我的配置 git 裸存储库来做到这一点。
我试过的:
  • 将存储库重命名为 .cfg.git .这没有任何改变。 issue that suggests this should work
  • 我试图改变 b:git_dir git-fugitive 的内部变量:
  • :let b:git_dir=/home/kunzaatko/.cfg/
  • 将工作目录更改为 git 目录,以便 Fugitive 识别它是一个 git 仓库:
  • :chdir /home/kunzaatko/.cfg/
    如果我知道如何做,还有什么值得尝试的:
  • 我认为可能有一种方法可以使用git submodule命令将裸仓库放入范围。问题在于将 git 存储库的根目录放在哪里... issue that I base this possibility of of


  • 有没有办法在 git-fugitive 中使用 git 裸仓库?
    (或任何其他可以解决我的用例的建议)

    最佳答案

    我同意@okket,但使用该方法时出现问题。
    在 Gstatus 窗口中,我无法获取已更改文件的状态。我发现 the reason是那个 Fugitive 得到了core.worktree来自 GIT_DIR 的属性存储库。
    所以对我来说,可行的方法如下:

  • 与@okket 所说的相同,设置 GIT_DIR使用 vim/nvim 命令时的 env 变量(GIT_WORK_TREE 可以省略):

  • GIT_DIR=$HOME/.cfg GIT_WORK_TREE=$HOME [n]vim
    对于fish shell的用户(比如我),应该使用 env命令:
    env GIT_DIR=$HOME/.cfg GIT_WORK_TREE=$HOME [n]vim
  • 套装core.worktree对于您的 git 存储库:

  • git --git-dir=$HOME/.cfg --work-tree=$HOME config --local core.worktree $HOME
    您可以使用以下命令确保正确操作:
    git --git-dir=$HOME/.cfg --work-tree=$HOME config --local core.worktree
    输出应该是您的 HOME 路径。
  • 如果您通过 git clone --bare ... 获得 git 存储库,您需要取消设置 core.bare避免 git 状态错误 warning: core.bare and core.worktree do not make sense :

  • git --git-dir=$HOME/.cfg --work-tree=$HOME config --unset core.bare
    这种方法还有一件事需要注意。您不能在 $HOME 之外使用 Fugitive 您将获得的目录 fugitive: working directory does not belong to a Git repository错误。

    PS: I'd like to comment on @okket 's answer, but due to low reputation I can only post a new answer here.

    关于vim - 如何将 vim-fugitive 与 git 裸存储库一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65021175/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com