我的理解是,当我执行git annex add somefile
时,它会为该文件创建一个符号链接并将其放在.git/annex/objects
文件夹中。然后,当我在某个不同的位置初始化git-annex
并将其与前一个位置同步时,它会下载一个损坏的符号链接,除非我git annex sync --content
生成该文件的完整副本。
我需要在一个位置放置大文件,比如说在USB驱动器上,以及多个使用大文件的git存储库。所以我想只有那些git repos中的大文件的符号链接。如何执行sync
以便git-annex
下载指向单个位置文件的有效符号链接?
答案 0 :(得分:0)
有两种方法可以做到这一点。
首先使用硬链接,其次使用符号链接。如果所有文件都位于同一文件系统/卷/分区中,我建议使用硬链接,否则,好的cp --link
只会复制整个文件。
git clone --shared main_repo/ new_repo/
Explained by git-annex author himself
在main_repo上:
git worktree add -b branch_name path_to_new_repo/
由于git-worktree使用了一个指针文件(git-annex替换为符号链接),所以它将在不同的文件系统上工作。对“不同存储库”的更改将存储在不同的分支中。如果希望它们保持同步,请使其与标准git命令(例如git merge
)保持同步。或者,您只能经常更改master分支和来自不同分支的git rebase master
。