You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新Git镜像时保留GitHub端新增的.github目录

解决BitBucket到GitHub同步时保留.github目录的问题

核心思路

放弃使用会完全覆盖仓库状态的git push --mirror命令,改用选择性合并+保留指定目录的方式,把BitBucket的代码变更同步到GitHub,同时保住GitHub端独有的.github流水线目录。

具体操作步骤

1. 本地配置双远程仓库

先克隆你的GitHub仓库,再把BitBucket仓库添加为远程源:

git clone git@github.com:<你的GitHub用户名>/<仓库名>.git
cd <仓库名>
git remote add bitbucket git@bitbucket.org:<你的BitBucket用户名>/<仓库名>.git

2. 拉取BitBucket的所有变更

把BitBucket仓库的所有分支和提交历史拉到本地:

git fetch bitbucket

3. 合并分支并保留.github目录(以main分支为例)

切换到GitHub的main分支,合并BitBucket的main分支变更,遇到冲突时强制保留本地.github目录的内容:

git checkout main
git merge bitbucket/main --strategy-option theirs=.github/**

这里的--strategy-option theirs=.github/**是核心参数,专门指定在.github目录相关的冲突中,用本地(GitHub端)的内容覆盖BitBucket的内容,避免流水线配置被删掉。

4. 推送合并后的内容到GitHub

把合并好的分支推回GitHub仓库:

git push origin main

5. 自动化定期同步(可选)

如果需要自动同步,在GitHub仓库的.github/workflows目录下新建sync-bitbucket.yml,内容如下:

name: 同步BitBucket代码到GitHub
on:
  schedule:
    - cron: '0 */6 * * *' # 每6小时自动同步一次,可按需调整
  workflow_dispatch: # 支持手动触发同步

jobs:
  sync-code:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取GitHub仓库代码
        uses: actions/checkout@v4
        with:
          fetch-depth: 0 # 拉取完整提交历史

      - name: 添加BitBucket远程源
        run: git remote add bitbucket https://x-token-auth:${{ secrets.BITBUCKET_TOKEN }}@bitbucket.org/<你的BitBucket用户名>/<仓库名>.git

      - name: 拉取BitBucket最新变更
        run: git fetch bitbucket

      - name: 合并变更并保留.github目录
        run: |
          git checkout main
          # 合并时自动处理冲突,保留.github内容,合并失败也不中断流程
          git merge bitbucket/main --strategy-option theirs=.github/** || true
          git push origin main

记得在GitHub仓库的「Settings → Secrets and variables → Actions」里添加BITBUCKET_TOKEN,用于授权访问BitBucket仓库。

关键注意事项

  • 绝对不要用git push --mirror,它会完全复刻BitBucket的仓库状态,直接删掉GitHub端所有独有的文件和目录。
  • 如果需要同步多个分支,重复步骤3-4即可,或者在自动化工作流里添加分支循环逻辑。
  • 合并前可以先执行git diff main bitbucket/main查看变更内容,确保没有意外冲突。

内容的提问来源于stack exchange,提问作者Max Schmidt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 19:10:34