git remote
1. 查看远程仓库信息
Section titled “1. 查看远程仓库信息”# 查看所有远程仓库别名git remote
# 查看详细信息(URL和权限)git remote -v# 输出:# origin https://github.com/user/repo.git (fetch)# origin https://github.com/user/repo.git (push)
# 查看某个远程仓库的详细信息git remote show origin# 显示:URL、跟踪分支、本地分支状态等详细状态检查
Section titled “详细状态检查”# 查看所有分支的跟踪关系git branch -vv# 输出:# * main 123abcd [origin/main] 最新提交# feature 456defg [origin/feature] 功能开发
# 查看远程分支列表git branch -r# 输出:# origin/main# origin/feature# origin/dev
# 查看所有分支(本地+远程)git branch -a2. 添加/删除远程仓库
Section titled “2. 添加/删除远程仓库”添加远程仓库
Section titled “添加远程仓库”# 添加主要远程仓库(通常命名为origin)git remote add origin https://github.com/user/repo.git
# 添加多个远程仓库(用于多平台同步)git remote add github https://github.com/user/repo.gitgit remote add gitlab https://gitlab.com/user/repo.gitgit remote add gitee https://gitee.com/user/repo.git删除远程仓库
Section titled “删除远程仓库”# 删除远程仓库别名git remote remove origin
# 或者使用rm(效果相同)git remote rm origin修改远程仓库
Section titled “修改远程仓库”# 修改远程仓库URLgit remote set-url origin https://new-url.com/repo.git
# 修改推送URL(保持拉取URL不变)git remote set-url --push origin https://new-push-url.com/repo.git
# 重命名远程仓库别名git remote rename origin upstream3. 拉取远程更新(Pull/Fetch)
Section titled “3. 拉取远程更新(Pull/Fetch)”git fetch - 安全获取
Section titled “git fetch - 安全获取”# 获取所有远程仓库的更新(不自动合并)git fetch
# 获取特定远程仓库的更新git fetch origin
# 获取特定分支的更新git fetch origin main
# 获取所有远程分支和标签git fetch --all
# 获取并清理已删除的远程分支跟踪git fetch --prune# 等同于:git fetch -pgit pull - 获取并合并
Section titled “git pull - 获取并合并”# 拉取当前分支跟踪的远程分支并合并git pull
# 拉取指定远程分支到当前分支git pull origin main
# 使用rebase方式合并(保持线性历史)git pull --rebase
# 拉取特定标签git pull origin v1.0.0拉取策略对比
Section titled “拉取策略对比”# 方法1:先fetch查看,再决定是否合并(推荐)git fetch origingit log origin/main # 查看远程更新git merge origin/main # 确认后合并
# 方法2:直接pull(自动合并)git pull origin main
# 方法3:rebase方式(适合个人分支)git pull --rebase origin main4. 推送到远程仓库(Push)
Section titled “4. 推送到远程仓库(Push)”# 推送到跟踪的远程分支git push
# 推送到指定远程分支git push origin main
# 推送本地分支到远程不同名称分支git push origin local-branch:remote-branch
# 强制推送(谨慎使用!)git push --force origin main# 或使用更安全的强制推送git push --force-with-lease origin main分支管理推送
Section titled “分支管理推送”# 推送新分支并建立跟踪关系git push -u origin new-branch# 等同于:git push --set-upstream origin new-branch
# 推送所有分支git push --all origin
# 推送标签git push origin v1.0.0git push --tags # 推送所有标签
# 删除远程分支git push origin --delete feature/old
# 删除远程标签git push origin --delete tag v0.1.05. 远程分支管理
Section titled “5. 远程分支管理”跟踪分支操作
Section titled “跟踪分支操作”# 查看所有跟踪关系git branch -vv
# 设置本地分支跟踪远程分支git branch --set-upstream-to=origin/main main# 或推送时设置:git push -u origin main
# 取消跟踪关系git branch --unset-upstream main
# 创建新分支并跟踪远程分支git checkout -b new-branch origin/main分支同步策略
Section titled “分支同步策略”# 场景:同步远程main分支到本地feature分支git fetch origingit checkout featuregit merge origin/main
# 使用rebase保持干净历史git checkout featuregit rebase origin/main
# 重置本地分支到远程状态(丢弃本地提交)git fetch origingit reset --hard origin/main6. 高级远程操作
Section titled “6. 高级远程操作”多远程仓库管理
Section titled “多远程仓库管理”# 添加多个远程仓库git remote add upstream https://github.com/original/repo.git
# 从不同远程拉取git fetch upstreamgit merge upstream/main
# 推送到不同远程git push github maingit push gitlab main
# 查看所有远程git remote -v子模块相关(Submodule)
Section titled “子模块相关(Submodule)”# 克隆包含子模块的仓库git clone --recurse-submodules https://github.com/user/repo.git
# 已有仓库初始化子模块git submodule update --init --recursive
# 更新子模块到最新git submodule update --remote# 克隆为镜像(用于备份)git clone --mirror https://github.com/user/repo.git
# 推送镜像更新git push --mirror7. 远程仓库问题排查
Section titled “7. 远程仓库问题排查”# 测试SSH连接ssh -T git@github.com
# 测试远程仓库访问git ls-remote origin
# 查看远程引用git ls-remote --heads origin常见问题解决
Section titled “常见问题解决”# 错误:远程分支已删除,本地仍显示git fetch --prune
# 错误:推送冲突(其他人已推送)git fetch origingit rebase origin/maingit push origin main
# 错误:非快进推送git pull --rebase origin maingit push origin main
# 恢复误删的远程分支git fetch origingit checkout -b recovered-branch origin/deleted-branchgit push origin recovered-branch8. 实用工作流示例
Section titled “8. 实用工作流示例”标准协作流程
Section titled “标准协作流程”# 1. 开始新功能前同步git checkout maingit pull origin main
# 2. 创建功能分支git checkout -b feature/new-feature
# 3. 开发并提交git add .git commit -m "feat: 新功能"
# 4. 推送到远程git push -u origin feature/new-feature
# 5. 创建Pull Request后,继续开发...git add .git commit -m "fix: 修复问题"git push origin feature/new-feature
# 6. PR合并后清理git checkout maingit pull origin maingit branch -d feature/new-featuregit push origin --delete feature/new-feature紧急修复流程
Section titled “紧急修复流程”# 1. 基于最新main创建热修复分支git fetch origingit checkout -b hotfix/urgent origin/main
# 2. 修复并测试git add .git commit -m "fix: 紧急修复"
# 3. 推送到远程git push -u origin hotfix/urgent
# 4. 快速合并到maingit checkout maingit merge hotfix/urgentgit push origin main分支维护流程
Section titled “分支维护流程”# 定期清理过期分支git fetch --prune
# 查看可删除的已合并分支git branch --merged main | grep -v "main"
# 批量删除已合并分支git branch --merged main | grep -v "main" | xargs git branch -d
# 同步所有远程分支信息git remote update origin --prune9. 配置优化
Section titled “9. 配置优化”Git配置相关
Section titled “Git配置相关”# 设置默认推送行为git config --global push.default simple # 推荐# 或git config --global push.default current
# 设置pull的默认行为git config --global pull.rebase false # merge(默认)git config --global pull.rebase true # rebasegit config --global pull.ff only # 仅快进合并
# 设置凭证缓存git config --global credential.helper cache| 操作类型 | 常用命令 | 用途 |
|---|---|---|
| 查看 | git remote -v, git branch -vv | 查看远程状态 |
| 拉取 | git fetch, git pull | 获取远程更新 |
| 推送 | git push, git push -u | 推送本地更改 |
| 分支 | git push --delete, git branch -d | 分支管理 |
| 调试 | git remote show, git ls-remote | 问题排查 |
git status # 查看状态git fetch origin # 获取更新git pull origin main # 同步主线# ...开发...git add . # 暂存更改git commit -m "msg" # 提交更改git push origin branch-name # 推送更改