Git项目多远程仓库同步方法

Git项目多远程仓库同步方法 同一个 Git 项目可以同时推送到多个远程仓库(如 Gogs 和 Gitee)。 1. 添加 Gitee 作为新的远程仓库 git remote add gitee <Gitee仓库的URL> 2. 验证远程仓库设置 git remote -v 3. 推送到 Gitee git push gitee master # 推送 master 分支 # 或推送所有分支: git push --all gitee 4.(可选)设置默认同时推送到两个仓库 修改 .git/config 文件,在 [remote “origin”] 部分添加多个 push URL: [remote "origin"] url = https://gogs.example.com/yourname/yourrepo.git fetch = +refs/heads/*:refs/remotes/origin/* pushurl = https://gogs.example.com/yourname/yourrepo.git pushurl = https://gitee.com/yourname/yourrepo.git 这样 git push 会同时推送到两个仓库。 5. (可选)从 Gitee 拉取更新 git pull gitee master 删除指定的远程仓库(如 gitee) git remote remove gitee 注意事项: 两个仓库的分支结构最好保持一致 如果两边都有新的提交,可能需要先合并再推送 大型项目首次推送到 Gitee 可能需要较长时间 这种方法可以让你保持代码在多个远程仓库同步,适用于需要备份或多平台协作的场景。

2025年05月18日 · 1 min · Leanku

Git项目多远程仓库同步方法

Git项目多远程仓库同步方法 同一个 Git 项目可以同时推送到多个远程仓库(如 Gogs 和 Gitee)。 1. 添加 Gitee 作为新的远程仓库 git remote add gitee <Gitee仓库的URL> 2. 验证远程仓库设置 git remote -v 3. 推送到 Gitee git push gitee master # 推送 master 分支 # 或推送所有分支: git push --all gitee 4.(可选)设置默认同时推送到两个仓库 修改 .git/config 文件,在 [remote “origin”] 部分添加多个 push URL: [remote "origin"] url = https://gogs.example.com/yourname/yourrepo.git fetch = +refs/heads/*:refs/remotes/origin/* pushurl = https://gogs.example.com/yourname/yourrepo.git pushurl = https://gitee.com/yourname/yourrepo.git 这样 git push 会同时推送到两个仓库。 5. (可选)从 Gitee 拉取更新 git pull gitee master 删除指定的远程仓库(如 gitee) git remote remove gitee 注意事项: 两个仓库的分支结构最好保持一致 如果两边都有新的提交,可能需要先合并再推送 大型项目首次推送到 Gitee 可能需要较长时间 这种方法可以让你保持代码在多个远程仓库同步,适用于需要备份或多平台协作的场景。

2025年05月18日 · 1 min · Leanku

Git创建不继承内容的新分支

git filter-branch 清理误提交大文件 问题概述: 在当前项目中放有大文件(超过100M)package/grpc.tar.gz,进行了git add,commit 并push, push过程中出现了错误如: remote: error: File package/grpc.tar.gz is 973.06 MB; this exceeds GitHub's file size limit of 100.00 MB 这个问题会导致后面的提交以及push出错 git filter-branch 用 git filter-branch 删除历史中所有的 grpc.tar.gz git filter-branch --force --index-filter \ "git rm --cached --ignore-unmatch package/grpc.tar.gz" \ --prune-empty -- lite-AlmaLinux 💡 说明:这个命令会清理当前分支里所有 commit 中的 package/grpc.tar.gz 清理垃圾对象并压缩仓库大小 git reflog expire --expire=now --all git gc --prune=now --aggressive 然后重新 push(第一次 push 分支) git push --set-upstream origin lite-AlmaLinux 防止此类问题 优化 ....

2025年05月10日 · 1 min · Leanku

GitHub 项目版本管理规范

