一些“GIT 大师”可以在这里简单看一眼吗?
我们使用 jenkins CI 进行简单部署。大多数作业都使用“GIT 插件”,但这存在一些问题。即使我们将插件设置为跟踪“master”分支。在某个时候,我们最终会在构建目录中出现“分离状态”。
像这样。
root@jinx [...]/workspace/build # git branch -a
* (detached from 12dbf9b)
remotes/origin/dev
remotes/origin/master
构建过程没有报错,这是GIT插件的日志。
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url [email protected]:q3i/our-repo.git # timeout=10
Fetching upstream changes from [email protected]:q3i/our-repo.git
> git --version # timeout=10
> git fetch --tags --progress [email protected]:q3i/our-repo.git +refs/heads/master:refs/remotes/origin/master
> git rev-parse origin/master^{commit} # timeout=10
Checking out Revision 12dbf9b8eb8fd71580f874ae963162f72221e577 (origin/master)
> git config core.sparsecheckout # timeout=10
> git checkout -f 12dbf9b8eb8fd71580f874ae963162f72221e577
> git rev-list 58f1f1ae97628a0b5f2d5e3090a24416c7952f0e # timeout=10
我看到分离的提交 12dbf9b 实际上是 HEAD。这是预期状态吗?从 jenkins GIT 插件的角度来看,这样做有什么好处?
感谢您提供的一些新的 GIT 知识:-)
答案1
很难说在没有看到你的 Jenkins 配置的情况下这是否是预期的,但这实际上意味着 Git 直接签出了特定的提交,而不是通过分支名称,所以没有什么固有地这种情况是好是坏。根据您正在运行的插件及其配置方式,这可能是正常的,也可能不是正常的。