主要内容
介绍branch,checkout, Switch,Log ,Stash等5个进阶命令的使用。
1.branch
Branch :git-branch - List, create, or delete branches
功能:列出分支,创建分支,删除分支
2. checkout
checkout :Switch branches or restore working tree files。
功能:主要用来切换分支;同时也可以起到撤销修改的功能,用指定提交记录中内容
恢复工作区和暂存区
(1)切换分支:git checkout [<branch>]
(2)撤销功能
git checkout [<commit>] [--] <paths>
使用cimmit提交的记录,恢复path中的内容 (暂存区和工作区都会恢复)
准备工作:
1>刚开始study_checkout.c中存在内容1,2,3,4,5,6,7,8
2>修改后内容:1,2,3,3,5,6,7,8并添加到暂存区
3> 修改内容:1,2,3,3,5,6,7,3但是并未添加到暂存区
恢复暂存区和工作区内容:执行命令,git checkout [<commit>] [--] <paths>
其中--path是用以指明恢复的文件,如果想对所有的文件进行恢复,path用.替换即可。
验证结果如下:
如果仅仅是想恢复工作区内容:执行命令,git checkout [--] <paths>
3. switch
Switch:switch branches
功能:切换分支
背景:由于checkout承担的职责过多(切分支和恢复工作树),git 2.23
版本新增了switch、restore命令,命令则专门用来切换分支、创建
并切换分支等
(1)切换分支
在切换分支前,必须确保暂存区和工作区相关修改被提交或者暂存起来,否则分支
切换不过去,详见下图。
下面先用stash暂存修改内容,然后使用命令git switch [分支名]再切换分支,
详见下图。
注:
1.切换分支前的内容想要丢弃,使用命令
git swicth --discard-changes[分支名]即可。
2.切换分支并希望将当前修改的内容,合并到新的分支上,使用命令
git switch --merge [分支名]
(2)创建新分支
1.基于当前节点(提交)创建新的分支使用命令git switch -c [分支名]
2.基于某次节点(提交)创建新的分支使用命令git switch -c [分支名] [commit id]
4. log
log: Show commit logs
功能:显示提交记录
(1)查看详细提交历史记录
命令:git log
(2)以精简模式显示log记录
命令:git log --pretty=oneline
(3)显示文件更改列表
命令:git log --stat
(4)显示某个作者的提交记录
命令:git log --author= 'name' 显示某个作者的日志
示例:略
(5)查看某个文件的详细修改
命令:git log -p filepath
5. stash
功能:将工作区中修改的内容贮藏起来
应用场景:当你在本地正在增加一个功能,代码写到中途的时候,突然有
个紧急bug要处理,这个时候不能切换 分支但又不愿额外增加
一次提交,通过stash命令可以先将正在修改的内容缓存起来,
等处理完这个问题后,再执行stash pop命令就可以将之前保存
内容恢复
环境准备:修改study_checkout.c中内容1 2 3 3 5 7 8 ->
1 2 3 4 5 7 8
(1)Git stash save "name":以name名字将修改的内容贮藏起来,name以可以省略
(2)Git stash list:查看贮藏列表
(3)Git stash pop:恢复最后一次贮藏起来的内容到工作区,并将该次贮藏从贮藏列表中删除
(4)Git stash show:git stash show stash@{i} -p 详细显示第i次存储的改动。
下图中进行了三次stash操作,查看第2次存储的改动。
(5) Git stash apply:git stash apply stash@{i} -p
从贮藏列表中将第i次贮藏的内容恢复到工作区,但是该次贮藏不会从贮藏列表中删除
(6)Git stash drop:git stash drop stash@{i} -p 从贮藏列表中丢掉第i次贮藏内容
(7)Git stash clear:清贮藏列表