我遇到一个奇怪的问题,文件同步到我的远程仓库(TFS 2015 Git到VSTS GIT)。
我的报告1是包含“ Hello”的“ sample.txt”。 我在cmd中使用以下命令:
git clone
git remote add vsts PAT
git checkout master
git push vsts master
当我将文件从Hello修改为Hello 1->时,它没有问题,执行相同的CMD,并且可以在远程存储库中看到所有更改。
现在,我在Powershell中调用了相同的CMD
if ( $(git remote) -contains 'vsts' )
{
git remote rm vsts 2>&1|Write-Host
echo 'VSTS Account removed'
}
git remote add vsts https://Personal%20Access%20Token:TOKEN@my.visualstudio.com/teamproject/_git/repo 2>&1|Write-Host
git checkout ${env:BUILD_SOURCEBRANCHNAME} 2>&1|Write-Host
git push vsts ${env:BUILD_SOURCEBRANCHNAME} -f 2>&1|Write-Host
构建成功,但不会同步我的更改。
我经常会看到错误:
Previous HEAD position was eb5c087... Updated test.ps1
Your branch is behind 'origin/master' by 9 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Switched to branch 'master'
有时,相同的CMD来自cmd,而不适用于Powershell。
对此有任何帮助吗?
答案 0 :(得分:3)
此问题是由于 TFS2015在获取源代码步骤期间没有自动使用master
更新origin/master
分支引起的。因此,您需要通过添加命令master
用origin/master
分支更新本地git reset --hard origin/master
分支。
更新后的powershell脚本如下:
if ( $(git remote) -contains 'vsts' )
{
git remote rm vsts 2>&1|Write-Host
echo 'VSTS Account removed'
}
git remote add vsts https://Personal%20Access%20Token:TOKEN@my.visualstudio.com/teamproject/_git/repo 2>&1|Write-Host
git checkout ${env:BUILD_SOURCEBRANCHNAME} 2>&1|Write-Host
git reset --hard origin/master 2>&1|Write-Host
echo 'update local branch with remote successfully'
git push vsts ${env:BUILD_SOURCEBRANCHNAME} -f 2>&1|Write-Host