diff --git a/Git教程.md b/Git教程.md new file mode 100644 index 0000000..42f4e55 --- /dev/null +++ b/Git教程.md @@ -0,0 +1,227 @@ +# 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的命令很多,但日常真正高频的就上面这几个。先把这套流程跑顺,剩下的用到再查文档即可。