基本概念
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
Git基础设置
设置用户名和用户邮箱
git config --global user.name 'zzh'
git config --global user.email 'zzh@qq.com'
查看设置
git config --list
Git初始化、暂存、提交
git init 初始化git仓库
git add README.md 将文件添加到暂存区域,此时git开始跟踪文件
git commit -m "add a README.md file" 提交,提交后git会汇报情况
查看状态
git status
– on branch master 在master分支
– nothing to commit, working tree clean
git reset [--soft | --mixed | --hard] [HEAD]
–mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
git checkout
命令用于切换分支或恢复工作树文件。
历史提交
git log
git log --decorate --oneline --graph --all 以图形方式显示
回到过去
工作区 -> add 暂存区 -> commit 版本库
工作区 <- checkout 暂存区 <- reset 版本库
回滚到上一个快照
git reset HEAD~ 回到上一个快照
git reset --mixed HEAD~
– 移动HEAD的指向,将其指向上一个快照 影响版本库
– 将HEAD移动后指向的快照回滚到暂存区域 影响暂存区
git reset --soft HEAD~
– 移动HEAD的指向,将其指向上一个快照 影响版本库
git reset --hard HEAD~
– 移动HEAD的指向,将其指向上一个快照 影响版本库
– 将HEAD移动后指向的快照回滚到暂存区域 影响暂存区
– 将暂存区域的文件还原到工作目录 影响工作区(危险)
回滚指定快照
git reset 版本快照的ID号 还可以往前回滚
回滚个别文件
git reset 版本快照 文件名/路径 head指针不会改变
版本对比
比较暂存区域与工作目录
git diff
比较两个历史快照
git diff 快照ID1 快照ID2
比较当前工作目录和Git仓库中的快照
git diff 快照ID
比较暂存区域和Git仓库中的快照
git diff --cached [快照ID]
实用技巧
修改最后一次提交
执行带 --ammed 选项的 commit 提交命令,git就会更正最近的一次提交
git commit --ammend
删除文件
git checkout -- README.md 恢复文件
git rm 文件名
– 该命令删除的只是工作目录和暂存区域的文件,也就是取消跟踪,在下次提交时不纳入版本 管理。
– 当工作目录和暂存区域的同一个文件存在不同内容时,执行 git rm -f 文件名 命令就可以把两个文件都删除
– 如果只删除暂存区域的文件(保留工作目录的),那么可以执行 git rm --cached 文件名 命令实现目的
重命名文件
git mv 旧文件名 新文件名
Git分支
创建分支
git branch 分支名称
切换分支
git checkout 分类名
合并和删除分支
合并分支
git merge 分支名
如果存在冲突,需要手动解决,即存在同名但不同内容的文件
删除分支
git branch -d 分支名
匿名分支和checkout命令
匿名分支可以做一些实验,搞完切回不会有任何变化
git管理远程仓库
git克隆操作
git clone 仓库地址
将本地仓库同步到远程仓库
git push
Github Pages 搭建网站
访问
搭建步骤
- 新建仓库 (仓库名必须是 用户名.github.io)
- 在仓库下新建 index.html 文件 (仅支持静态网页)