git init 初始化仓库:从零创建一个 Git 项目
想给本地文件夹开启版本管理?git init 是第一步。本文讲清 git init 的用法、生成 .git 目录结构、以及 init 和 clone 的区别。
场景:你有一个文件夹想开始用 Git 管理版本,或想在本地新建一个全新项目。git init 就是这第一步。
基本用法
进入你的项目文件夹后执行:
cd 你的项目文件夹
git init
执行后 Git 会提示类似 Initialized empty Git repository in /path/to/project/.git/,一个 Git 仓库就建好了。
指定初始分支名
想一开始就用 main 作为主分支(避免 master/main 混乱):
git init -b main
Git 新版默认就是 main,老版本可用此参数显式指定。
生成 .git 目录结构
git init 会创建一个隐藏的 .git 文件夹,里面存放版本库的全部核心数据:
.git/
├── HEAD # 指向当前分支
├── config # 仓库配置(用户、远程等)
├── objects/ # 所有提交/文件的对象数据
├── refs/ # 分支和标签的指针
├── hooks/ # 钩子脚本(可选)
└── index # 暂存区(首次 add 后生成)
日常开发不需要手动碰 .git,它由 Git 自动维护。
初始化后做什么
git status # 查看状态,现在是干净的
git add . # 暂存所有文件
git commit -m "初始提交" # 创建第一个提交
git remote add origin 远程地址 # (可选)关联远程仓库
在当前仓库临时换主分支名
如果已经 init 完成且想改分支名:
git branch -m master main # 把 master 改名为 main
init vs clone 速查
| git init | git clone | |
|---|---|---|
| 场景 | 本地新建/开启版本管理 | 从远程复制已有代码 |
| 是否要远程 | 不需要 | 需要远程地址 |
| 产物 | 空仓库+自己的文件 | 完整复制已有代码和历史 |
常见问题
- 误在错误目录 init:没有影响,直接删除
.git文件夹即可撤销(rm -rf .git,谨慎)。 - 想删除整个仓库的版本记录:删掉
.git文件夹会清空所有历史,仅保留当前文件,慎用。 - 在已有子仓库的文件夹里 init:会形成嵌套,Git 会把内层当作独立仓库,一般应避免。
一句话速记
git init 开启版本管理,生成 .git 目录;本地新建用 init,拿远程代码用 clone。
?
常见问题 FAQ
git init 和 git clone 有什么区别?
init 是在本地把一个文件夹变成 Git 仓库(从无到有);clone 是从远程仓库复制一份已有代码到本地。想关联已有远程项目用 clone,想在本地新建项目用 init。
git init 后文件夹里的东西会变吗?
不会。它只是在当前目录里生成一个隐藏的 .git 文件夹用于记录版本,你的文件内容完全不变。
执行了 git init 但没看到 .git 目录,为什么?
.git 是隐藏文件夹,默认不显示。Windows 用 ls -a 或资源管理器"显示隐藏文件",Mac/Linux 用 ls -a。
初始化后默认分支是 master 还是 main?
取决于 Git 版本配置。新版 Git 常默认 main,旧版为 master。可通过 git init -b main 指定初始分支名,或用 git branch -m main 改名。