在 Jenkins 中关联 Git,通常是指让 Jenkins 从 Git 仓库拉取代码进行构建。下面按最常见、最实用的方式一步步说明(以 Freestyle 项目 和 Pipeline 为例)。
一、前置条件
1. 安装 Git 插件
Jenkins 默认已集成 Git 支持,但建议确认:
Jenkins → Manage Jenkins → Plugins → Installed
- ✅ Git Plugin
- ✅ Git Client Plugin
如未安装,去 Available plugins 搜索并安装。
2. Jenkins 服务器安装 Git
# CentOS / RHEL
yum install -y git
# Ubuntu / Debian
apt install -y git
验证:
git --version
二、全局配置 Git(推荐)
Manage Jenkins → Global Tool Configuration → Git
- Name:
Default - Path to Git executable:
git(或/usr/bin/git)
✅ 保存
三、Freestyle 项目关联 Git(最简单)
1. 新建任务
New Item → Freestyle project
2. 配置 Git 仓库
在 Source Code Management 中选择 Git
必填项:
-
Repository URL
https://github.com/yourname/yourrepo.git或
git@github.com:yourname/yourrepo.git -
Credentials
- 如果是 HTTPS:用户名 + 密码 / Token
- 如果是 SSH:添加 SSH Private Key
示例(HTTPS + Token)
- GitHub 生成 Personal Access Token
- Jenkins → Credentials → Add
- Username:GitHub 用户名
- Password:Token
3. 指定分支
*/main
或
*/master
4. 构建测试
Build Steps → Execute shell
echo "Git pull success"
git log -1
点击 Build Now ✅
四、Pipeline 方式关联 Git(推荐)
1. 新建 Pipeline 项目
2. Pipeline 脚本示例
✅ 使用 SCM(最常见)
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
git branch: 'main',
url: 'https://github.com/yourname/yourrepo.git',
credentialsId: 'git-credentials-id'
}
}
}
}
3. 使用 SSH 拉取代码
git branch: 'main',
url: 'git@github.com:yourname/yourrepo.git',
credentialsId: 'ssh-key-id'
五、Credentials 配置(重点)
添加凭证
Manage Jenkins → Credentials → System → Global credentials
| 类型 | 场景 |
|---|---|
| Username + Password | HTTPS Git |
| SSH Private Key | Git SSH |
| Personal Access Token | GitHub / GitLab |
六、Webhook 自动触发(Git → Jenkins)
1. Jenkins 安装插件
- ✅ GitLab Plugin / GitHub Integration Plugin
2. 配置触发器
Build Triggers →
- ✅ GitHub hook trigger for GITScm polling
3. Git 仓库配置 Webhook
http://jenkins地址/github-webhook/
七、常见问题
❌ Jenkins 拉不到代码
- Git 未安装
- 凭证错误
- 分支名错误
- 网络 / 防火墙问题
❌ Permission denied (publickey)
- Jenkins 用户没有 SSH key
- 未将公钥加入 Git 仓库
八、总结一句话
Jenkins 关联 Git = 安装 Git + 配置仓库地址 + 配置凭证 +(可选)Webhook 自动触发
如果你愿意,我可以:
- ✅ 给你 GitHub / GitLab / Gitee 的具体配置示例
- ✅ 帮你排查 拉取失败日志
- ✅ 写一个 完整 Jenkinsfile 示例
你现在用的是 Freestyle 还是 Pipeline?