如何使TFS通过分支名称而不是sha执行git checkout?

时间:2017-06-15 17:29:59

标签: git tfs

我将TFS构建定义配置为按分支名称签出:

tfs git config

但是,当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?

签出

1 个答案:

答案 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?

相关问题