git 优势
- 大部分操作在本地完成,不需要联网
- 完整性保证
- 尽可能添加数据而不是删除或修改数据
- 分支操作非常快捷流畅
- 与linux命令全面兼容
git 结构
工作区(写代码)
暂存区(临时存储)
本地库(历史版本)
git 基本原理
哈希加密 文件比较
git 代码托管中心
1. 本地库
2. 远程库
git 基本命令
- 本地库初始化 .git存放的是本地库相关的子目录和文件
git init
- 签名的设置
git config user.name tom # 设置项目级别的签名 保存在 .git/config 文件中
git config user.email xxxx@xxx.com
git config --global user.name tom # 设置系统级别的签名 保存在家目录的 .git/config 文件中
git config --global user.email xxxx@xxx.com
- 基本操作
git status # 查看工作区和暂存区的状态
git add [file] # 将file添加到暂存区
git rm --cached [file] # 将file从暂存区删除
git commit [file] 将file从暂存区提交到本地库
-m "******" 添加备注
git log # 完整查看历史信息
--pretty=oneline # 一行打印log
--oneline # 简洁打印log
git reflog # 显示 HEAD
- 版本控制
git reset --hard [HEAD] # 指定版本(基于索引值HEAD操作)
git reset --hard HEAD^ # 只能回退一个版本 一个 ^ 回退一个版本
git reset --hard HEAD~[3] # 回退3个版本
--soft # 只对本地库修改
--mixed #在本地库修改、重置暂存区
--hard # 在本地库中修改、重置暂存区、重置工作区
- 比较文件
git diff [file] # 将工作区的文件和暂存区进行比较
git diff HEAD [file] # 将工作区的文件和本地库中历史文件进行比较
git diff # 比较工作区中的所有文件
- 分支管理
git branch [分支名] # 创建分支
git branch -v # 查看分支
git checkout [分支名] # 切换分支
git merge [分支名] # 合并分支
- 远程管理
git remote -v # 查看 remote
git remote add [别名] [地址] # 创建 remote
git push [别名/地址] master # 推送操作
git clone [别名/地址] master # 下载
git fetch [别名/地址] master # 拉取
git merge [别名/地址] master # 合并
git pull [别名/地址] master # fetch + merge