云计算百科
云计算领域专业知识百科平台

Git操作手册(其实一点都不难)

目录

  • SSH Key 配置(GitHub/GitLab 双平台)
  • Git 基础全局配置
  • Git 核心基础操作
  • Git 分支管理
  • Git 进阶操作
  • 常见问题与解决方案

  • 1. SSH Key 配置(GitHub/GitLab 双平台)

    1.1 核心说明

    SSH Key 用于本地与Git服务器(GitHub/GitLab)的免密认证,推荐为不同平台配置独立Key以避免冲突(本文以「GitHub使用id_ed25519、GitLab使用id_rsa_gitlab」为例)。当然,如果你觉得这一部分比较难懂或者倾向于使用https的方法直接进行clone,那这一部分也可以直接跳过~

    1.2 操作步骤

    1.2.1 检查本地已有SSH Key

    打开Git Bash,执行以下命令查看.ssh目录文件:

    ls -al ~/.ssh

    • 若存在id_ed25519(GitHub私钥)、id_rsa_gitlab(GitLab私钥),跳过「生成Key」步骤;
    • 若不存在,按对应平台生成Key。
    1.2.2 生成SSH Key(按需)
    (1)生成GitHub Key(ED25519算法,更安全)

    ssh-keygen -t ed25519 -C "你的邮箱@xxx.com" -f ~/.ssh/id_ed25519

    • 执行后按提示回车(密码可留空,也可设置密钥密码增强安全性);
    • 生成文件:id_ed25519(私钥,保密)、id_ed25519.pub(公钥,需配置到GitHub)。
    (2)生成GitLab Key(RSA算法,兼容更广)

    ssh-keygen -t rsa -C "你的邮箱@xxx.com" -f ~/.ssh/id_rsa_gitlab

    • 生成文件:id_rsa_gitlab(私钥)、id_rsa_gitlab.pub(公钥,需配置到GitLab)。
    1.2.3 配置SSH Config文件(区分双平台)

    特别说明:此处写的是github和gitlab,但拓展到更多的代码仓库平台也是一样的~

    编辑.ssh/config文件,让Git自动匹配不同平台的Key:

    # 打开/创建config文件
    vim ~/.ssh/config

    输入以下配置(按i进入编辑模式,编辑完成后按Esc+:wq保存退出):

    # GitHub 配置(使用ED25519密钥)
    Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519
    PreferredAuthentications publickey
    IdentitiesOnly yes

    # GitLab 配置(使用RSA密钥)
    Host gitlab.com
    HostName gitlab.com
    User git
    IdentityFile ~/.ssh/id_rsa_gitlab
    PreferredAuthentications publickey
    IdentitiesOnly yes

    # (可选)公司私有GitLab服务器配置
    # Host gitlab.xxx.com
    # HostName gitlab.xxx.com
    # User git
    # IdentityFile ~/.ssh/id_rsa_gitlab
    # PreferredAuthentications publickey
    # IdentitiesOnly yes

    ### 举一个例子,笔者是用南京大学的gitlab,那么就应该改成Host git.nju.edu.cn

    1.2.4 将公钥添加到代码平台
    (1)GitHub添加公钥
  • 复制GitHub公钥内容:cat ~/.ssh/id_ed25519.pub;
  • 登录GitHub → 右上角头像 → Settings → SSH and GPG keys → New SSH key;
  • Title填写标识(如「Windows-办公电脑」),Key粘贴复制的公钥内容,点击Add SSH key。
  • (2)GitLab添加公钥
  • 复制GitLab公钥内容:cat ~/.ssh/id_rsa_gitlab.pub;
  • 登录GitLab → 右上角头像 → Settings → SSH Keys;
  • Title填写标识,Key粘贴公钥内容,点击Add key。
  • 1.2.5 验证SSH连接

    # 验证GitHub连接
    ssh -T git@github.com
    # 成功提示:Hi 用户名! You've successfully authenticated…

    # 验证GitLab连接
    ssh -T git@gitlab.com
    # 成功提示:Welcome to GitLab, @用户名!


    2. Git 基础全局配置

    首次使用Git需配置用户名和邮箱(关联提交记录),执行以下命令:

    # 全局配置(所有项目生效)
    git config –global user.name "你的用户名"
    git config –global user.email "你的邮箱@xxx.com"

    # (可选)单个项目独立配置(进入项目目录执行)
    git config user.name "你的用户名"
    git config user.email "你的邮箱@xxx.com"

    # 查看配置信息
    git config –list


    3. Git 核心基础操作

    3.1 本地仓库初始化

    适用于新建项目,从零创建Git仓库:

    # 1. 创建项目目录并进入
    mkdir my-project && cd my-project

    # 2. 初始化Git仓库
    git init

    # 3. 创建初始文件(示例)
    touch README.md

    # 4. 提交初始版本
    git add README.md # 添加文件到暂存区
    git commit -m "init: 初始化项目,添加README" # 提交到本地仓库

    3.2 克隆远程仓库

    适用于拉取已有远程项目到本地:

    # SSH方式(推荐,需配置SSH Key)
    git clone git@gitlab.com:用户名/项目名.git # GitLab
    git clone git@github.com:用户名/项目名.git # GitHub

    # HTTPS方式(备用,需输入账号密码)
    git clone https://gitlab.com/用户名/项目名.git

    3.3 拉取远程代码(Pull)

    同步远程仓库最新代码到本地:

    # 拉取当前分支的远程最新代码
    git pull

    # 显式指定远程仓库和分支(适用于未配置追踪分支)
    git pull origin main # main为分支名,按需替换为master/dev等

    3.4 推送本地代码(Push)

    将本地提交推送到远程仓库:

    # 首次推送(配置追踪分支,后续可简化)
    git push -u origin main # -u:关联本地main与远程origin/main

    # 非首次推送(已配置追踪分支)
    git push

    # 显式指定远程和分支(通用写法)
    git push origin main


    4. Git 分支管理

    4.1 分支核心概念

    分支类型

    用途

    命名规范示例

    main/master

    主分支,存放稳定可发布代码

    feature/xxx

    功能开发分支

    feature/user-login-20260116

    bugfix/xxx

    问题修复分支

    bugfix/btn-click-20260116

    test/xxx

    测试验证分支

    test/config-adjust-20260116

    4.2 分支基础操作

    4.2.1 查看分支

    # 查看本地分支(*标记当前分支)
    git branch

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

    # 查看分支追踪关系(关键)
    git branch -vv

    4.2.2 创建并切换分支

    # 方式1:先创建再切换
    git branch feature/test # 创建分支
    git checkout feature/test # 切换分支

    # 方式2:创建并直接切换(推荐)
    git checkout -b feature/test

    4.2.3 推送本地分支到远程

    # 首次推送(配置追踪)
    git push -u origin feature/test

    # 后续推送(已配置追踪)
    git push

    4.2.4 切换回主分支

    git checkout main

    4.3 分支合并

    4.3.1 合并到主分支(确认分支代码无误后操作)

    # 1. 切换到主分支
    git checkout main

    # 2. 拉取主分支最新代码(避免冲突)
    git pull origin main

    # 3. 合并目标分支到主分支
    git merge feature/test

    # 4. 推送合并后的主分支到远程
    git push origin main

    4.3.2 解决合并冲突

    若合并时提示冲突(如同一文件同一行被修改),按以下步骤处理:

  • 冲突提示示例:Automatic merge failed; fix conflicts and then commit the result.;
  • 打开冲突文件,找到标记<<<<<<< HEAD(主分支内容)、=======(分支内容)、>>>>>>> feature/test;
  • 手动修改冲突内容,删除冲突标记;
  • 提交解决后的代码:
  • git add . # 添加修改后的文件
    git commit -m "fix: 解决feature/test合并冲突"
    git push origin main

    4.4 删除分支

    # 删除本地分支(需先切换到其他分支)
    git branch -d feature/test # 常规删除(需分支已合并)
    git branch -D feature/test # 强制删除(未合并也可删除)

    # 删除远程分支
    git push origin –delete feature/test


    5. Git 进阶操作

    5.1 暂存工作区修改(Stash)

    适用于临时切换分支,不想提交当前未完成的修改:

    # 暂存当前修改
    git stash save "暂存说明:未完成的登录功能开发"

    # 查看暂存列表
    git stash list

    # 恢复最近一次暂存
    git stash pop

    # 恢复指定暂存(如stash@{0})
    git stash apply stash@{0}

    # 删除暂存
    git stash drop stash@{0}

    # 清空所有暂存
    git stash clear

    5.2 回滚代码

    5.2.1 撤销工作区未暂存的修改

    # 撤销单个文件
    git restore src/index.ts

    # 撤销所有文件
    git restore .

    5.2.2 撤销暂存区的修改(已add未commit)

    git reset HEAD src/index.ts # 单个文件
    git reset HEAD . # 所有文件

    5.2.3 回滚已提交的版本

    # 查看提交日志(获取要回滚的commit ID)
    git log –oneline # 简洁日志,输出如:1234567 feat: 添加登录功能

    # 回滚到指定版本(保留修改,可重新提交)
    git reset –soft 1234567

    # 回滚到指定版本(删除所有修改,谨慎使用)
    git reset –hard 1234567

    # 推送回滚后的版本到远程(需强制推送)
    git push -f origin main

    5.3 查看提交日志

    # 简洁日志(推荐)
    git log –oneline

    # 详细日志(含作者、时间、修改内容)
    git log

    # 查看指定文件的提交记录
    git log src/index.ts


    6. FAQ

    6.1 SSH连接失败

    • 现象:ssh: connect to host gitlab.com port 22: Connection refused;
    • 原因:端口22被屏蔽,或公钥配置错误;
    • 解决方案:
  • 检查公钥是否完整粘贴到平台(无换行/空格);
  • 尝试改用443端口(修改config文件):
  • Host gitlab.com
    HostName gitlab.com
    User git
    IdentityFile ~/.ssh/id_rsa_gitlab
    Port 443

    6.2 Push提示「权限不足」

    • 现象:remote: You are not allowed to push code to this project.;
    • 原因:GitLab/GitHub账号无该项目推送权限;
    • 解决方案:联系项目管理员添加权限,或确认使用正确的账号。

    6.3 分支追踪关系丢失

    • 现象:fatal: The current branch has no upstream branch.;
    • 解决方案:重新配置追踪:git push -u origin 分支名。

    正常情况下,上面这些命令和操作足以应对大学生本科阶段的项目开发业务了,如果有不足遗漏之处,欢迎联系我修改补充~

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Git操作手册(其实一点都不难)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!