TFS 2015 Update 2带来了Git LFS支持,但是当我尝试将它与Brian Keller VS2015ALM虚拟机(升级到Update 2)一起使用时,我遇到了这个例外:
git-lfs/1.2.0 (GitHub; windows amd64; go 1.6.1; git 386c5d8)
git version 2.8.1.windows.1
$ git-lfs.exe smudge -- Image1.jpg
Error downloading object: Image1.jpg (968bda1e0a17e295e265311f93bc4e631e171
d776d51c6d7a43b52185c82631a)
Your user name must be of the form DOMAIN\user. It is currently brian%!(EXTRA st
ring=string)
goroutine 1 [running]:
github.com/github/git-lfs/lfs.Stack(0x0, 0x0, 0x0)
C:/Users/techn/go/src/github.com/github/git-lfs/lfs/errors.go:566 +0x87
github.com/github/git-lfs/commands.logPanicToWriter(0x1a42c0, 0xc082020020, 0x1b
54a0, 0xc0823ae1a0)
C:/Users/techn/go/src/github.com/github/git-lfs/commands/commands.go:195
+0xf87
github.com/github/git-lfs/commands.logPanic(0x1b54a0, 0xc0823ae1a0, 0x0, 0x0)
C:/Users/techn/go/src/github.com/github/git-lfs/commands/commands.go:159
+0x419
github.com/github/git-lfs/commands.handlePanic(0x1b54a0, 0xc0823ae1a0, 0x0, 0x0)
C:/Users/techn/go/src/github.com/github/git-lfs/commands/commands.go:134
+0x55
github.com/github/git-lfs/commands.LoggedError(0x1b54a0, 0xc0823ae1a0, 0xa25980,
0x21, 0xc082029c88, 0x2, 0x2)
C:/Users/techn/go/src/github.com/github/git-lfs/commands/commands.go:84
+0x89
github.com/github/git-lfs/commands.smudgeCommand(0xc52680, 0xc0820f81e0, 0x1, 0x
2)
C:/Users/techn/go/src/github.com/github/git-lfs/commands/command_smudge.
go:79 +0xdd2
github.com/github/git-lfs/vendor/_nuts/github.com/spf13/cobra.(*Command).execute
(0xc52680, 0xc0820f8040, 0x2, 0x2, 0x0, 0x0)
C:/Users/techn/go/src/github.com/github/git-lfs/vendor/_nuts/github.com/
spf13/cobra/command.go:477 +0x3fb
github.com/github/git-lfs/vendor/_nuts/github.com/spf13/cobra.(*Command).Execute
(0xc536c0, 0x0, 0x0)
C:/Users/techn/go/src/github.com/github/git-lfs/vendor/_nuts/github.com/
spf13/cobra/command.go:551 +0x593
github.com/github/git-lfs/commands.Run()
C:/Users/techn/go/src/github.com/github/git-lfs/commands/commands.go:99
+0x2a
main.main()
C:/Users/techn/go/src/github.com/github/git-lfs/git-lfs.go:34 +0x135
ENV:
LocalWorkingDir=C:\Users\Brian\Source\Repos\DemoGitLfs
LocalGitDir=C:\Users\Brian\Source\Repos\DemoGitLfs\.git
LocalGitStorageDir=C:\Users\Brian\Source\Repos\DemoGitLfs\.git
LocalMediaDir=C:\Users\Brian\Source\Repos\DemoGitLfs\.git\lfs\objects
LocalReferenceDir=
TempDir=C:\Users\Brian\Source\Repos\DemoGitLfs\.git\lfs\tmp
ConcurrentTransfers=1
BatchTransfer=true
GIT_DIR=.git
GIT_LFS_PATH=C:\Program Files\Git LFS
GIT_PREFIX=
当我尝试使用git.exe进行推送并在第一次使用VS2015U2后工作时,会出现这种情况。但是当我尝试使用git.exe或VS2015U2重新克隆我的回购(在结帐时失败)时,我收到此错误。顺便说一句,VS在这种情况下完全崩溃。我尝试使用VSTS进行相同的操作,并且没有发生错误(使用git.exe,GitExtensions或VS2015U2)。因此,如何提供凭据似乎是一个问题,但如何解决它?
回购步骤:
我试过"克隆-n"为了避免立即结账,我执行" git lfs install"和" git checkout master",发生了同样的异常: 您的用户名必须是DOMAIN \ user格式。目前是brian%!(EXTRA st 环=字符串)
答案 0 :(得分:3)
Git Credential Manager for Windows帮助我实现目标。
只需使用GCMW并在第一个凭据提示符下(凭据存储在Windows凭据管理器中):
它有效。
注意:使用VS2015U2克隆不起作用,U3中的计划是修复。更多信息:https://connect.microsoft.com/VisualStudio/feedback/details/2657886/cant-use-git-lfs-with-tfs-2015-update-2-onpremise
答案 1 :(得分:0)
根据错误异常,您的TFS服务器正在使用" NTLM"用于身份验证使用此身份验证,您必须输入用户名:{DOMAIN} {user}和密码:{pass}。因此,请将您的git凭据更新为此格式,然后重试。请查看此链接了解详情:NTLM Authentication With Git-Lfs。
如果LFS服务器返回" Www-Authenticate:NTLM"标题,我们会 将lfs。{endpoint} .access设置为ntlm并重新提交http请求。 后续请求将通过ntlm auth流程。
我们会将NTLM凭证存储在凭证帮助程序中。当用户 系统会提示他们必须使用他们的凭据 用户名:{DOMAIN} {user}和密码:{pass}
ntlm protocl将由隐藏了的ntlm.go类处理 实施InitHandshake,Authenticate和Challenge。这个 允许miminal更改现有的client.go类。