我有两个存储库:parent
和child
。他们都使用git-lfs。我正在尝试将child
作为子树导入parent
。
在parent
目录中,我尝试添加它,我得到以下内容:
> git subtree add --prefix child [child_url]
git fetch [child_url] master
From [child_url]
* branch master -> FETCH_HEAD
Downloading [child_binary_file_path] (12.55 KB)
Error downloading object: [child_binary_file_path] ([sha])
Errors logged to .git\lfs\objects\logs\20170613T115607.1992713.log
Use `git lfs logs last` to view the log.
error: external filter git-lfs smudge -- %f failed 2
error: external filter git-lfs smudge -- %f failed
fatal: [child_binary_file_path]: smudge filter lfs failed
在日志文件中,我看到
Error downloading object: [child_binary_file_path] ([sha]): Smudge error: Error downloading [child_binary_file_path] ([sha]): [[sha]] Object does not exist on the server: [404] Object does not exist on the server
%+v
Smudge error: Error downloading [child_binary_file_path] ([sha]): [[sha]] Object does not exist on the server: [404] Object does not exist on the server
我认为这是有意义的,因为child
的二进制文件不会<{1}}在服务器上。
所以,我尝试从parent
目录中将child
lfs文件添加到parent
:
parent
一切正常,直到最后一个命令。 git remote add child [child_url]
git fetch child
git lfs fetch
git lfs fetch child --all
git lfs push origin --all
并没有推动任何事情:
git lfs push
它似乎只推送> git lfs push origin --all
Git LFS: (0 of 0 files, 1 skipped) 0 B / 0 B, 210 B skipped
分支机构上存在的parent
个文件。
我能弄清楚如何将这些lfs文件添加到parent
的唯一方法是将parent
分支添加到child
。
parent
这样我就可以成功拨打git checkout -b temp_branch child/master
git push origin
。
但是,由于我不想在git subtree add --prefix child [child_url] master
上temp_branch
,我必须立即将其删除。
parent
这很有效,但感觉真的 kludgey。
当子树存储库使用git-lfs时,是否有更好的方法来调用git branch -D temp_branch
git push origin --delete temp_branch
?