我将TFS构建定义配置为按分支名称签出:
但是,当TFS执行结帐时,它会显示:
Starting fetch...
Checking out 1b9d412cbab03323852e9d5d1023da51576e5a92 to D:\Builds\NC_2\14\s
Checked out branch refs/heads/cut_version for repository myapp at commit 1b9d412cbab03323852e9d5d1023da51576e5a92
因此,当TFS发出下一个命令git push
时,git拒绝推送,因为我们不在分支上:
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use
git push origin HEAD:<name-of-remote-branch>
有没有办法让TFS通过分支名称而不是sha?
签出答案 0 :(得分:0)
它无法执行此操作,这是一种服务器行为。
VSTS服务告诉代理检查哪个提交,甚至是你 以分支名称提供。由于VSTS需要计算之间的变化 构建,VSTS将查询您的git存储库以获取提交哈希 你想要建立的参考。代理只是遵循服务器告诉它 要做。
在作业消息代理中获取
"build.sourceVersion": "0d3d21a150cea97f20863fcff104d03bfec50339",
"build.sourceBranch": "refs/heads/master",
"build.sourceBranchName": "master",
这些信息由服务器提供。
更多详情请参阅GitHub中的类似问题:How do I Get Sources with a branch name instead of via sha?