GitHub 项目版本管理规范 Git 标签(Tags)和 发布(Releases) 在 GitHub 项目中定义和管理版本,通常结合 Git 标签(Tags)、发布(Releases) 和 语义化版本(SemVer) 来实现。以下是具体方法和最佳实践: 1. 使用 Git 标签(Tags)定义版本 (1)创建版本标签 # 创建轻量标签 git tag v1.0.0 # 创建附注标签(推荐,包含提交信息和签名) git tag -a v1.0.0 -m "Release version 1.0.0" # 推送标签到 GitHub git push origin v1.0.0 (2)语义化版本(SemVer) 版本号格式:MAJOR.MINOR.PATCH MAJOR:不兼容的 API 变更 MINOR:向后兼容的功能新增 PATCH:向后兼容的问题修复 示例: v1.0.0:初始稳定版本 v1.2.3:第 1 个大版本,第 2 次功能更新,第 3 次补丁 2. 通过 GitHub Releases 管理版本 (1)手动创建 Release 进入 GitHub 仓库 → Releases → Draft a new release...

2025年04月11日 · 2 min · Leanku

GitHub 项目版本管理规范

GitHub 项目版本管理规范 Git 标签(Tags)和 发布(Releases) 在 GitHub 项目中定义和管理版本,通常结合 Git 标签(Tags)、发布(Releases) 和 语义化版本(SemVer) 来实现。以下是具体方法和最佳实践: 1. 使用 Git 标签(Tags)定义版本 (1)创建版本标签 # 创建轻量标签 git tag v1.0.0 # 创建附注标签(推荐,包含提交信息和签名) git tag -a v1.0.0 -m "Release version 1.0.0" # 推送标签到 GitHub git push origin v1.0.0 (2)语义化版本(SemVer) 版本号格式:MAJOR.MINOR.PATCH MAJOR:不兼容的 API 变更 MINOR:向后兼容的功能新增 PATCH:向后兼容的问题修复 示例: v1.0.0:初始稳定版本 v1.2.3:第 1 个大版本,第 2 次功能更新,第 3 次补丁 2. 通过 GitHub Releases 管理版本 (1)手动创建 Release 进入 GitHub 仓库 → Releases → Draft a new release...

2025年04月11日 · 2 min · Leanku

Git 高级实战:Cherry-pick、Worktree、Bisect 与工程化实践

Git 的基础操作解决的是「如何提交代码」,分支与 Rebase 解决的是「如何协作开发」,撤销与恢复解决的是「操作出错以后怎么办」。 但在实际项目中,还会遇到一些更复杂的问题: 一个 Bug 修复已经提交到 main,如何同步到旧版本分支? 同一个项目需要同时开发两个功能,频繁切换分支非常麻烦怎么办? 线上 Bug 已经存在很久,如何从几百个 Commit 中快速找到引入问题的那一次提交? 如何建立合理的 Tag 和版本发布流程? 如何让 Git 在提交代码时自动执行检查? 团队应该采用什么样的 Commit、Branch 和发布规范? 这些问题对应的就是 Git 的高级能力。 本文重点介绍 cherry-pick、worktree、bisect、Tag、Hooks,以及一套适合 Web 项目的 Git 工程化实践。 Cherry-pick:只把指定 Commit 带过来 Merge 是以分支为单位整合代码,而 Cherry-pick 是以 Commit 为单位应用变更。 Git 官方文档对 cherry-pick 的定义非常直接:将一个或多个已有 Commit 引入的修改应用到当前分支,并生成新的 Commit。 例如现在有两个分支: main A --- B --- C feature/payment A --- B --- C --- D --- E --- F 其中: D = 支付功能 E = 支付页面 F = 支付测试 假设现在 main 只需要 D 的修改。...

2023年04月19日 · 7 min · Leanku

Git 实战:分支、Merge、Rebase 与冲突解决

Git 真正难的地方并不是记住几个命令,而是理解「分支为什么存在」「Merge 和 Rebase 到底有什么区别」以及「出现冲突以后应该怎么处理」。 日常开发中,一个项目通常同时存在多个功能开发、Bug 修复和版本发布任务。如果所有人都直接修改同一个分支,很快就会出现代码互相覆盖、提交历史混乱以及难以追踪的问题。 Git 的分支机制解决了这个问题。开发者可以从主分支创建独立分支,在自己的分支上完成开发,然后通过 Merge 或 Rebase 将代码重新整合到目标分支。 本文不从 Git 的基础命令开始,而是直接从实际开发流程理解 Git 分支、Merge、Rebase 和冲突处理。 Git 分支到底是什么 Git 中的分支本质上是指向某个 Commit 的引用。 例如项目最开始只有一条 main: A --- B --- C ↑ main 开发新功能时创建 feature/login: A --- B --- C ↑ main ↑ feature/login 继续开发后: A --- B --- C --- D --- E ↑ ↑ main feature/login 此时 main 并没有发生变化,feature/login 在自己的提交历史上继续向前发展。 Git 官方文档也强调,Git 分支非常轻量,创建分支本质上只是创建一个指向 Commit 的引用,因此 Git 鼓励开发者频繁使用分支。...

