第一章 git是个什么玩意?
版本控制
安装
下载
初次使用Git前的配置(注意)
git config --global user.name " 用户名"
git config --global user.email "邮箱"
第二章 理论基础
1 git记录的是什么
git是将每个版本独立保存
2 三个文件
工作区域 WorkingDirdctory
暂存区域 Stage(index)
git仓库 Repository
Git的工作流程
1 在工作目录中添加、修改文件
2 将需要进行的版本管理的文件放入暂存区域
git add filename
- 将暂存区域的文件提交到Git仓库
git commit -m "提交说明"
Git管理的文件有三种状态
- 已修改(modified)
- 已暂存(staged)
- 已提交(committed)
第三章 查看工作状态和历史提交
查看状态
git status
通过提示,写相应的操作
(提示里有相应的操作指令)
例如
场景一
你修改了工作区的文件,没有添加到暂存区
QQ截图20170802152018.png
git add 就是告诉你提交到暂存区
git checkout -- <file> 就是把暂存区的文件覆盖到工作区(危险)
场景二
添加到了暂存区,然后修改了工作区文件
绿色指的是暂存区的操作
红色指的是工作区的操作
查看历史提交
git log
题外:LICENSE文件是版权声明用
第四章 回到过去
reset 和 checkout
QQ截图20170802154355.png快照>版本
回滚
reset命令的选项
git reset --mixed HEAD~ (默认 --mixed可以不用写)
- 移动HEAD的指向,将其指向上一个快照
- 将HEAD移动后指向的快照 回滚到暂存区域
git reset --soft HEAD~
- 移动HEAD的指向,将其指向上一个快照
//场景 修改一次错误的commit
git reset --hard HEAD~ (危险)
- 移动HEAD的指向,将其指向上一个快照
- 将HEAD移动后指向的快照回滚到暂存区域
- 将暂存区域的文件还原到工作目录
回滚指定快照
git reset 版本快照的ID号
回滚个别文件
git reset 版本快照 文件名/路径
往前滚
git reset 版本快照的ID号
第五章 版本对比
终端命令 mkdir 文件夹名 创建文件夹
比较暂存区域与工作目录
git diff
QQ截图20170802162928.pnga是暂存区文件
b是工作区文件
---表示没有变化
+++表示变化
+绿色 新加的
白色 是共有的
移动指令
j键 上移动一行
k键 下移动一行
f 下一页
b 上一页
d 半页
u 半页
3g 跳到哪一行
搜索
/ 关键词
q 是退出
比较两个历史快照
git diff 快照ID1 快照ID2
比较当前工作目录和Git仓库中的快照
git diff 快照ID(HEAD当前)
比较暂存区和Git仓库中的快照(不加id为当前 )
git diff --cached 快照ID
终极密图第六章 修改最后一次提交,删除文件和重命名文件
-
修改最后一次提交
场景一:版本刚一提交(commit)到仓库,突然 想起漏掉两个文件还没有添加(add)c
场景二:版本刚一提交(commit) 到仓库,突然想起版本说明定得不够全面,无法彰显你本次修改的重大意义。。。
执行带 --amend 选项的提交命令,Git应会“更正”最近的一次提交。
git commit --amend
进入一个编辑区
i 键 插入
:+q +!退出不保存
esc +shift +z+z 保存退出 -
删除文件 (彻底删除一个文件)
1 git rm 文件名- 该命令删除的只是工作目录和暂存区域的文件,也就是取消跟踪,在下次提交时不纳入版本管理
- 当工作目录和暂存区域的同一个文件存在不同内容时,执行git rm -f 文件名 命令就可以把两个都删除
- 如果只删除暂存区域的文件(保留工作目录的),那么可以执行 git rm --cached 文件名 命令实现 目的
回到过去
2 git reset --soft HEAD~
-
重命名文件
git mv 旧文件名 新文件名
第七章 Git分支
QQ截图20170803085221.png- 创建分支
git branch 分支名
git log --decorate 打印提交的所用引用 (指针) - 切换分支
git checkout 分支名
git log --decorate 打印当前的所用引用 (指针)
git log 只打印当前分支的版本
git log --decorate --oneline --graph --all
--oneline 精简版
--graph 图形的形式
--all 所有版本
第八章 合并和删除分支
QQ截图20170803091421.png- 合并分支
git merge 分支名 将指定的分支合并到当前的分支来
冲突(conflicts): 两个分支中,存在同名的文件,但是文件的内容却不同,git不知道 你要舍弃哪个,保留哪个 ,
可以打开文件修改,git在文件作的两个分支不同的注释,然后add commit , 再合并 - 删除分支
gitf branch -d 分支名
第九章 匿名分支和checkout命令
- checkout命令
网友评论