`git lfs` 使用哪个 git-lfs?
Which git-lfs does `git lfs` use?
我刚刚将安装的 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
找到,还是用新的替换它?或者有更多 "official" 的方法吗?
通常,当您 运行 任何 Git 不知道的任意命令(甚至 Git 知道的命令时 知道是内置的,真的)比如:
git asdf
Git 将在您的 $PATH
中搜索名为 git-asdf
的程序。不过,在执行此搜索之前,Git 会插入其内置的 git-core 目录:
$ git --exec-path
/usr/lib/git-core
(在 Ubuntu 虚拟机上;在我的 Mac 上,它目前是 /usr/local/Cellar/git/2.15.1_1/libexec/git-core
,因为这是我在那里安装的最后一个更新。
除其他外,这意味着您可以编写自己的 Git 命令并将它们放在 $PATH
中的某个位置。但在这种情况下,这意味着 git lfs ...
可能会找到 $(git --exec-path)/git-lfs
,或者如果你 运行:
你的 shell 说的任何东西
$ which git-lfs
当然,假设您有支持此功能的shell。
根据您的编辑,我认为 git --exec-path
会产生 C:\Program Files\Git\mingw64\bin
。
Should I just delete this (and the other should be found via the PATH, or replace it with the new one? Or is there a more "official" way of doing this?
删除它可能会起作用。我预见到简单地删除 git-core
目录中的一个的两个主要危险:
有时 Git and/or 各种像插件一样工作的东西以不同的速度发展。如果已知 git-lfs
的配对版本可与特定 Git 安装一起使用,则其他一些 git-lfs
可能无法工作,因为它可能不同步。 (所以你可以将它保存在第三个位置,不碍事,而不仅仅是删除它。)
有些东西可能会自动重新安装旧的,或者卸载新的。前者很烦人,而后者会导致失败(所以把旧的保存起来可能很方便)。
我刚刚将安装的 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
找到,还是用新的替换它?或者有更多 "official" 的方法吗?
通常,当您 运行 任何 Git 不知道的任意命令(甚至 Git 知道的命令时 知道是内置的,真的)比如:
git asdf
Git 将在您的 $PATH
中搜索名为 git-asdf
的程序。不过,在执行此搜索之前,Git 会插入其内置的 git-core 目录:
$ git --exec-path
/usr/lib/git-core
(在 Ubuntu 虚拟机上;在我的 Mac 上,它目前是 /usr/local/Cellar/git/2.15.1_1/libexec/git-core
,因为这是我在那里安装的最后一个更新。
除其他外,这意味着您可以编写自己的 Git 命令并将它们放在 $PATH
中的某个位置。但在这种情况下,这意味着 git lfs ...
可能会找到 $(git --exec-path)/git-lfs
,或者如果你 运行:
$ which git-lfs
当然,假设您有支持此功能的shell。
根据您的编辑,我认为 git --exec-path
会产生 C:\Program Files\Git\mingw64\bin
。
Should I just delete this (and the other should be found via the PATH, or replace it with the new one? Or is there a more "official" way of doing this?
删除它可能会起作用。我预见到简单地删除 git-core
目录中的一个的两个主要危险:
有时 Git and/or 各种像插件一样工作的东西以不同的速度发展。如果已知
git-lfs
的配对版本可与特定 Git 安装一起使用,则其他一些git-lfs
可能无法工作,因为它可能不同步。 (所以你可以将它保存在第三个位置,不碍事,而不仅仅是删除它。)有些东西可能会自动重新安装旧的,或者卸载新的。前者很烦人,而后者会导致失败(所以把旧的保存起来可能很方便)。