2023年04月16日 · 5 min · Leanku

Git创建不继承内容的新分支

Git创建不继承内容的新分支方法 在 Git 中,想创建一个新的分支,并且不想要当前分支的任何内容(即希望新分支是完全干净的,不包含当前分支的修改或提交),可以按照以下步骤操作: 方法 1:基于远程默认分支(如 main/master)创建新分支 如果你希望新分支是基于远程仓库的默认分支(而不是当前分支),可以这样做: ``` # 1. 确保本地没有未提交的修改(否则会提示你提交或暂存) git status # 2. 拉取远程最新代码(确保本地默认分支是最新的) git fetch origin # 3. 基于远程默认分支(如 origin/main)创建新分支 git checkout -b 新分支名 origin/main 方法 2:基于某个提交或分支创建全新分支 如果你想基于某个特定的提交(而不是当前分支)创建新分支: ``` # 1. 先切换到目标分支或提交(例如切换到 main 分支) git checkout main # 2. 拉取最新代码(可选) git pull origin main # 3. 创建并切换到新分支 git checkout -b 新分支名 方法 3:强制创建孤立分支(完全无历史) 如果你想创建一个完全独立的新分支(不继承任何历史): 在切换分支之前,确保你没有未提交的修改,否则 Git 可能会尝试携带这些修改到新分支: git status # 提交他们 git add . git commit -m "暂存当前修改" # 或者丢弃它们 git reset --hard # 强制丢弃所有未提交的修改 创建一个完全独立的新分支(不继承任何历史)...

2023年02月26日 · 1 min · Leanku

Git历史重置

Git历史重置 有时候需要克隆github的项目使用,自己进行修改需要提交到自己的代码仓库,但是会包含前仓库的大量提交历史,看起来不方便,就需要清理历史记录并重置为一个全新的提交 新项目(如git clone 的项目) # 进入项目目录 cd template-repo-master # 删除原有的.git目录(如果存在)初始化全新的Git仓库 rm -rf .git git init git add . git commit -m "Initial commit from template" git remote add origin [email protected]:your-username/your-new-repo.git git push -u origin master --force 已经将代码推送到自己的远程仓库 清理历史记录并重置为一个全新的提交 # 1. 克隆你的远程仓库(可选) git clone [email protected]:your-username/your-repo.git cd your-repo # 2.创建孤立分支(全新的历史起点) git checkout --orphan new-branch # 3. 添加所有文件到新分支 git add -A git commit -m "Initial commit (cleaned history)" #4. 删除旧的主分支 git branch -D master # 或 main # 5....

2023年02月26日 · 1 min · Leanku

Git同时配置github和gitee

Git同时配置github和gitee 想要同时使用GitHub和Gitee,但是每次输入密码就会很麻烦。为此,本文将介绍 Git 同时配置 github和 gitee 的ssh key #查看git配置 git config --global --list #没配置过的话先配置用户名和邮箱信息 git config --global user.name “username” git config --global user.email “email” #默认没有.ssh目录, ssh-keygen -t rsa -C "[email protected]" #在windows下会生成.ssh目录 [c盘/用户/用户名/.ssh] 1. 查看ssh文件 cd ~/.ssh** ls 2. 删除之前的.ssh rm -rf id_rsa id_rsa.pub 3. 生成gitee和github 的 SSH Key ssh-keygen -t rsa -C "[email protected]" -f "id_rsa_github" ssh-keygen -t rsa -C "[email protected]" -f "id_rsa_gitee" 4. 查看SSH Key cat id_rsa_github.pub** 5. 拷贝 ssh-rsa 开头的 ssh key,然后到github上添加ssh key 6....

2023年02月26日 · 1 min · Leanku