[git]只有git,没有github, 如何工作

只用 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 工作。

相关推荐
import_random3 小时前
[git]先创建远程仓库or先创建本地项目
git·github
六个蒙多都说少之一拳下去那得是3 小时前
Git 与 GitHub 从零到协作:核心操作完全指南
github·代码规范
FeiYull3 小时前
Windows 下 YOLO26 Seg 的 TensorRT C++ 部署
github
Linux实战笔记5 小时前
rebase 变基引发提交哈希重写与指针机制分析
git·rebase·提交哈希·分支模型·代码合并
穆梓兰煊6 小时前
AI 供应链安全:模型制品签名校验与 Redis 缓存落地
github
简创AIGC陶先生6 小时前
【直播切片工作台】第17章:JWT 鉴权:签发、解析与中间件
github
Funlang6 小时前
Fun 的工具链,自己写自己
github
小稀土1236 小时前
私有化研发协同系统并行期:旧 Jira 与新 Git 并存 6 条数据规则
git
云南新人和数采集团6 小时前
DeepSeek Harness 开源贡献手记:从入门到合入主线
python·开源·github