目录
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添加公钥
(2)GitLab添加公钥
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 解决合并冲突
若合并时提示冲突(如同一文件同一行被修改),按以下步骤处理:
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被屏蔽,或公钥配置错误;
- 解决方案:
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 分支名。
正常情况下,上面这些命令和操作足以应对大学生本科阶段的项目开发业务了,如果有不足遗漏之处,欢迎联系我修改补充~
网硕互联帮助中心


评论前必须登录!
注册