如何查看Azure DevOps中Git仓库的常规代码更新并实现GitHub同步?
查看Azure DevOps对应Git仓库的代码更新
- 网页端查看:进入目标Azure DevOps项目,在左侧导航栏选择 Repos > Commits,可按分支筛选查看所有提交记录,包含提交人、提交时间、变更文件和代码差异;如需对比分支差异,可进入 Repos > Branches,选中目标分支后选择要对比的基线分支即可。
- 本地命令行查看:先克隆Azure DevOps对应仓库到本地,执行
git log --all --oneline可查看所有分支的简略提交记录,添加--stat参数可查看每次提交的文件变更统计。
实现GitHub推送后自动同步到Azure DevOps
前置准备
首先生成Azure DevOps的个人访问令牌(PAT):
进入Azure DevOps右上角用户设置 > 个人访问令牌,新建令牌,权限勾选 Code(读写),按需设置有效期后生成,复制生成的令牌值(仅显示一次,请妥善保存)。
方案1:通过GitHub Actions实现实时同步(推荐)
该方案在GitHub收到代码推送时立即触发同步,延迟最低
- 打开GitHub对应仓库,进入 Settings > Secrets and variables > Actions,点击「New repository secret」,名称填
AZURE_DEVOPS_PAT,值填刚才生成的Azure DevOps PAT,保存。 - 在GitHub仓库的
.github/workflows目录下新建名为sync-to-azure.yml的配置文件,内容如下:
name: Sync to Azure DevOps on: push: branches: ['*'] # 可替换为指定分支,比如['main', 'dev'] jobs: sync: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # 拉取全量提交记录 - name: 推送代码到Azure DevOps run: | git remote add azure https://<Azure DevOps用户名>:${{ secrets.AZURE_DEVOPS_PAT }}@dev.azure.com/<组织名>/<项目名>/_git/<目标仓库名> git push azure --all git push azure --tags
请将配置中的
<Azure DevOps用户名>、<组织名>、<项目名>、<目标仓库名>替换为你自己的对应信息。配置完成后,所有往GitHub仓库的推送操作都会自动同步到Azure DevOps对应仓库。
方案2:通过Azure DevOps Pipeline定时同步
如果没有权限修改GitHub仓库配置,可使用该方案
- 进入Azure DevOps目标项目,选择 Pipelines > New pipeline,代码源选择GitHub,完成授权后选中要同步的GitHub仓库。
- Pipeline的YAML配置内容如下:
trigger: none # 关闭Azure端的自动触发 schedules: - cron: "*/15 * * * *" # 每15分钟同步一次,可按需调整频率 branches: include: - '*' # 同步所有分支,可替换为指定分支 jobs: - job: sync_code pool: vmImage: ubuntu-latest steps: - checkout: self fetchDepth: 0 - script: | git remote add github https://github.com/<GitHub用户名>/<GitHub仓库名>.git git pull github --all git push origin --all git push origin --tags env: SYSTEM_ACCESSTOKEN: $(System.AccessToken)
临时手动同步方法
如果只是偶尔需要同步代码,可在本地Git仓库同时绑定两个远程源,推送GitHub后手动执行同步:
- 执行
git remote add azure <Azure DevOps仓库克隆地址>绑定Azure远程源 - 往GitHub推送代码后,执行
git push azure --all && git push azure --tags即可完成手动同步
内容的提问来源于stack exchange,提问作者Bharath Kashyap
相关产品推荐
相关产品推荐

