我刚刚将安装的 Git LFS 从https://github.com/git-lfs/git-lfs/releases更新到最新版本 (2.3.0)。然而,当我跑步时git lfs version我看到:
$ git lfs version
git-lfs/2.2.1 (GitHub; windows amd64; go 1.8.3; git 621d1f82)
Run Code Online (Sandbox Code Playgroud)
如果我运行git-lfs version我会看到新版本:
$ git-lfs version
git-lfs/2.3.0 (GitHub; windows amd64; go 1.8.3; git 4dd2bf73)
Run Code Online (Sandbox Code Playgroud)
我不确定我是否理解该git lfs命令在哪里找到它的 git-lfs。我已经找到了几个(或至少一个)旧的 git-lfs 安装并删除了它们,尽管 git 似乎仍然找到了一个旧的。并且路径中没有其他 git-lfs。
我需要做什么才能告诉 git 使用新安装的版本?
我正在运行 Windows 10 并使用 Cygwin。我在 PowerShell 和 cmd 中得到同样的结果。
编辑: 我发现了这个:
C:\Program Files\Git\mingw64\bin\git-lfs.exe
Run Code Online (Sandbox Code Playgroud)
这似乎是旧版本:
$ /cygdrive/c/Program\ Files/Git/mingw64/bin/git-lfs.exe version
git-lfs/2.2.1 (GitHub; windows amd64; go 1.8.3; git 621d1f82)
Run Code Online (Sandbox Code Playgroud)
我应该删除这个(另一个应该通过 找到PATH …
我不想将 Visual Studio 2017 (15.5) 与使用 Git LFS 跟踪某些文件的 Git 存储库一起使用。
我已经在机器上安装了 Git 2.15,其中包含 Git LFS。
我安装的 Visual Studio 2017 只安装了以下工作负载,没有安装 Git 组件,因为它已经在机器上可用:
--add Microsoft.VisualStudio.Workload.ManagedDesktop
--add Microsoft.VisualStudio.Workload.NetWeb
--add Microsoft.VisualStudio.Workload.NetCoreTools
--add Microsoft.VisualStudio.Component.Wcf.Tooling
Visual Studio 现在无法从存储库签出分支,因为它找不到 Git LFS。
我认为这是因为git-lfs.exe在路径上不可用,并且 Visual Studio 在c:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\bin\.
如果我另外安装了独立的 git-lfs 安装程序,它git-lfs在路径上可用,结帐可以在某些机器上运行,但不能在其他机器上运行(还没有发现有什么区别,可能是安装顺序,或者是新安装或更新视觉工作室)。
如果我删除该c:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\文件夹,则在 Visual Studio 中一切正常,因为它确实使用了路径中可用的 Git 版本。
我的问题是:
我们在 gitlab 中有一个启用了 git-lfs 的存储库,它工作得很好。它很好地分离了 pdf、电影和其他我们不想进行版本管理的内容。
出现用户错误,有人在未启用 git-lfs 支持的系统上克隆存储库。那个人将一个 pdf 文件添加到 git 并推送回服务器。
然后另一个用户在有 git-lfs 的系统上获取该分支,并尝试检查它:
$ git checkout pj-guide_47_mac_R_setup
Switched to branch 'pj-guide_47_mac_R_setup'
Your branch is behind 'origin/pj-guide_47_mac_R_setup' by 14 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Encountered 1 file(s) that should have been pointers, but weren't:
47.mac_R_setup/47.mac_R_setup-slides.pdf
Run Code Online (Sandbox Code Playgroud)
正确配置 git-lfs 来修复该 pdf 文件的系统上最直接的路线是什么?根据https://github.com/git-lfs/git-lfs/issues/1726,有 git lfs merge import 与 git-lfs 2.3.0 一起发布的用法,但我无法理解如何使用它。
我已经开始在 Unity 项目中使用 git-lfs。安装 git-lfs 并提交一些资源文件后,一切似乎都工作正常。现在我注意到我的工作目录中有一些名为的文件夹lfs,但hooks它们不在该.git目录内。当我执行git statusgit 操作时,会将这些文件夹内的文件列为未跟踪的新文件。这不是它应该如何工作的,对吧?有什么想法可能导致此问题以及我应该检查什么吗?
这是输出:
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: Assets/Scripts/PlayerController/FOVKick.cs
deleted: Assets/Scripts/PlayerController/LerpControlledBob.cs
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: Assets/Scripts/PlayerController/FOVKick.cs.meta
deleted: Assets/Scripts/PlayerController/LerpControlledBob.cs.meta
Untracked files:
(use "git …Run Code Online (Sandbox Code Playgroud) 我已将 git 存储库中的大文件迁移到 git-lfs。该存储库包含自定义 python 库的源代码。我可以用 pip 安装它:
pip install git+https://gitserver.com/myrepo.git@branch
Run Code Online (Sandbox Code Playgroud)
目前(迁移后),存储在 lfs 的大文件显然不在安装范围内(只有链接)。我已经在环境中安装了 PyPI 的 git-lfs 包,但没有帮助。
有没有办法告诉 pip 在克隆存储库时获取 git-lfs 文件?
我下面这个指南有关如何使用Git的LFS。
文章指出,用户需要安装 Git LFS 命令行客户端,或 Git LFS 感知 GUI 客户端,例如 Sourcetree。
尽管看起来很简单,但我找不到有关如何在 SourceTree GUI 中使用 Git LFS 跟踪文件的任何信息,只有命令行指令,如 git lfs track "*.ogg"。是否可以?
我有一个本地 git 存储库,启用了 LFS。
我经常需要将其克隆到同一驱动器上的其他位置。虽然复制粘贴存储库可以完全满足我的要求,但我在执行此操作时遇到了一些问题git:
cd C:\wrkfldr\SUBDIR
git clone "C:\wrkfldr\LOCAL_REPO\.git"
Run Code Online (Sandbox Code Playgroud)
退货
Cloning into 'LOCAL_REPO'...
done.
Downloading BIG_LFS_FILE.xlsm (6.4 MB)
Error downloading object: BIG_LFS_FILE.xlsm (01d6d9b): Smudge error: Error downloading BIG_LFS_FILE.xlsm (01d6d9b68a17724fbd7e5aad72b643621edf1ac9ccd34f3ea0874a870af87e4c): batch request: ssh: Could not resolve hostname c: Name or service not known: exit status 255
Errors logged to C:\Users\LOCAL_REPO\.git\lfs\logs\20191203T095345.1265547.log
Use `git lfs logs last` to view the log.
error: external filter 'git-lfs filter-process' failed
fatal: BIG_LFS_FILE.xlsm: smudge filter lfs failed
warning: Clone succeeded, but checkout failed.
You …Run Code Online (Sandbox Code Playgroud) 我需要删除 Git LFS 文件指针,并将文件直接添加到 Git。
我在 .gitattributes 中有一个过滤器来匹配某些文件:
test/**/*.py filter=lfs diff=lfs merge=lfs -text
Run Code Online (Sandbox Code Playgroud)
如何修改它以从此模式中排除 1 个文件?
我尝试过这样的事情:
test/**/*.py !test/my_dir/my_file.py filter=lfs diff=lfs merge=lfs -text
Run Code Online (Sandbox Code Playgroud)
但它似乎不起作用...git说没有这样的文件
在我的公司,我们使用git LFS存储系统开发相关的文件。该存储库包含 CAD 数据、图像、文档(*.pdf、*.docx、*.xlsx)等。绝对有必要将所有文件置于版本控制之下。然而,尽管 LFS 跟踪所有文件,但存储库的使用方式最终导致存储库的总大小达到 8GB。
基本上所有内容都被推送到主分支上,这似乎使 LFS 存储变得过时,因为无法修剪任何内容来保存本地存储。
问题
有没有办法让更多的本地对象被追溯修剪?
根据我的理解,.gitattributes与.gitignore. 如果我在 中定义了一个过滤器.gitattributes,这个过滤器就会生效并且文件将被传输到 LFS。
在每个 GIT LFS 相关文档(官方文档、stackoverflow 答案等)中,建议运行git lfs track.
难道git lfs track做任何事情比过滤写.gitattributes?