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

昆扎特科

环境

设置

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

git --git-dir=/home/kunzaatko/.cfg/ --work-tree=/home/kunzaatko/ __command__

代替

git __command__

用法

我将vim-fugitive与普通git存储库一起使用,主要是为了进行重大更改,并通过部分暂存(仅一组离散的大块/更改)并分别提交它们来将其添加到许多不同的提交中。我将其:Gdiff用于我可以使用的漂亮且高效的界面。

欲望

我想用我的配置 git 裸存储库来做到这一点。

我试过的:

  1. 将存储库重命名为.cfg.git. 这没有任何改变。表明这应该有效的问题

  2. 我试图改变git-fugitiveb:git_dir内部变量

:let b:git_dir=/home/kunzaatko/.cfg/
  1. 将工作目录更改为 git 目录,以便逃犯识别它是一个 git repo:
:chdir /home/kunzaatko/.cfg/

如果我知道如何做,还有什么值得尝试的:

  1. 我认为可能有一种方法可以使用该git submodule命令将裸仓库纳入范围。问题在于git 存储库放在何处......我基于这种可能性的问题

问题

有没有办法将git 裸仓库与git-fugitive 一起使用

(或任何其他可以解决我的用例的建议)

知乎

我同意@okket,但使用该方法时出现问题。

在 Gstatus 窗口中,我无法获取已更改文件的状态。我发现原因是逃犯core.worktreeGIT_DIR存储库中获取属性

所以对我来说,可行的方法如下:

  1. 与@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
  1. 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 路径。

  1. 如果您通过 获取 git 存储库git clone --bare ...,则需要取消设置core.bare以避免 git status 错误warning: core.bare and core.worktree do not make sense
git --git-dir=$HOME/.cfg --work-tree=$HOME config --unset core.bare

这种方法还有一件事需要注意。您不能$HOME在会fugitive: working directory does not belong to a Git repository出错目录之外使用逃犯

PS:我想评论@okket 的答案,但由于声誉低,我只能在这里发布新答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将Azure DevOps Git存储库与Azure静态Web应用一起使用?

如何将Spring Cloud Config与Git and Vault复合环境存储库一起使用?

如何使用vim-fugitive暂存所有已修改和新文件

如何将Git的交互式rebase与仅本地存储库一起使用(无远程/源)?

如何将本地更改与git中远程存储库上的更改集成在一起?

将Git存储库与安全数据一起使用

将 SourceTree (Git GUI) 与 Subversion (SVN) 存储库一起使用有哪些选项?

如何在github https存储库地址上将git与ssh一起使用?

如何使“ git difftool --dir-diff”与vim一起使用

我如何将git squash一起提交?

如何配置 IntelliJ 以将 SVN 与 CVS、GIT 等一起显示为存储库选项?

如何在一个 GIT 存储库中将 Composer 与多个 TYPO3 扩展一起使用

如何在我已经处理过的bitbucket存储库上将git客户端与GUI一起使用?

如何将Laravel分隔的“后端”和公用文件夹与Git一起使用?

如何将 grep/git grep 与管道输出一起使用?

如何将git“ --unshallow”与“-单分支”克隆一起使用?

如何将 git update-index --assume-unchanged <file> 与 pathspec 一起使用?

如何从本地还原Git裸存储库

如何在另一台主机上 git clone 裸远程 git 存储库

如何将SourceTree与多个存储库一起使用?

如何将Go与Bitbucket私有存储库一起使用?

如何将Go与私有的GitLab存储库一起使用

将两个git-svn存储库与常规git commit合并在一起

Vue:如何将存储与组件一起使用?

如何将多个git存储库分组到一个存储库中

如何将多个git存储库分组到一个存储库中

如何将 git 存储库用于 IntelliJ 代码样式

如何将 Git 存储库重置为 HEAD?

如何将本地git存储库导入github?