[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 工作。

相关推荐
真好啊又活了一天3 小时前
服务器和虚机配置IPV6
运维·服务器·github
Cosolar3 小时前
极简简历:开源免费,希望帮助到更多求职者
开源·github·敏捷开发
YIN_尹3 小时前
【git原理与使用】git基本操作及底层原理(二)
大数据·git·elasticsearch
Cosolar4 小时前
极简智库:快速搭建你的开源项目教程阅读平台,让 docs/ 目录被更多人看见
java·架构·github
敢敢是只喵i4 小时前
false不等于没填:一次 AI 接入业务系统的SDK的修复记录
github
一条Go4 小时前
历史告警归档:为什么"删掉主库行"是最后一步
后端·架构·github
TunerT_TQ4 小时前
Valhalla L3 开源评测|Apache Doris:面向AI Agent的实时分析与混合检索数据库
github
panyz4 小时前
不想再开 7 个标签页查AI额度,我用 Node 写了个本地看板
人工智能·开源·github
逛逛GitHub4 小时前
又 3 个刚开源但要火的 GitHub 项目,在 iPhone 上跑 macOS。
github
OpenTiny社区7 小时前
AI Agent场景组件库 TinyRobot v1.0 正式发布:一站式打造您的AI助手
vue.js·github