一、为什么要学Git?
一句话:Git就是代码的"时光机+备份硬盘+协作工具"。
| 问题 | Git怎么解决 |
|---|---|
| 电脑坏了代码没了 | 代码推送到远程仓库(GitHub),永远丢不了 |
| 代码改坏了想回去 | git reset --hard 一键回到任意历史版本 |
| 多人同时改一个文件 | 各自在自己的分支上改,互不影响,最后合并 |
| 不知道谁写的Bug | git log 查看每次提交的记录和作者 |
二、集中式 vs 分布式
| 类型 | 代表 | 特点 |
|---|---|---|
| 集中式 | SVN | 代码存在中央服务器,断网不能干活 |
| 分布式 | Git | 每台电脑都有完整仓库,断网也能提交,联网后同步 |
三、Git 工作流程图
工作区(写代码的地方) → git add → 暂存区(准备提交的文件) → git commit → 本地仓库(保存历史版本)
↓
git push
↓
远程仓库(GitHub)
七个核心命令:
| 命令 | 方向 | 作用 |
|---|---|---|
git clone |
远程 → 本地 | 把远程仓库复制到本地 |
git add |
工作区 → 暂存区 | 把修改加入暂存区 |
git commit |
暂存区 → 本地仓库 | 把暂存区内容提交到本地仓库 |
git push |
本地 → 远程 | 把本地仓库推送到远程仓库 |
git pull |
远程 → 工作区 | 拉取远程更新并合并 |
git fetch |
远程 → 本地仓库 | 只拉取不合并 |
git checkout |
本地仓库 → 工作区 | 切换分支或恢复文件 |
四、安装与配置
1. 安装
下载地址:https://git-scm.com/download
安装完成后,桌面右键能看到 Git Bash Here 和 Git GUI Here 就说明安装成功。
2. 配置用户名和邮箱(必须做,每次提交都会记录这个信息)
bash
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
3. 配置别名(可选,但建议配置)
bash
# 简化日志输出
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
# 简化文件列表
alias ll='ls -al'
五、基础操作命令
1. 初始化仓库
bash
git init # 把当前目录变成Git仓库,会生成一个隐藏的.git文件夹
2. 查看状态
bash
git status # 查看哪些文件修改了、哪些在暂存区、哪些还没跟踪
3. 添加到暂存区
bash
git add 文件名 # 添加指定文件
git add . # 添加所有修改的文件
4. 提交到本地仓库
bash
git commit -m "本次提交的说明"
5. 查看提交历史
bash
git log # 详细日志
git-log # 精简日志(需要先配置别名)
git reflog # 查看所有操作记录(包括已删除的提交)
6. 版本回退
bash
git reset --hard commitID # 回到指定版本,commitID用git-log查看
六、忽略文件 .gitignore
有些文件不需要Git管理(日志、临时文件、编译产物),在项目根目录创建 .gitignore 文件:
*.log # 忽略所有.log文件
__pycache__/ # 忽略Python缓存文件夹
*.pyc # 忽略编译后的Python文件
今日核心总结
- Git是分布式版本控制工具:每台电脑都有完整仓库,断网也能提交
- 三步上篮 :
add→commit→push - 时光倒流 :
git reset --hard commitID回到任意历史版本 - 查日志 :
git-log看提交历史,git reflog看所有操作记录 - 忽略文件 :
.gitignore排除不需要版本控制的文件