如何在不同的驱动器上设置工作目录和本地存储库?
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>
Instead of initializing the repository as a directory to either
$GIT_DIR
or ./.git/
, create a text file there containing the path
to the actual repository. This file acts as filesystem-agnostic Git
symbolic link to the repository.
例子
对于此示例,我们假设 /Volumes/My_USB/
是 USB 驱动器的路径。 (/Volumes
特定于 Mac OS,但是,除此路径外,此示例以直接的方式转换为其他操作系统。)
初始化 Git 存储库
- 当前目录是其工作树,
- 谁的"git directory"是
/Volumes/My_USB/projectA_gitdir
,
简直运行
git init --separate-git-dir="/Volumes/My_USB/projectA_gitdir"
修正想法,
检查 .git
文件的内容:
$ cat .git
gitdir: /Volumes/My_USB/projectA_gitdir
如您所见,它只是一个文本文件,其中包含您的存储库 git 目录的路径。
通过 运行ning
检查本地仓库的配置
$ 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
在Git中,如何在不同的驱动器上设置工作目录和本地存储库? 原因是在每次本地提交时备份代码。
我们在 'master' 存储库上采用了看门人模型,所以我不能只将任何旧垃圾推到上游,但我想确保每次创建本地时备份所有旧垃圾犯罪。
使用git init
的--separate-git-dir
标志
git init
命令有一个标志:
--separate-git-dir=<git dir>
Instead of initializing the repository as a directory to either
$GIT_DIR
or./.git/
, create a text file there containing the path to the actual repository. This file acts as filesystem-agnostic Git symbolic link to the repository.
例子
对于此示例,我们假设 /Volumes/My_USB/
是 USB 驱动器的路径。 (/Volumes
特定于 Mac OS,但是,除此路径外,此示例以直接的方式转换为其他操作系统。)
初始化 Git 存储库
- 当前目录是其工作树,
- 谁的"git directory"是
/Volumes/My_USB/projectA_gitdir
,
简直运行
git init --separate-git-dir="/Volumes/My_USB/projectA_gitdir"
修正想法,
检查
.git
文件的内容:$ cat .git gitdir: /Volumes/My_USB/projectA_gitdir
如您所见,它只是一个文本文件,其中包含您的存储库 git 目录的路径。
通过 运行ning
检查本地仓库的配置$ 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