Git 零基础常用指令手册(Gitee / GitHub 通用 )
| 项 | 内容 |
|---|---|
| 适用对象 | Git 新手;使用Gitee或GitHub管理代码的开发者 |
| 文档目标 | 掌握日常克隆、拉取、提交、推送、分支等操作 |
| 平台 | Windows / macOS / Linux(示例以 PowerShell / Bash 为主) |
| 文档版本 | v1.2(Gitee + GitHub 通用 · 脱敏分享版) |
| 更新日期 | 2026-07-22 |
结论先说:
Git 指令本身(
clone/add/commit/push/branch…)在 Gitee 与 GitHub完全通用。不一样的地方主要是:仓库网址、网页里加 SSH 公钥的入口、HTTPS 登录方式(私人令牌)、以及网页上「提合并请求」的叫法。
阅读建议:先看第 1 章概念 + 第 1.4 节平台对照,再跟场景走一遍。示例说明:
用户名、仓库名、main、feature/xxx均为占位符。
0. 分享前须知(脱敏与安全)
| 处理项 | 说明 |
|---|---|
| 不含真实密钥 | 无 SSH 私钥、Token、密码、keystore |
| 不含真实账号 | 邮箱/用户名均为占位示例 |
| 不含内部仓库地址 | 使用占位地址,见下文「地址写法」 |
| 不含客户/产品专有信息 | 分支与业务均用通用示例 |
分享时请注意:
不要发送
~/.ssh/id_ed25519(无.pub后缀)——那是私钥。可以配置到网站上的是
id_ed25519.pub(公钥)。截图前检查:是否露出真实组织名、仓库地址、Token、内网路径。
团队规范(必须走 PR、禁止强推等)优先于本文。
1. 基础概念
1.1 Git、Gitee、GitHub 分别是什么?
| 名称 | 是什么 | 你怎么用 |
|---|---|---|
| Git | 装在电脑上的「版本管理工具」 | 在终端敲git xxx |
| Gitee | 国内常用的代码托管网站 | 浏览器打开 gitee.com,存远程仓库 |
| GitHub | 全球常用的代码托管网站 | 浏览器打开 github.com,存远程仓库 |
一句话:Git 管本地历史;Gitee/GitHub 管「云端仓库 + 协作网页」。
1.2 什么是仓库(Repository)
仓库= 项目文件 +「每一次改动的日记本」。
文件夹= 你的代码文件
仓库= 文件夹 + Git 自动记账的历史
每一笔记账叫一次提交(commit)。
1.3 本地仓库 vs 远程仓库
| 类型 | 在哪 | 干什么 |
|---|---|---|
| 本地仓库 | 电脑上(有隐藏目录.git) | 改代码、提交、切分支 |
| 远程仓库 | Gitee 或 GitHub 云端 | 备份、多人协作、多设备同步 |
你的电脑(本地) 远程(Gitee 或 GitHub) ┌─────────────────┐ ┌─────────────────┐ │ 工作区 │ add/commit │ │ │ (正在改的文件)│ ─────────────► │ 远程仓库 │ │ │ │ │ origin/main │ │ ▼ │ push ▲ │ │ │ 本地仓库 │ ───────┼──────►│ │ │ (.git 历史) │ ◄─pull ┘ │ │ └─────────────────┘ /fetch └─────────────────┘
| 说法 | 含义 |
|---|---|
origin | 远程仓库的默认昵称 |
main/master/develop | 分支名(以你仓库实际名称为准) |
| 工作区干净 | 没有未提交修改 |
| 落后远端 | 云端已有新提交,你还没 pull |
1.4 三个工作区域
| 区域 | 是什么 | 典型指令 |
|---|---|---|
| 工作区 | 编辑器里正在改的文件 | 保存文件 |
| 暂存区 | 「准备提交」的清单 | git add |
| 本地仓库 | 已写入历史的提交 | git commit |
再到远程:git push。
改文件 → git add → git commit → git push 工作区 暂存区 本地历史 Gitee/GitHub
1.5 Gitee 与 GitHub:哪些一样、哪些不同?
| 项目 | 是否相同 | 说明 |
|---|---|---|
git clone/add/commit/push/branch/merge/stash/tag... | 相同 | 都是 Git,命令通用 |
| SSH / HTTPS 克隆推送逻辑 | 相同 | 只是域名不同 |
| 仓库网页地址 | 不同 | gitee.com vs github.com |
| 添加 SSH 公钥的菜单位置 | 不同 | 见第 2 章 |
| HTTPS 身份验证 | 略有不同 | 现多使用 Token,不再用账户密码明文 |
| 网页发起合并 | 叫法不同 | Gitee 常称「Pull Request / 合并请求」;GitHub 称Pull Request(PR) |
| 开源协作「Fork」 | GitHub 极常见 | Gitee 也有类似「派生」;流程类似 |
地址写法对照(请替换占位符):
| 方式 | Gitee | GitHub |
|---|---|---|
| SSH | git@gitee.com:用户名/仓库名.git | git@github.com:用户名/仓库名.git |
| HTTPS | https://gitee.com/用户名/仓库名.git | https://github.com/用户名/仓库名.git |
下文示例会同时给出两种,或写成:
# 任选其一主机 GIT_HOST=gitee.com # 或 github.com git@GIT_HOST:用户名/仓库名.git
2. 本地环境配置
2.1 安装 Git
打开 Redirecting… 安装。
检查:
git --version
Windows 可用Git Bash或PowerShell。
2.2 配置姓名和邮箱
git config --global user.name "你的名字" git config --global user.email "your.name@example.com" git config --global --list
| 参数 | 说明 |
|---|---|
--global | 本机所有仓库生效 |
| 不加 | 仅当前仓库 |
邮箱建议与 Gitee / GitHub 账号绑定邮箱一致。
2.3 SSH 密钥(Gitee / GitHub 同一套密钥即可)
生成一次密钥,可同时添加到 Gitee 和 GitHub。
步骤 1:是否已有密钥
ls ~/.ssh
有id_ed25519+id_ed25519.pub可跳到步骤 3。
步骤 2:生成
ssh-keygen -t ed25519 -C "your.name@example.com"
老系统可用:
ssh-keygen -t rsa -b 4096 -C "your.name@example.com"
| 文件 | 能否分享 |
|---|---|
id_ed25519 | 绝不能分享(私钥) |
id_ed25519.pub | 可粘贴到网站(公钥) |
步骤 3:复制公钥
# Windows PowerShell Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub # macOS / Linux cat ~/.ssh/id_ed25519.pub
步骤 4A:添加到 Gitee
登录 Gitee → 头像 →设置
SSH 公钥→ 添加公钥 → 粘贴保存
步骤 4B:添加到 GitHub
登录 GitHub → 头像 →Settings
左侧SSH and GPG keys→New SSH key
Title 随意,Key 粘贴公钥 →Add SSH key
步骤 5:分别测试
ssh -T git@gitee.com ssh -T git@github.com
首次确认指纹时输入yes。出现成功/欢迎提示即可。
一台电脑连两个网站:通常同一把公钥加到两边即可。若公司要求隔离,可生成第二对密钥并用
~/.ssh/config指定(进阶,见附录)。
2.4 HTTPS 与 Token(两平台都常用)
| 类型 | 特点 |
|---|---|
| SSH(推荐日常) | 配好密钥后免密 |
| HTTPS | 需要身份验证;现代平台多用Personal Access Token(私人令牌),而不是账户登录密码 |
GitHub:Settings → Developer settings → Personal access tokensGitee:设置 → 私人令牌 / 私人令牌(名称以网页为准)
令牌 = 密码,禁止写入文档、聊天、截图、仓库。
2.5(可选)GitHub CLI
GitHub 提供命令行工具gh,方便在终端创建 PR、看 Issue(非必须,新手可先只用git)。
安装说明见:GitHub CLI | Take GitHub to the command line
登录:
gh auth login示例:
gh pr create、gh pr list
Gitee 侧更多依赖网页或自有工具;核心仍是 Git 指令。
3. 常用指令详细说明
先进入项目目录:
cd /path/to/your-projectWindows:cd D:\Projects\your-project下文用
main表示主分支;请按实际分支名替换。
3.1 clone(克隆)
# Gitee git clone git@gitee.com:用户名/仓库名.git # GitHub git clone git@github.com:用户名/仓库名.git # 指定本地目录名 git clone git@github.com:用户名/仓库名.git my-folder # 只克隆某一分支(更快) git clone -b main --single-branch git@github.com:用户名/仓库名.git
| 参数 | 含义 |
|---|---|
-b 分支名 | 克隆后切到该分支 |
--single-branch | 只拉这一支 |
| 最后路径 | 本地文件夹名 |
3.2 状态与历史
git status git status -sb git log git log --oneline -10 git remote -v git branch -vv
| 指令 | 你会看到 |
|---|---|
status | 改了哪些文件、是否超前/落后 |
log --oneline | 短哈希 + 说明 |
branch -vv | 如main...origin/main |
remote -v | 当前连的是 Gitee 还是 GitHub |
3.3 fetch / pull
git fetch origin git log --oneline HEAD..origin/main git pull origin main git pull --ff-only origin main
| 指令 | 区别 |
|---|---|
fetch | 只更新远端信息,不自动改你的文件 |
pull | ≈ fetch + 合并进当前分支 |
--ff-only | 不能快进就失败,更安全 |
建议:每天开工先pull,再写代码。
3.4 add / commit
git status -sb git diff git diff --staged git add 文件路径 git add . git add -u path/to/dir/ # 同步「已跟踪文件」的修改与删除 git commit -m "简短说明:做了什么"
PowerShell 多行:
git commit -m @" 标题:一句话概括 正文:补充原因。 "@
| 写法 | 含义 |
|---|---|
git add 文件 | 精确、更安全 |
git add . | 全部变更,易误加敏感文件 |
git add -u | 更新已跟踪文件(含删除),不添加全新未跟踪文件 |
提交说明示例:
fix: 修复登录按钮无响应 feat: 新增夜间模式开关 chore: 更新构建配置 docs: 补充 README 安装步骤
不要提交:
| 类型 | 示例 |
|---|---|
| 密钥证书 | *.pem、*.keystore、私钥 |
| 私密配置 | .env、含 Token 的配置文件 |
| 令牌 | GitHub/Gitee PAT |
| 无关大文件 | 除非团队明确要求 |
3.5 push
git push -u origin main git push
| 参数 | 含义 |
|---|---|
origin | 远程昵称 |
main | 远端分支名 |
-u | 设置上游,之后可只打git push |
远端有新提交时需先pull再push。
3.6 分支
git branch git branch -a git switch main git checkout main git switch -c feature/user-settings git push -u origin feature/user-settings git branch -d feature/user-settings git push origin --delete feature/user-settings
命名建议:feature/...、fix/...;主分支保持可运行。
3.7 merge
git switch main git pull origin main git merge feature/user-settings
冲突时:编辑去掉<<<<<<<等标记 →git add→git commit→git push。
3.8 在网页上发起合并(Gitee / GitHub)
本地推送功能分支后:
| 平台 | 常见名称 | 典型路径 |
|---|---|---|
| GitHub | Pull Request(PR) | 仓库页 →Pull requests→New pull request |
| Gitee | Pull Request / 合并请求 | 仓库页 →Pull Requests→ 创建 |
推荐流程(两边相同思路):
feature/xxx开发并push网页创建 PR:源分支 = 功能分支,目标分支 =
main同事 Review → 合并
本地:
git switch main→git pull
这比直接往main上push更适合团队协作。
3.9 stash
git stash push -m "写到一半先拉代码" git stash push -u -m "含未跟踪文件" git stash list git stash pop git stash apply
3.10 tag
git tag v1.0.0 git tag -a v1.0.0 -m "正式版 1.0.0" git tag git push origin v1.0.0 git push origin --tags # 慎用:推送全部本地标签
3.11 回退与撤销
# 未 add:丢弃工作区修改 git restore 文件名 # 已 add 未 commit:取消暂存 git restore --staged 文件名 # 已 commit 未 push git reset --soft HEAD~1 # 改动仍暂存 git reset HEAD~1 # 改动留工作区 git reset --hard HEAD~1 # 改动丢弃(危险) # 已 push:团队友好 git revert <提交哈希> git push
| 方式 | 工作区 | 暂存区 |
|---|---|---|
--soft | 保留 | 仍暂存 |
| mixed(默认) | 保留 | 清空 |
--hard | 清空 | 清空 |
3.12 diff
git diff git diff --staged git diff main..feature/xxx
3.13 .gitignore
local.properties .env .env.* *.keystore *.jks *.pem build/ .idea/ .vscode/ *.iml .DS_Store Thumbs.db
误跟踪后:
git rm --cached 文件名 git commit -m "chore: 停止跟踪敏感或无关文件"
3.14(可选)Fork 工作流(GitHub 开源最常见)
适合:你没有原仓库写权限,只想贡献代码。
在 GitHub 网页点Fork,得到「你账号下的副本」
克隆你的 Fork:
git clone git@github.com:你的用户名/仓库名.git cd 仓库名
添加原仓库为上游(便于同步):
git remote add upstream git@github.com:原作者用户名/仓库名.git git fetch upstream git merge upstream/main # 或:git rebase upstream/main(进阶)
建分支、改代码、
push到你的origin网页向原仓库提Pull Request
Gitee 亦有「派生/Fork」类能力,步骤类似,域名换成gitee.com。
4. 日常使用场景
场景 A:加入已有远程项目
# GitHub 示例(Gitee 把主机改成 gitee.com 即可) git clone -b main --single-branch git@github.com:用户名/仓库名.git cd 仓库名 git branch -vv git remote -v # 改代码后 git pull --ff-only origin main git status -sb git add 你改过的文件 git commit -m "feat: 说明你做了什么" git push origin main
场景 B:上班拉、下班推
cd 你的项目目录 git pull --ff-only origin main # ……开发…… git add 具体文件 git status git commit -m "chore: 今日进度" git push
场景 C:改到一半要先拉代码
git stash push -u -m "手头未完成" git pull --ff-only origin main git stash pop
场景 D:功能分支 + PR
git switch main git pull origin main git switch -c feature/login-fix # ……多次 commit…… git push -u origin feature/login-fix # 然后到 GitHub/Gitee 网页创建 Pull Request
场景 E:本地删除,远程也要删除
git add -u path/to/dir/ git status git commit -m "chore: 移除过时文件" git push origin main
场景 F:本地已有项目,首次上传到空仓库
cd 本地项目文件夹 git init git add . git status # 确认无密钥 git commit -m "chore: 初始提交" # Gitee: git remote add origin git@gitee.com:用户名/仓库名.git # 或 GitHub: # git remote add origin git@github.com:用户名/仓库名.git git branch -M main git push -u origin main
场景 G:同一项目同时有 Gitee 与 GitHub 镜像(进阶)
git remote -v git remote add github git@github.com:用户名/仓库名.git git remote add gitee git@gitee.com:用户名/仓库名.git git push github main git push gitee main
注意权限与敏感信息:推到公开 GitHub 前务必检查有无密钥。
5. 常见错误及解决方法
5.1Permission denied (publickey)
原因:未加公钥、加错成私钥、或测错了主机(Gitee/GitHub)。
处理:把.pub加到对应网站;分别执行:
ssh -T git@gitee.com ssh -T git@github.com
5.2 push 被拒:fetch first/non-fast-forward
git pull --ff-only origin main # 或 git pull origin main git push origin main
5.3 本地修改会被覆盖
git stash push -u -m "临时保存" git pull git stash pop
5.4 合并冲突
去掉<<<<<<< / ======= / >>>>>>>标记 →git add→git commit。
5.5 误 add 敏感文件
git restore --staged 文件名
已 commit 未 push:git reset --soft HEAD~1后重来。已 push 密钥:立刻在 GitHub/Gitee作废 Token/轮换密钥,再从仓库移除,并视情况通知管理员。
5.6 想撤销已 push 的提交
团队优先:
git revert HEAD git push
避免对共享分支push --force。
5.7 以为删了,网页上还在
需:git add -u→commit→push。
5.8not a git repository
cd 含有 .git 的目录 git rev-parse --show-toplevel
5.9LF will be replaced by CRLF
Windows 常见,可忽略,或:
git config --global core.autocrlf true
5.10 HTTPS 认证失败(GitHub 常见)
GitHub 已不支持用账户密码进行 Git HTTPS。请改用:
SSH 地址,或
HTTPS +Personal Access Token(密码处填 Token)
5.11(可选)Android:INSTALL_FAILED_UID_CHANGED
与 Git 无关。卸载后重装:
adb uninstall com.example.yourapp
6. 一张纸速查表
| 我想… | 指令 |
|---|---|
| 下载仓库 | git clone <地址> |
| 看状态 | git status -sb |
| 拉最新 | git pull origin 分支名 |
| 暂存 | git add 文件 |
| 提交 | git commit -m "说明" |
| 推送 | git push origin 分支名 |
| 新建分支 | git switch -c 新分支 |
| 切换分支 | git switch 分支名 |
| 合并 | git merge 分支名 |
| 暂存现场 | git stash push -m "说明" |
| 历史 | git log --oneline -10 |
| 打标签 | git tag -a v1.0.0 -m "说明" |
| 安全撤销 | git revert 哈希 |
黄金四步:
git pull git add <文件> git commit -m "说明" git push
7. 学习路径建议(一周)
| 天 | 练习 |
|---|---|
| Day 1 | 安装 Git、配身份信息、配 SSH;测通 Gitee或GitHub |
| Day 2 | clone → 改文件 → add → commit → push → 网页确认 |
| Day 3 | pull、status、log;练习解决一次冲突 |
| Day 4 | 分支创建/切换/合并;试一次网页 PR |
| Day 5 | stash、gitignore、tag |
| Day 6 | 在练习库理解 reset vs revert |
| Day 7 | 完整走场景 A~F;有余力试 Fork(GitHub) |
8. 附录 A:协作与安全建议
| 建议 | 说明 |
|---|---|
| 先拉后推 | 少冲突 |
| 小步提交 | 说明写清楚 |
| 主分支可运行 | 大改走功能分支 + PR |
| 敏感文件不入库 | .gitignore |
| 私钥永不外传 | 只传.pub |
| 公开仓库再检查 | 推到公开 GitHub 前确认无密钥 |
| 遵守团队规范 | 强制 PR / 禁止强推等 |
9. 附录 B:一台电脑多密钥(进阶)
~/.ssh/config示例(按需创建):
Host gitee.com HostName gitee.com User git IdentityFile ~/.ssh/id_ed25519_gitee Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519_github
然后分别为两个 Host 生成密钥并上传对应公钥。新手通常不需要这一步。
10. 修订记录
| 版本 | 日期 | 说明 |
|---|---|---|
| v1.0 | 2026-07-22 | 初版(偏 Gitee) |
| v1.1 | 2026-07-22 | 脱敏分享版 |
| v1.2 | 2026-07-22 | 明确适用于 GitHub;补充平台对照、双平台 SSH/Token、PR/Fork、HTTPS 认证差异 |
Git 命令通用;Gitee / GitHub 仅托管平台不同。账号、令牌与私钥请自行保管,勿写入可公开传播的文档。