繁体   English   中英

如何在不同的驱动器上设置工作目录和本地存储库?

[英]How can I set up the working directory and the local repository on different drives?

在Git中,如何在不同的驱动器上设置工作目录和本地存储库? 原因是在每个本地提交上备份代码。

我们在'master'存储库上使用了一个网守模型,所以我不能只是向上游推送任何旧的垃圾,但我想确保每次进行本地提交时都备份任何旧的垃圾。

使用git init--separate-git-dir标志

git init命令有一个标志:

--separate-git-dir=<git dir>

而不是将存储库初始化为$GIT_DIR./.git/的目录, ./.git/创建一个包含实际存储库路径的文本文件。 此文件充当与文件系统无关的Git符号链接到存储库。

对于此示例,我们假设/Volumes/My_USB/是USB驱动器的路径。 /Volumes特定于Mac OS,但/Volumes路径外,此示例以直接的方式转换为其他操作系统。)

初始化Git存储库

  • 其工作树是当前目录,
  • 其“git目录”是/Volumes/My_USB/projectA_gitdir

简单地跑

git init --separate-git-dir="/Volumes/My_USB/projectA_gitdir"

要想法,

  • 检查.git 文件的内容:

     $ cat .git gitdir: /Volumes/My_USB/projectA_gitdir 

    如您所见,它只是一个文本文件,其中包含repo的git目录的路径。

  • 通过运行检查本地仓库的配置

     $ git config --local --list 

    在没有--separate-git-dir标志的情况下初始化repo时,您应该注意到通常不存在的行:

     core.worktree=<pwd> 

    其中<pwd>是当前目录的路径。

  • 检查git目录的内容; 如果一切顺利,必须在USB驱动器上创建一个名为projectA_gitdir的文件夹,并填充通常进入.git文件夹的所有内容:

     $ ls /Volumes/My_USB/projectA_gitdir HEAD description info refs config hooks objects 

    都好 :)

当然,如果可以访问驱动器,您将只能在此存储库上运行Git命令。 例如,在卸载它之后,会发生以下情况:

$ git status
fatal: Not a git repository: /Volumes/My_USB/projectA_gitdir

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM