哪个git-lfs使用`git lfs`?

时间:2017-09-21 13:30:28

标签: git git-lfs git-for-windows

我刚刚将已安装的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)

如果我运行git-lfs version,我会看到新版本:

$ git-lfs version
git-lfs/2.3.0 (GitHub; windows amd64; go 1.8.3; git 4dd2bf73)

我不确定我理解git lfs命令在哪里找到它的git-lfs。我已经找到了几个(或至少一个)旧的git-lfs安装并删除它们,虽然git似乎仍然找到了旧的。并且路径中没有其他git-lfs。

告诉git使用新安装的版本需要做什么?

我正在运行Windows 10并使用Cygwin。我在PowerShell和cmd中也是这样。

修改: 我发现了这个:

C:\Program Files\Git\mingw64\bin\git-lfs.exe

这似乎是旧版本:

$ /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)

我应该删除这个(并且应该通过PATH找到另一个,或者用新的替换它?或者是否有更多&#34;官方&#34;这样做?< / p>

1 个答案:

答案 0 :(得分:1)

通常,当你运行Git不知道的任何内置命令(或者甚至是Git 所知道的内置的任何命令时),例如:

git asdf

Git会在$PATH搜索名为git-asdf的程序。不过,在进行此搜索之前,Git会插入其内置的git-core目录:

$ git --exec-path
/usr/lib/git-core

(在Ubuntu VM上;在我的Mac上它当前是/usr/local/Cellar/git/2.15.1_1/libexec/git-core,因为那是我在那里安装的最后一次更新。)

除此之外,这意味着您可以编写自己的Git命令并将它们放在$PATH中的某个位置。但在这种情况下,这意味着git lfs ...可能会找到$(git --exec-path)/git-lfs,或者如果你运行,你的shell会发现:{/ p>

$ which git-lfs

当然,假设您有一个支持此功能的shell。

根据您的编辑,我认为git --exec-path会产生C:\Program Files\Git\mingw64\bin

  

我应该删除它(另一个应该通过PATH找到,或者用新的替换它?还是有更“官方”的方式来做这个?

删除它可能会有效。我预见到简单地删除git-core目录中的一个主要危险:

  • 有时Git和/或各种像插件一样工作的东西会以不同的速度发展。如果已知配对版本的git-lfs可以使用该特定Git安装,则其他一些git-lfs可能无法正常工作,因为它可能不同步。 (因此,您可以将其保存在第三个位置,而不是仅仅将其移除。)

  • 有些东西可能会自动重新安装旧的,或者卸载新的。前者只是令人讨厌而后者会导致失败(因此将旧版本保存起来可能很方便)。