# Git零基础使用指南 ## 一、Git是什么 Git是一个专门用来记录文件变化的工具。你可以把它想象成游戏的存档系统:每次存档后,即使后面改坏了,也能读档回到之前的状态。 因此它最常用的场景是:管理代码、和别人协作开发、进行备份与还原等等。 --- ## 二、安装与初始配置 ### 1. 安装 - Windows:到git-scm.com下载安装包,一路默认下一步即可。如果速度很慢,可以直接在网上搜索镜像站,加速github上的原始下载链接。 - Mac:终端输入`git --version`,如果提示安装就跟着装。 - GNU/Linux:不同发行版不一样,不过你都用Linux,总不可能这个都不会,因此这里不赘述了。 安装完后,打开终端(Windows用cmd或者powershell),输入: ```bash git --version ``` 能显示版本号就说明装好了。 ### 2. 配置身份 ```bash git config --global user.name "你的名字" git config --global user.email "你的邮箱" ``` 这两行是告诉Git你是谁,只是自己用的话随便填也行,但建议用真实信息。 --- ## 三、Git核心概念 - **工作区**:你正在编辑的文件所在的文件夹。 - **暂存区**:一个临时存放区,你要把想保存的改动先放在这里,然后才能正式提交到版本库。暂存区的东西可以随时增删,方便你临时改动。 - **版本库**:真正保存提交记录和所有文件的地方。 - **提交**:一次上传+保存,把暂存区的内容永久记录下来,成为版本库的内容。 核心流程就是:改文件 → 加到暂存区 → 提交到版本库。 --- ## 四、常用操作 - 注:如果你使用VS等IDE或者VS Code等富文本编辑器,一般会自带Git管理工具,不用你直接输入指令,直接点UI上的按钮就行。但你只是不需要手动输入命令,仍然需要掌握命令的具体功能和含义。 ### 1.创建一个新仓库 进入你的项目文件夹,在这个目录下打开终端,执行: ```bash git init ``` 这会在这个文件夹里创建一个 `.git` 目录(在Windows上会直接显示出来,其他UNIX/UNIX-like系统会隐藏),从此它就被Git管理了。 ### 2.查看当前状态 ```bash git status ``` 它会告诉你哪些文件改了、哪些还没提交。不知道下一步该干嘛时就敲它。 ### 3.把改动加入暂存区 ```bash git add 文件名 # 添加某个文件 git add . # 添加所有改动 ``` 这样就会把文件丢到暂存区。 ### 4. 提交 ```bash git commit -m "说明这次改了什么" ``` 引号里写简短说明,比如 `"修复登录按钮失效"`。提交之后就会,暂存区里的东西就会变成版本库里的东西。 ### 5.查看历史 ```bash git log # 详细历史 git log --oneline # 一行一条格式的历史 ``` --- ## 五、和远程仓库配合 ### 1. 把本地仓库连到远程,上传本地文件到远程 先在Git服务器(可以是Github,或者任意Git服务器)上新建一个空仓库,然后执行: ```bash git remote add origin 仓库地址 git branch -M main git push -u origin main ``` 之后每次上传文件只需要执行: ```bash git push ``` ### 2. 把远程仓库的内容复制到本地 ```bash git clone 仓库地址 ``` 这样就可以把服务器上保存的文件,全部一股脑地下载下来。 ### 3. 拉取别人的更新 ```bash git pull ``` 如果你的本地仓库落后于远程仓库,就需要使用这个命令,来更新你自己的本地仓库。 --- ## 六、创建和合并分支 分支让你在不影响主干的情况下进行修改。类似于你要开发一个软件的测试版,但是又不希望影响已经有的正式版,就需要创建分支。等你觉得这个测试版已经够稳定了,就可以把它的更新内容扔进正式版(合并分支到主干)。以下是它常用的命令: ```bash git branch # 查看所有分支 git branch 新分支名 # 创建新分支 git checkout 分支名 # 切换你要的分支 git checkout -b 新分支名 # 创建并切换你要的分支 ``` 合并分支的命令: ```bash git checkout main #先切换回主干 git merge 要合并的分支名 ``` --- ## 七、后悔药:撤销操作 如果你改乱了文件,想还原: ```bash git checkout -- 你要还原的文件名 ``` 如果你是已经 `git add` 了,想撤回暂存区的内容: ```bash git reset 要撤回的文件名 ``` 如果你已经 `git commit` 了,想撤销这次提交但保留改动: ```bash git reset --soft 提交编号 ``` 如果想彻底回滚到某次提交(相当于还原回旧版本的备份): ```bash git reset --hard 提交编号 ``` 提交编号用 `git log --oneline` 查看。 --- ## 八、日常最典型的一套流程 ```bash git pull # 先从远程仓库拉取最新代码 # ...然后你疯狂在本地仓库里改代码... git status # 看看改了啥 git add . # 全部加入本地的暂存 git commit -m "完成登录功能" # 把本地的暂存正式保存到本地的版本库 git push # 把你的更新上传到远程仓库,这样别人也能下载更新了 ``` 记住这五步,80% 的日常使用就够了。但是大型合作项目,由于人数众多,你提交的git push别人不一定能马上下载,反之同理。这个时候就需要开分支,大家各改各的,互相不干扰,最后分别合并回主干即可。 --- ## 九、常见问题 **push 时要求输入账号密码?** 现在GitHub不支持密码推送,需要用 Personal Access Token(在 GitHub 设置里生成)代替密码。 如果不是Github,就用你在这个Git服务器里注册的账号和密码就行。 **文件冲突了怎么办?** `git pull` 或 `merge` 时如果提示冲突,打开冲突文件,会看到 `<<<<<<<` 和 `>>>>>>>` 标记,手动选择保留哪部分,删掉标记,然后重新`git add` + `git commit`就可以了。 **提交信息写错了想改?** 非常简单: ```bash git commit --amend -m "新的说明" ``` **不想让某些文件被Git管理?** 在项目根目录建一个 `.gitignore` 文件,把文件名或文件夹写进去,比如: ```bash node_modules/ #某个文件夹下的所有文件 *.log #所有的某个类型的文件 .env #某个特定的单个文件 ``` --- ## 十、学习建议 1. 先在自己的文件夹里反复练 `add / commit / log / status`。 2. 熟练后再连接到Git服务器练习 `push / pull / clone`。 3. 遇到报错先别慌,把报错信息读一遍,多数提示已经告诉你该怎么做。实在不行就扔给AI。 Git的命令很多,但日常真正高频的就上面这几个。先把这套流程跑顺,剩下的用到再查文档即可。