运行我们的Jenkins服务器的Windows 7机器在使用git时遇到了一些麻烦。
我们的代码托管在GitHub上,构建版每晚运行。这项工作的第一件事是从GitHub检出分支X然后运行构建脚本。不幸的是,我们注意到版本似乎已经卡住了。'每天都会出现同样的构建。当我检查服务器的git历史时,它已经落后了一周!运行
git fetch origin
没有错误,但是据说origin / MyBranch是从上周开始的,当时我们已经对该分支进行了数十次提交。从任何其他计算机甚至从服务器上的其他文件夹进行提取工作正常并获得最新更改。
我尝试从服务器使用不同的ssh密钥/登录进行提取,并且repo fetchin的特定副本已被破坏。奇怪的是,如果我们从pull请求或OTHER分支触发构建,它们就能完美地工作。它只是这一个特定的分支。
到目前为止,我们已经找到的唯一解决方案是删除git工作区并从头开始。
git版本是1.8.5.2.msysgit.0,它通常由Jenkins运行......我想知道Jenkins是否正在对存储库做些什么来破坏或锁定它。
编辑:
输出 git remote -vv
origin git@github.com:Org/Project.git (fetch)
origin git@github.com:Org/Project.git (push)
EDIT2:
受到我试过的帖子链接here的启发
git merge FETCH_HEAD
这很有效!但是,如果我尝试
git merge origin/branch
这仍然停留在旧提交中。
Jenkins输出看起来像这样
$ git.exe rev-parse --is-inside-work-tree
从远程Git存储库中获取更改
$ git.exe config remote.origin.url git@github.com:Org/Project.git
从git@github.com获取上游变更:Org / Project.git
$ git.exe --version
$ git.exe fetch --tags --progress git@github.com:Org/Project.git + refs / pull / :refs / remotes / origin / pr /
$ git.exe rev-parse" origin / Branch ^ {commit}"
查看修订版44c0173b4a4852644a017cff7ecc0441eb209092(origin / Branch)
$ git.exe config core.sparsecheckout
$ git.exe checkout -f 44c0173b4a4852644a017cff7ecc0441eb209092
$ git.exe rev-list 44c0173b4a4852644a017cff7ecc0441eb209092
44c0173b4a4852644a017cff7ecc0441eb209092是旧提交的SHA。