欢迎光临
我们一直在努力

Git篇(三):吃透远程协作:SSH 密钥、分支、标签全流程实战指南

前言

在团队开发中,Git 本地提交只是代码管理的基础,真正实现多人协同、代码云端存储、版本同步分发,全靠Git 远程操作。很多新手刚上手就卡在 SSH 克隆失败、推拉代码冲突、标签分支同步混乱、忽略文件配置失效等问题上。

本篇整合 Git 远程全套核心实操:从 SSH 协议密钥配置、仓库克隆与远程关联,到.gitignore忽略规则、命令别名简化操作,再到标签版本管理、多分支拉取推送、远程分支清理冲突解决,把课堂笔记里零散的命令梳理成一套可直接落地的完整工作流,不管是个人托管代码还是团队多人协作,看完就能直接上手。

一、远程仓库两种传输协议:HTTPS 与 SSH

Git 连接远程仓库分为 HTTPS、SSH 两大协议,二者核心差异在于鉴权方式:

  • HTTPS 协议 克隆地址以https://开头,每次推拉代码都需要输入账号密码 / 个人令牌,适合临时使用、不方便配置密钥的场景。
  • SSH 协议(推荐长期开发使用)依靠公钥加密、私钥登录实现免密操作,配置完成后永久不用重复输账号密码;核心限制:本地无对应 SSH 密钥,完全无法通过 SSH 地址克隆仓库。
  •  

    1 SSH 密钥完整配置流程

    密钥对由公钥和私钥配套组成,公钥可以公开分发,相当于一把公开的锁,私钥只能自己妥善保管、绝不外泄,是唯一能开锁的钥匙;远程服务器、Git 平台保存你的公钥后,会通过加密信息校验你的私钥,匹配成功就能免密码完成身份验证,既不用频繁输密码,安全性也远高于普通密码。

    1.生成 RSA 密钥对

    打开终端执行命令,邮箱替换为自己 Gitee/GitHub 注册邮箱:

    ssh-keygen -t rsa -C "你的注册邮箱"

    执行后一路回车,默认在用户目录生成 .ssh 隐藏文件夹,内部包含两个文件:

    1.id_rsa:私钥(本地保存,严禁泄露)
    2.id_rsa.pub:公钥(复制全部内容粘贴到远程仓库平台的 SSH 公钥配置页)

    2.检查本地密钥文件

    ls ~/.ssh

    查看公钥

    cat ~/.ssh/id_rsa.pub

    3.平台配置公钥

    4.本地仓库推送

    git remote add origin 远程仓库地址

    查看是否绑定成功

    git remote -v

    首次推送绑定分支

    git push -u origin master

    注意:首次推送直接git push 会报错

    5.SSH 克隆仓库

    git clone git@gitee.com:用户名/仓库名.git

    对于4  5,是两种方案

    后序进行提交,直接执行add commit push即可

    二、远程仓库基础操作:查看、拉取、推送

    1 查看已关联的远程仓库

    # 简略查看远程仓库别名(默认远程仓库别名origin)
    git remote
    # 查看远程仓库详细地址(区分HTTPS/SSH地址)
    git remote -v

    2.拉取远程代码:fetch & pull

    git fetch:仅拉取远程所有更新,**不自动合并**本地分支,适合先查看更新再手动合并
    git pull:等价于 git fetch + git merge,拉取远程代码并自动合并到本地当前分支

    3.推送本地代码到远程仓库

    基础推送语法:git push 远程别名 本地分支:远程分支

    # 本地分支与远程分支同名(master),可省略后半段远程分支名
    git push origin master

    # 完整写法,本地master推送到远程master
    git push origin master:master

    4.拉取远程分支代码

    # 完整写法
    git pull origin master:master
    # 分支同名简写
    git pull origin master

    三、.gitignore 忽略文件:过滤垃圾文件,强制保留指定文件

    项目中编译产物、日志、本地配置文件不需要提交到远程,依靠.gitignore统一管理忽略规则。

    1.基础忽略语法

    # 忽略所有.so后缀文件
    *.so
    # !代表反向规则:虽然忽略全部.so,但c.so强制纳入版本管理,不忽略
    !c.so

    2.排查文件被忽略原因

    git check-ignore -v 文件名

    执行后会输出哪一条 .gitignore 规则导致文件被忽略,快速排查配置错误。

    3.特殊场景:已经写入忽略规则,但想单独提交某个文件

    git add 文件名

    四、Git 命令别名:简化高频输入

    频繁敲长命令效率低,可自定义全局别名简化操作,配置后全系统生效。

    1.给 status 配置别名 st

    # –global 代表全局配置,不加仅当前仓库生效
    git config (–global) alias.st status
    # 使用:等价 git status
    git st

    2.删除已配置的别名

    git config (–global) –unset alias.st

    五、版本标签 Tag 管理:给发布版本打标记

    Tag 用于给某次稳定commit绑定版本号(如 v1.0、v0.9),区分正式发布版本,分为本地标签、远程标签两套操作。

    1 本地标签操作

    # 1. 给最新commit快速打轻量标签
    git tag v1.0

    # 2. 指定某次commitID打标签(历史版本标记)
    git tag v0.9 commitID

    # 3. 创建带描述的附注标签(推荐,可写版本说明)
    git tag -a v1.0 -m "1.0正式发布版本" commitID

    # 4. 查看所有本地标签
    git tag

    # 5. 查看指定标签详情
    git show v1.0

    # 6. 删除本地标签
    git tag -d v1.0

    2 标签推送到远程仓库

    # 推送单个指定标签到远程
    git push origin v1.0

    # 一次性推送本地所有标签至远程
    git push origin –tags

    3 删除远程标签

    1.在远程直接删除

    # origin 是你的远程别名,v1.0 是要删的标签名
    git push origin –delete v1.0

    # 简写旧语法(原理推送空内容覆盖远程标签):
    git push origin :v1.0

    2.本地删除再推送

    1.先删除本地对应标签

    git tag -d v1.0

    2.推送空分支覆盖远程标签完成删除

    git push origin :v1.0

    六、多分支远程协作:创建、关联、合并、清理分支

    企业开发普遍采用多分支模式:master/main主分支存放稳定版本,dev开发分支迭代新功能,远程分支操作是团队协作核心。

    1.分支查看命令

    # 仅查看本地分支
    git branch

    # 查看本地+所有远程分支
    git branch -a

    # 查看分支对应远程追踪关系
    git branch -v

    2.本地分支关联远程分支

    场景:远程已提前创建`dev`分支,本地新建分支并绑定远程追踪:

    # 方式1:创建并切换dev分支,自动关联远程origin/dev
    git checkout -b dev origin/dev

    # 方式2:已有本地dev分支,手动绑定远程追踪
    git branch –set-upstream-to=origin/dev dev

    3.分支推送与拉取区别

    # 明确指定远程主分支推送,不依赖本地分支追踪关系
    git push origin master

    # 简写推送:本地分支已绑定远程追踪,直接git push即可
    git push

    4.分支合并两种方案

    1.线上 PR(Pull Request)

    在 Gitee/GitHub 网页端发起 PR,将 dev 分支代码合并进 master,适合严格代码审核的团队。

    2.本地合并(快速合并)

    # 切换到主分支
    git checkout master
    # 把dev分支代码合并到master
    git merge dev
    # 合并完成推送至远程
    git push origin master

    冲突处理:推拉代码、分支合并出现冲突时,必须先本地手动修改冲突文件,重新 add、commit 后再推送远程。

    5.清理失效远程分支

    远程分支被他人删除后,本地 git branch -a 仍会显示残留记录,同步清理:

    # 查看远程仓库完整信息
    git remote show origin

    # 同步清理本地不存在的远程分支记录
    git remote prune origin

    # 删除本地无用分支
    git branch -d 分支名

    七、完整远程协作标准工作流总结

  • 配置 SSH 密钥,使用 SSH 地址克隆远程仓库;
  • 本地创建文件,git add→git commit提交本地版本;
  • git pull拉取远程最新代码,提前规避冲突;
  • git push推送本地分支 / 标签到远程仓库;
  • 多分支开发:新建 dev 分支关联远程,开发完成本地 merge 合并到主分支;
  • 版本发布:给稳定 commit 打 tag 标签,推送标签至远程;
  • 项目迭代后,定期清理本地、远程废弃分支。
  • 八、git 常用命令总结

    类名命令说明
    配置与初始化 git config –global user.name "名字" 设置全局用户名
    git config –global user.email "邮箱" 设置全局邮箱
    git init 初始化一个新的Git仓库
    git clone <url> 克隆远程仓库到本地
    文件操作与暂存 git add <file> 将指定文件添加到暂存区
    git add . 将所有修改/新增文件添加到暂存区
    git rm <file> 删除文件并记录到暂存区
    git mv <old> <new> 重命名或移动文件
    提交与历史查看 git commit -m "描述" 提交暂存区内容到本地仓库
    git commit –amend 修改最近一次提交(补充或修改)
    git log 查看提交历史记录
    git log –oneline 以简洁单行格式查看历史
    git status 查看当前工作区和暂存区状态
    git diff 查看工作区与暂存区的差异
    分支管理 git branch 查看本地所有分支
    git branch <name> 创建新分支
    git checkout <name> 切换到指定分支
    git checkout -b <name> 创建并切换到新分支
    git switch <name> 切换分支(新版推荐)
    git switch -c <name> 创建并切换分支(新版推荐)
    git branch -d <name> 删除已合并的分支
    git branch -D <name> 强制删除未合并的分支
    合并与变基 git merge <branch> 将指定分支合并到当前分支
    git rebase <branch> 将当前分支变基到指定分支
    git rebase –continue 解决冲突后继续变基
    git rebase –abort 中止变基操作
    git cherry-pick <commit> 挑选指定提交应用到当前分支
    远程仓库操作 git remote -v 查看远程仓库地址
    git remote add origin <url> 添加远程仓库
    git fetch 从远程仓库拉取最新内容(不合并)
    git pull 拉取远程内容并自动合并
    git push 推送本地提交到远程仓库
    git push -u origin <branch> 首次推送并关联远程分支
    撤销与恢复 git checkout — <file> 丢弃工作区文件的修改
    git restore <file> 恢复文件(新版推荐)
    git reset HEAD <file> 将文件从暂存区撤出
    git reset –soft <commit> 撤销提交,保留暂存区和工作区
    git reset –hard <commit> 强制回退到指定提交(慎用)
    git revert <commit> 创建新提交来撤销指定提交(安全)
    git stash 暂存当前修改
    git stash pop 恢复暂存的修改
    标签管理 git tag 查看所有标签
    git tag <name> 创建轻量标签
    git tag -a <name> -m "描述" 创建带注释的标签
    git push origin <tag> 推送指定标签到远程
    git push origin –tags 推送所有标签到远程
    git tag -d <name> 删除本地标签

    结尾

    Git 远程操作没有复杂原理,核心是理清本地仓库、远程仓库、分支、标签四者的关联关系。SSH 密钥解决免密登录,分支实现多人并行开发,Tag 规范版本发布,ignore 过滤冗余文件,把这套命令熟练使用后,就能完全驾驭团队代码协同开发,避开 90% 新手远程报错问题。

    赞(0)
    未经允许不得转载:171主机测评 » Git篇(三):吃透远程协作:SSH 密钥、分支、标签全流程实战指南
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址