将 .git 文件夹保存在保管箱之外

Keeping .git folder outside of dropbox

Dropbox 在处理 git 文件时往往会出现问题。制作副本等。但是,我希望它备份一些我可能不一定包含在我的 git 存储库中的元素,并跟踪我尚未提交给 git 的更改。

当它是一个全新的 git 存储库 (git init)

时,我有一个很好的解决方案

我将目录更改为 dropbox 和终端中的项目文件夹:

git --git-dir=~/git_storage/my.git --work-tree=. init && echo "gitdir: ~/git_storage/my.git" > .git

它完全符合我的预期。它将工作目录中的 .git 文件夹替换为包含 git 文件实际存储目录的文本文件 .git。所有这一切 - 在 Dropbox 之外。仅保留 .git 文本文件进行同步。

但是,我想知道如何为克隆的或现有的存储库设置相同的设置(.git 保管箱外的目录)。

如果存储库已经存在于 Dropbox 中(即,您不能使用 charlesreid1 提到的 --separate-git-dir=<git dir> 克隆它),您可以:

  • 将 .git 移出 DropBox
  • GIT-DIR设置为.git
  • 的新路径

这样,您将继续在 Git 存储库中工作(其工作树像以前一样保留在 Dropbox 中),但是您的 git 命令将使用 .git 存储库现在 Dropbox 之外(尽管I had bad experiences before, and use git bundle instead)。