使用git-lfs时有没有更好的方法来执行`git subtree pull`?

时间:2017-06-13 20:02:09

标签: git git-subtree git-lfs

我有两个存储库:parentchild。他们都使用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] mastertemp_branch,我必须立即将其删除。

parent

这很有效,但感觉真的 kludgey。

当子树存储库使用git-lfs时,是否有更好的方法来调用git branch -D temp_branch git push origin --delete temp_branch

0 个答案:

没有答案