运行命令时:git annex sync,我收到以下错误:
ControlPath too long
Command ssh ["-S","<local path to git repo>/.git/annex/ssh/git@<git url>","-o","ControlMaster=auto","-o","ControlPersist=yes","git@<git url>","git-annex-shell 'configlist' '<local path to git repo>'"] failed; exit code 255
Run Code Online (Sandbox Code Playgroud)
根据这个,问题不是git而是ssh(但是那里提出的解决方案没有用).
我能做些什么来避免这个问题?
在截止日期之前的谵妄时刻,我向一个存储库添加了一个大的(> 100 MB)二进制文件,其中包含私有主机上的远程控制器以及github.当然,github抱怨,天真地相信他们的建议,我选择使用LFS.
在两次或三次提交之后:我的存储库达到了github的LFS数据配额,我不得不重命名我的所有遥控器origin
,不得不明确地将所有.ssh/config
信息添加到git remote set-url
所有遥控器中,并且不能再使用任何其他计算机作为遥控器而不是ssh*.
我目前的状态是:我的主要工作本地存储库中的几个提交,其中一些包含LFS文件.直到最后几次提交,他们已被推送到github(直到我达到配额),然后可以手动从github拉到我的其他遥控器,但不是从我的本地推送给他们.由于配额,我无法绕过github将我的文件传输到其他遥控器.
我怎样才能清理LFS的回购以便我可以使用git-annex?理想情况下,在第一次LFS提交之前没有完全重新定位,但我认为这是不可避免的.我的问题是如何从Git-Annex迁移到Git LFS,因为我似乎错过了这个潮流.
我很高兴地确信LFS在某种程度上对我的情况有用.
*我无法在任何地方找到这个最后一期的问题,只在这个答案中提到并且通过各种错误消息暗示(但没有直接说明).当然如果记录在案,我从来没有选择过LFS,因为它让git有效地再次集中化.
我想知道在使用git lfs时是否可以最小化大文件的下载时间.
具体来说,以下场景:
[我知道git附件对这些功能有更好的支持,但它的Windows支持是有问题的]
我正在使用git-annex来管理我的文件.我的一些遥控器可以使用2或3种方法,例如ssh和nfs,但nfs访问只能在我的本地网络上使用.然后,git-annex选择最快的方法来同步或获取文件(nfs,如果可用,ssh代替,使用分数来选择).现在,我定义了一个远程每个存储库和每个访问方法(例如:server-by-ssh,server-by-nfs),但这不是一个真正的git-annex方式来完成这项工作,因为它不符合numcopies选项,它使附件中的文件保持足够的复制(使用我当前的方法,许多遥控器实际上是硬盘上的相同文件夹).
然后,我的问题适用于git和git-annex,因为遥控器是在git中添加的,而不是git-annex:我想知道是否可以为给定的遥控器定义替代url.
我试图使用该git remote set-url --add
命令,但它并没有像我期望的那样真正起作用.实际上,如果无法访问nfs url,git会挂起并等待.
任何的想法?
我运行GitLab实例,并希望允许我的用户上传几乎任何大小的文件.
众所周知,git仍然存在大文件问题.我知道通过将文件存储在其他地方并仅对元数据进行版本控制来解决此问题的方法,例如git-annex,git-media和git-fat.这些都集成到GitLab中,还是很容易实现?
我们的开发团队一直在使用 git 进行版本控制,并使用 git-annex 来存储大型二进制文件(数据二进制文件、图像、测试二进制文件等)。虽然我们已经能够设置并使用它,但我们也遇到了一些麻烦。
我们经常执行的一个给我们带来麻烦的常见行为是:
开发人员 1 为新功能添加了一些测试,并使用 git-annex 为测试添加了相应的数据。
git add <test-file>
git annex add <data-file>
git annex copy <data-file> --to=<remote location(we use s3 if that is relevant)>
git commit -m 'Tests with data'
git push
git annex sync
Run Code Online (Sandbox Code Playgroud)工作被审查和合并(我们使用 Github 进行托管并遵循分叉模型,其中所有工作由开发人员在他们自己的分叉上完成并通过拉取请求合并到主存储库中)
开发人员 2 与上游提取/合并并尝试在他的机器上运行测试。
git fetch upstream
git merge upstream/<branch>
git annex sync
git annex get
Run Code Online (Sandbox Code Playgroud)我们经常会发现测试数据要么无法在 git 中跟踪,要么无法从远程位置下载。
在我们的工作流程中使用 git-annex 的好方法是什么?
顺便说一句,还有哪些其他选项可以使这种工作流程更好/更易于管理?
有一段时间我一直在使用的Dropbox里面符号链接〜/文档,其中包括一些混帐回购了,所以我就在一直沉迷的皱起了眉头,在跨机器同步相同的git回购协议,而不是推/拉的做法.我想从Dropbox过渡到git-annex,但我意识到这意味着将我现有的git repos嵌套在〜/ Documents的超级回购中.
我的问题是,如何使用git-annex执行此操作,以便〜/ Documents文件夹将跨机器同步,同时保留其中包含的repos的所有分支等?我的孩子repos应该转换成〜/ Documents repo的子模块吗?
我很确定我不会分支〜/ Documents git-annex repo,但我会在repos里面的各个分支上继续开发.
我一直在阅读git-annex文档,但似乎没有就git-annex repos中的git repos明确达成共识.
铌.我已经在直接模式下运行git-annex了.
我昨天尝试安装git-annex来备份我的文件.我git annex add .
在我的存储库树的根目录中运行,然后运行a git commit
.到目前为止一切都很好.
我不知道git-annex正在做的是将我的整个文件树变成一大堆符号链接.现在我整个树中的每个文件都已符号链接.git/annex/objects
!这搞乱了我的应用程序,这取决于文件不是符号链接.
我的问题是,如何摆脱git-annex并将我的文件系统恢复到原始状态?对于一个正常的git repo,我可以做rm -r .git
,但我担心这不会在git-annex中完成.提前致谢.
我对 git-annex 不太熟悉。我刚刚阅读了文档,试图理解它。我脑海中浮现的想法(但我无法确定)是:我可以在 GitHub 上托管一个 git 存储库,然后使用 git 和 git 附件 git 推送到它,然后设置 git 附件,以便它推送二进制文件像S3存储桶一样,所有源代码文件都去GitHub?
任何人都可以告诉我如何使用git附件与bup.
git annex initremote mybup type=bup encryption=none buprepo=example.com:/big/mybup
Run Code Online (Sandbox Code Playgroud)
不适合我.如果我打字
git annex
Run Code Online (Sandbox Code Playgroud)
它将列出所有命令,但是在这个initremote命令中不存在.可能是什么问题呢.