git: svn 不是 git 命令 - Mac
git: svn is not a git command - Mac
我昨天没有问题,但今天我不能 运行 git svn
了。它说:
git: 'svn' is not a git command. See 'git --help'.
The most similar commands are
fsck
mv
show
我不知道它是否相关,但从昨天开始我更新了 npm
(6.14.4) 和 node
(v12.6.0)。
我在 macOs Catalina 上
更新:2020 年 9 月
看来要结束了。按照最初的建议将永远删除颠覆。找了个verified version of Subversion for MacOS,下载安装了。然后我需要将 Subversion 添加到 $PATH
变量以取代 Apple 的 svn
(它只打印一条消息说不再包含 subversion)。要添加它,请将此行添加到您的 ~/.zprofile
:
export PATH=/opt/subversion/bin:$PATH
这将修复 svn
。我仍然没有弄清楚如何修复 git svn
.
注意: 我也知道可以从 homebrew
获得颠覆,但是 homebrew
是我公司的政策所禁止的。如果 homebrew
对某些人效果更好,请 post 此处显示您的结果。
原始答案:2020 年 3 月
今天我也遇到了同样的事情。软件更新后,git svn
和svn
消失了。好像Apple is deprecating Subversion in XCode:
Command line tool support for Subversion — including svn, git-svn, and related commands — is no longer provided by Xcode. If you need Subversion or related command line tools, install the Command Line Tools package by running xcode-select --install. (50266910)
同时,我可以通过删除 XCode 命令行工具并重新安装它们来解决这种情况:
sudo rm -Rf /Library/Developer/CommandLineTools
sudo xcode-select --install
之后,git svn
和svn
回来了。希望这会让我们在最终弃用和删除之前暂停执行。
我在 GitHub.
上找到了 macOS Big Sur v11.1 (20C69)
的简单固定解决方案
确保安装 git、svn、perl 和 brew。
brew install git
brew install perl
brew install subversion
编辑/usr/local/Cellar/git/2.30.0/libexec/git-core/git-svn
。
将#!/usr/bin/perl
替换为#!/usr/local/bin/perl
git svn
有效。
以上解决方案仅适用于 perl 5.32.0.
当我将 perl 更新到 5.32.1 时,git svn
无法再工作。
Can't locate SVN/Core.pm in @INC (you may need to install the SVN::Core module)...
我在 GitHub 上找到了解决方案。
Now subversion built with system perl, so we can add an environment
variable to solve this problem:
export PERL5LIB=/usr/local/lib/perl5/site_perl/#{perl_version}/darwin-thread-multi-2level
You should replace #{perl_version}
with system perl's version.
For macOS Big Sur:
export PERL5LIB=/usr/local/lib/perl5/site_perl/5.28.2/darwin-thread-multi-2level
将 macOS 从版本 10.15 (Catalina) 升级到 10.15 (Big Sur) 后,我 运行 遇到了同样的问题。
非常感谢您的回答。这 3 个步骤让我完成了 99%。但后来我得到了错误
Can't locate SVN/Core.pm in @INC (you may need to install the SVN::Core module) (@INC contains: /usr/local/Cellar/git/2.30.0/share/perl5 /Applications/Xcode.app/Contents/Developer/Library/Perl/5.28/darwin-thread-multi-2level /Library/Developer/CommandLineTools/Library/Perl/5.28/darwin-thread-multi-2level /Library/Perl/5.28/darwin-thread-multi-2level /Library/Perl/5.28 /Network/Library/Perl/5.28/darwin-thread-multi-2level /Network/Library/Perl/5.28 /Library/Perl/Updates/5.28.2 /System/Library/Perl/5.28/darwin-thread-multi-2level /System/Library/Perl/5.28 /System/Library/Perl/Extras/5.28/darwin-thread-multi-2level /System/Library/Perl/Extras/5.28) at /usr/local/Cellar/git/2.30.0/share/perl5/Git/SVN/Utils.pm line 6.
BEGIN failed--compilation aborted at /usr/local/Cellar/git/2.30.0/share/perl5/Git/SVN/Utils.pm line 6.
Compilation failed in require at /usr/local/Cellar/git/2.30.0/share/perl5/Git/SVN.pm line 25.
BEGIN failed--compilation aborted at /usr/local/Cellar/git/2.30.0/share/perl5/Git/SVN.pm line 32.
Compilation failed in require at /usr/local/Cellar/git/2.30.0/libexec/git-core/git-svn line 23.
BEGIN failed--compilation aborted at /usr/local/Cellar/git/2.30.0/libexec/git-core/git-svn line 23.
如果其他人遇到同样的问题,我的解决方案是运行这个命令
export PERL5LIB=/usr/local/lib/perl5/site_perl/5.28.2/darwin-thread-multi-2level
我从中找到了命令
this GitHub answer
- 先用brew安装git和svn
brew install git
brew install svn
- 在
/usr/bin/perl
使用系统默认的 perl
如果您使用 brew 安装了 perl,请将其卸载。
brew uninstall perl
使用 which perl
检查是否在 /usr/bin/perl
使用系统默认的 perl。确保 git-svn 使用 #!/usr/bin/perl
使用以下命令检查哪个 perl 是 git-svn 使用
$ head -1 $(brew --prefix)/opt/git/libexec/git-core/git-svn
#!/usr/bin/perl
在 /usr/local/Cellar/subversion/1.14.1/lib/perl5/site_perl/5.18.4
检查你的 svn 的 perl 版本
如果出现错误Can't locate SVN/Core.pm in @INC
您还需要为 Catalina 设置 PERL5LIB 路径:
export PERL5LIB=/usr/local/lib/perl5/site_perl/5.18.4/darwin-thread-multi-2level
大苏尔:
export PERL5LIB=/usr/local/lib/perl5/site_perl/5.28.2/darwin-thread-multi-2level
我昨天没有问题,但今天我不能 运行 git svn
了。它说:
git: 'svn' is not a git command. See 'git --help'.
The most similar commands are
fsck
mv
show
我不知道它是否相关,但从昨天开始我更新了 npm
(6.14.4) 和 node
(v12.6.0)。
我在 macOs Catalina 上
更新:2020 年 9 月
看来要结束了。按照最初的建议将永远删除颠覆。找了个verified version of Subversion for MacOS,下载安装了。然后我需要将 Subversion 添加到 $PATH
变量以取代 Apple 的 svn
(它只打印一条消息说不再包含 subversion)。要添加它,请将此行添加到您的 ~/.zprofile
:
export PATH=/opt/subversion/bin:$PATH
这将修复 svn
。我仍然没有弄清楚如何修复 git svn
.
注意: 我也知道可以从 homebrew
获得颠覆,但是 homebrew
是我公司的政策所禁止的。如果 homebrew
对某些人效果更好,请 post 此处显示您的结果。
原始答案:2020 年 3 月
今天我也遇到了同样的事情。软件更新后,git svn
和svn
消失了。好像Apple is deprecating Subversion in XCode:
Command line tool support for Subversion — including svn, git-svn, and related commands — is no longer provided by Xcode. If you need Subversion or related command line tools, install the Command Line Tools package by running xcode-select --install. (50266910)
同时,我可以通过删除 XCode 命令行工具并重新安装它们来解决这种情况:
sudo rm -Rf /Library/Developer/CommandLineTools
sudo xcode-select --install
之后,git svn
和svn
回来了。希望这会让我们在最终弃用和删除之前暂停执行。
我在 GitHub.
上找到了macOS Big Sur v11.1 (20C69)
的简单固定解决方案
确保安装 git、svn、perl 和 brew。
brew install git brew install perl brew install subversion
编辑
/usr/local/Cellar/git/2.30.0/libexec/git-core/git-svn
。将
#!/usr/bin/perl
替换为#!/usr/local/bin/perl
git svn
有效。
以上解决方案仅适用于 perl 5.32.0.
当我将 perl 更新到 5.32.1 时,git svn
无法再工作。
Can't locate SVN/Core.pm in @INC (you may need to install the SVN::Core module)...
我在 GitHub 上找到了解决方案。
Now subversion built with system perl, so we can add an environment variable to solve this problem:
export PERL5LIB=/usr/local/lib/perl5/site_perl/#{perl_version}/darwin-thread-multi-2level
You should replace
#{perl_version}
with system perl's version.For macOS Big Sur:
export PERL5LIB=/usr/local/lib/perl5/site_perl/5.28.2/darwin-thread-multi-2level
将 macOS 从版本 10.15 (Catalina) 升级到 10.15 (Big Sur) 后,我 运行 遇到了同样的问题。
非常感谢您的回答
Can't locate SVN/Core.pm in @INC (you may need to install the SVN::Core module) (@INC contains: /usr/local/Cellar/git/2.30.0/share/perl5 /Applications/Xcode.app/Contents/Developer/Library/Perl/5.28/darwin-thread-multi-2level /Library/Developer/CommandLineTools/Library/Perl/5.28/darwin-thread-multi-2level /Library/Perl/5.28/darwin-thread-multi-2level /Library/Perl/5.28 /Network/Library/Perl/5.28/darwin-thread-multi-2level /Network/Library/Perl/5.28 /Library/Perl/Updates/5.28.2 /System/Library/Perl/5.28/darwin-thread-multi-2level /System/Library/Perl/5.28 /System/Library/Perl/Extras/5.28/darwin-thread-multi-2level /System/Library/Perl/Extras/5.28) at /usr/local/Cellar/git/2.30.0/share/perl5/Git/SVN/Utils.pm line 6. BEGIN failed--compilation aborted at /usr/local/Cellar/git/2.30.0/share/perl5/Git/SVN/Utils.pm line 6. Compilation failed in require at /usr/local/Cellar/git/2.30.0/share/perl5/Git/SVN.pm line 25. BEGIN failed--compilation aborted at /usr/local/Cellar/git/2.30.0/share/perl5/Git/SVN.pm line 32. Compilation failed in require at /usr/local/Cellar/git/2.30.0/libexec/git-core/git-svn line 23. BEGIN failed--compilation aborted at /usr/local/Cellar/git/2.30.0/libexec/git-core/git-svn line 23.
如果其他人遇到同样的问题,我的解决方案是运行这个命令
export PERL5LIB=/usr/local/lib/perl5/site_perl/5.28.2/darwin-thread-multi-2level
我从中找到了命令 this GitHub answer
- 先用brew安装git和svn
brew install git
brew install svn
- 在
/usr/bin/perl
使用系统默认的 perl
如果您使用 brew 安装了 perl,请将其卸载。
brew uninstall perl
使用 which perl
检查是否在 /usr/bin/perl
使用系统默认的 perl。确保 git-svn 使用 #!/usr/bin/perl
使用以下命令检查哪个 perl 是 git-svn 使用
$ head -1 $(brew --prefix)/opt/git/libexec/git-core/git-svn
#!/usr/bin/perl
在
检查你的 svn 的 perl 版本/usr/local/Cellar/subversion/1.14.1/lib/perl5/site_perl/5.18.4
如果出现错误
Can't locate SVN/Core.pm in @INC
您还需要为 Catalina 设置 PERL5LIB 路径:
export PERL5LIB=/usr/local/lib/perl5/site_perl/5.18.4/darwin-thread-multi-2level
大苏尔:
export PERL5LIB=/usr/local/lib/perl5/site_perl/5.28.2/darwin-thread-multi-2level