只用 Git,不用 GitHub 完全可以
Git 本身就是一个分布式版本控制系统,完全可以脱离 GitHub 独立工作。GitHub 只是提供了一个远程托管 + 协作的平台。你完全可以在本地用 Git 管理代码,甚至通过其他方式(U 盘、局域网、自建服务器)实现"远程"功能。
下面从入门到进阶给你讲清楚。
一、核心认知:Git 不需要远程仓库
Git 是分布式的,每个本地仓库都是完整的,包含全部历史。所以:
- ✅ 本地提交、分支、合并、回滚 ------ 全部可用.
这里指的是本地 - ✅ 查看历史、diff、blame ------ 全部可用
- ❌ 只有"推送到 GitHub 供他人协作/备份"这一层需要远程(但可以用别的方式替代)
二、最小可用工作流(本地单机)
1. 安装与配置(一次性)
bash
git --version # 确认已安装
git config --global user.name "你的名字"
git config --global user.email "you@example.com"
2. 初始化仓库
bash
mkdir myproject && cd myproject
git init # 创建本地仓库
3. 日常循环:改 → 加 → 提交
bash
git status # 看哪些文件变了
git add . # 暂存所有改动(或 git add 文件名)
git commit -m "描述这次改了什么" # 提交到本地历史
就这三步,反复用。不需要任何网络。
4. 看历史 / 回退
bash
git log --oneline --graph # 看提交历史
git diff # 看未暂存的改动
git checkout -- 文件名 # 撤销某文件改动
git reset --hard <commit哈希> # 回到某个提交(慎用)
5. 分支(本地也很有用)
bash
git branch feature-x # 建分支
git switch feature-x # 切换(新语法)
git merge feature-x # 合并回主线
git branch -d feature-x # 删除分支
三、没有 GitHub,如何"备份"和"多机同步"
这是你唯一需要替代 GitHub 的地方。几种方案:
方案 A:本地裸仓库(bare repo)当"远程"
在你的硬盘/移动硬盘/U 盘/局域网另一台机器上建一个裸仓库:
bash
# 在备份盘上
git init --bare /path/to/backup/myproject.git
# 在你的项目里
git remote add origin /path/to/backup/myproject.git
git push -u origin main
之后 git push / git pull 就和用 GitHub 一样了,只是地址是本地路径。这是最推荐的单机替代方案。
方案 B:直接拷贝整个仓库文件夹
Git 仓库就是 .git 目录 + 工作区,直接 cp -r 到备份盘即可,历史全在。简单粗暴但有效。
方案 C:局域网自建远程
- 在另一台机器
git init --bare,通过ssh://user@host/path/repo.git访问 - 或自建 Git 服务:Gitea / Gogs(轻量,单机可跑)、GitLab CE
方案 D:用其他托管(非 GitHub)
GitLab、Gitee、Bitbucket、自建服务器都行,Git 协议通用。
四、进阶:只用 Git 也能做的事
- 打标签 :
git tag v1.0标记版本 - 储藏 :
git stash临时保存未提交改动 - 拣选 :
git cherry-pick <hash>把某提交搬到当前分支 - 二分查找 bug :
git bisect定位引入问题的提交 - 钩子 :
.git/hooks/里写脚本做提交前检查 - 子模块 / worktree:管理多仓库或多工作区
五、一句话总结
Git = 本地版本控制引擎(必需);GitHub = 远程托管 + 协作 UI(可选)。 你只要会用
init / add / commit / log / branch / merge,再配一个本地裸仓库做push/pull备份,就能完全脱离 GitHub 工作。