2017-06-15 16 views
0

我配置了一個TFS生成定義的分支名退房:如何讓TFS通過分支名稱而不是sha執行git checkout?

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,混帳拒絕向縱深推進,因爲我們不是一個分支:

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

誰在執行'git的push',TFS? – CodeCaster

+0

@CodeCaster - 是的。 –

+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?