将 .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)。
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)。