004、Git初始化:创建你的第一个本地仓库
004、Git初始化创建你的第一个本地仓库昨天帮实习生调试代码发现他的项目目录里散落着十几个以“_final”“_new”“_backup”结尾的文件夹。问他为什么不用Git他挠头说“配置太麻烦感觉用不上。”这场景让我想起自己刚入行时也总觉得版本控制是“大项目才需要的东西”。直到某次误删了三天的工作成果才真正明白Git不是可选项而是开发生涯的氧气面罩。仓库初始化的本质很多人以为git init只是创建一个.git隐藏文件夹其实远不止如此。这个命令实际上构建了一个完整的版本管理生态系统——对象数据库、引用系统、钩子框架都在这一刻悄然建立。就像盖房子打地基你看不到它但它决定了整个建筑能盖多高。实战从零创建仓库打开终端进入你的项目目录。如果你还没有项目随便创建一个目录练手mkdirmy_projectcdmy_project现在执行初始化命令gitinit你会看到这样的输出Initialized empty Git repository in /path/to/your/project/.git/关键细节这个命令会在当前目录创建.git子目录里面包含了Git的所有核心组件。别手贱去删这个文件夹除非你想重新开始——这里我踩过坑删了之后版本历史就全丢了。检查初始化状态初始化后立即检查状态是个好习惯gitstatus如果看到“On branch master”和“nothing to commit”说明仓库已经就绪但完全是空的。这时候的仓库就像刚格式化的硬盘有文件系统但没数据。第一个提交的陷阱新手常犯的错误是直接git add .然后提交echo# My ProjectREADME.mdgitadd.gitcommit-mInitial commit停这里有个坑git add .会把当前目录所有文件都加进去包括那些编译生成的临时文件、IDE配置文件。等你发现时仓库里已经塞满了垃圾。更专业的做法是先创建.gitignore文件# 先忽略常见垃圾文件echo*.log.gitignoreechonode_modules/.gitignoreecho.DS_Store.gitignore# 再添加真正需要跟踪的文件gitaddREADME.md .gitignoregitcommit-mfeat: initial project structure注意我用了“feat:”前缀这是约定式提交的写法后面章节会详细讲。养成好习惯要从第一次提交开始。仓库配置的隐藏关卡初始化后还有几个配置项直接影响后续体验。全局配置一般在~/.gitconfig但项目特定的配置更值得关注# 设置提交者信息每个仓库都要配别偷懒gitconfig user.name你的名字gitconfig user.email你的邮箱# 设置默认编辑器为VSCode如果你用VSCodegitconfig core.editorcode --wait# 开启颜色显示输出更友好gitconfig color.ui auto特别提醒邮箱一定要用真实有效的很多公司用这个关联代码贡献。别写个“testtest.com”等需要找回密码时就傻眼了。裸仓库另一种初始化方式偶尔你会看到这样的命令gitinit--baremy_project.git这种叫“裸仓库”没有工作目录专门用于共享。你在GitHub上克隆的就是这种仓库。个人开发用不上但搭建内部Git服务器时会用到。知道有这么个东西就行别在本地项目里用--bare不然你会发现没法写代码了。个人经验初始化后的第一件事我每个新仓库初始化后会做三件事立即创建.gitignore用git status检查有没有不该跟踪的文件有就加到忽略列表。网上有各种语言的.gitignore模板但最好自己维护一个公司通用的。设置分支命名新版本Git默认分支叫main老版本叫master。用git branch -M main可以改名。和团队保持一致很重要不然推送时会遇到分支不匹配的警告。创建README和基础结构哪怕只是项目骨架也要有基本的文档结构。这就像装修房子先布线后面添家具才方便。最后说个真事我曾见过有人把整个node_modules提交到仓库仓库大小暴涨到2GB克隆一次要半小时。初始化时多花五分钟能省下后面无数小时的调试和清理时间。Git仓库就像你的代码日记从第一页就要写得干净整洁。