gl-gh-sync
Solid在 GitLab(内部)和 GitHub(开源)之间双向同步代码。 自动检测哪边有新提交,fast-forward 场景直接推送,分叉场景走 PR/MR 流程。
Code & Development 2,168 stars
213 forks Updated today NOASSERTION
Install
Quality Score: 86/100
Stars 20%
Recency 20%
Frontmatter 20%
Documentation 15%
Issue Health 10%
License 10%
Description 5%
Skill Content
# GL-GH-Sync —— GitLab / GitHub 双仓库同步流程
将 GitLab(origin)和 GitHub(github)的 main 分支保持同步。
**核心策略:**
- **一方领先(fast-forward)**→ 直接 `git push`,零额外 commit
- **两边分叉**→ 走 PR/MR 流程,需人工决策
## 使用方式
```
/gl-gh-sync # 自动检测方向并同步
/gl-gh-sync --status # 仅查看两边差异,不执行同步
```
## 同步流程
### 第一步:获取最新状态
```bash
git fetch origin main
git fetch github main
# 查看两边差异
git log --oneline origin/main..github/main # GitHub 有但 GitLab 没有
git log --oneline github/main..origin/main # GitLab 有但 GitHub 没有
```
### 第二步:判断同步方向
```bash
GITLAB_AHEAD=$(git rev-list --count github/main..origin/main)
GITHUB_AHEAD=$(git rev-list --count origin/main..github/main)
echo "GitLab 领先 GitHub: $GITLAB_AHEAD 个提交"
echo "GitHub 领先 GitLab: $GITHUB_AHEAD 个提交"
```
根据结果选择策略:
- **两边相同**(均为 0)→ 已同步,无需操作
- **仅 GitLab 领先**→ 直接推送到 GitHub
- **仅 GitHub 领先**→ 直接推送到 GitLab
- **两边都有新提交(分叉)**→ 需人工决策,询问用户
### 第三步-A:GitLab → GitHub(直接推送)
一方严格领先时,直接推送即可保持 commit hash 完全一致,无额外 merge commit。
```bash
# 直接将 GitLab main 推送到 GitHub main(fast-forward)
git push github origin/main:main
```
### 第三步-B:GitHub → GitLab(直接推送)
```bash
# 直接将 GitHub main 推送到 GitLab main(fast-forward)
git push origin github/main:main
```
> **注意:** 如果 GitLab main 有 protected branch 规则阻止直接推送,
> 则回退到 MR 流程(见"分叉处理"章节),但需注意 MR 合并产生的
> merge commit 需要再同步回 GitHub。
### 第四步:验证同步结果
```bash
git fetch origin main
git fetch github main
DIFF=$(git rev-list origin/main...github/main --count)
if [ "$DIFF" -eq 0 ]; then
echo "✅ 同步成功:两边 main 分支完全一致"
git log --onel...
Details
- Author
- AgentsMesh
- Repository
- AgentsMesh/AgentsMesh
- Created
- 3 months ago
- Last Updated
- today
- Language
- Go
- License
- NOASSERTION
Integrates with
Similar Skills
Semantically similar based on skill content — not just same category
Code & Development Solid
gh-merge
将当前分支合并到 GitHub 目标分支(通常是 main)。 自动处理代码提交、创建 PR、监控 CI Checks、处理错误直到合并成功。
2,168 Updated today
AgentsMesh Code & Development Listed
github-safe-publish
将本地 Git 项目安全地发布到 GitHub 公开仓库。包含两层脱敏扫描 (确定性规则 + AI 语义)、自动修复、备份回滚、仓库创建、SEO 优化。 Use when: "push to github", "publish to github", "开源", "推送到 GitHub", "create github repo", "发布到 github"。
0 Updated 4 days ago
zwyin AI & Automation Listed
sync-research-code
在 code/ 下首次 clone 或日常 pull 研发仓库,并把同步信息写入「说明文档.md」进度记录
1 Updated 3 days ago
ayouaiyouwei-arch Code & Development Solid
merge
将当前分���合并到目标分支(通常是 main)。 自动处理代码提交、创建 MR、监控 Pipeline、处理错误直到合并成功。
2,168 Updated today
AgentsMesh AI & Automation Listed
git-workflow
【Git工作流】一键完成 Git 工作流:分支→暂存→commit→push→PR。 触发时机:用户说"帮我提PR"、"提交代码"、"git flow"。 智能判断 git 状态,自动执行需要的步骤。
0 Updated 2 days ago
afine907