Git(十)git checkout进阶和stash

一  git checkout进阶

说明: '参数不同',对应的'行为也不同'

++++++++++++'重点理解'++++++++++++

git checkout -- file

原理: '丢弃当前工作目录'的变化,使'丢弃后工作目录的内容'与'上一次暂存区'内容保持一致

①  初始环境

②  所作修改

③  思考1

git checkout -- test.txt 为什么没有变化?

之前'错误'的理解: 丢弃'工作目录的修改'

④  继续修改

⑤  小结

+++++++++'git checkout -- file 两个核心点'+++++++++

1)修改的是'工作目录'

2)相对于'暂存区'最后一次'提交后'的内容做比较

⑥  理解git reset HEAD -- file 

解读: 将之前添加到暂存区('stage'、'index')的内容从'暂存区移除'到工作区

+++++++'分支重命名'+++++++

git branch -m 原名 新

二  checkout 关于commit_id深入探讨

(1)初始条件

(2)需求

(3)git checkout commit_id

++++++++++'重点'++++++++++'

git checkout commit_id -->'处于游离的历史提交点'

(4)此时的log

(5)回退到该commit_id,观察文件是否发生变化

(6)此时所处的分支

(7)尝试修改该commit_id点的信息,不做任何提交,然后切换分支

(8)修改后提交

(9)听从建议

git checkout branch_name commit_id

说明: 创建分支,并将分支指向'commit_id'这个最新的提交点

备注: 分支一旦'创建',信息‘永久保存‘

三  git stash理解

核心: 理解git中'error'和'Wrnings'信息

(1)能切换分支

(2)不能切换

①  初始条件

②  执行动作

继续: 在'test分支'上修改,不提交('add'、'commit'),尝试切换'master'分支

③  应用场景

++++++++++++++'实际需求'++++++++++++++

1)当前正在'feature 1'分支上进行功能开发,'代码写一半'

2)此时有'紧急需求',需要在'feature 2'分支上进行'bug'修复

3)此时是'无法直接切换'的

++++++++++++++'尝试方法1'++++++++++++++

笨办法: 进行一次'commit'

备注: 不符合'日常开发原则'的,凡是'commit'的都应该是'正确的'或是'测试通过'的

++++++++++++++'最佳实践'++++++++++++++

1)将该'feature 1'分支修改'临时保存'下来

2)切换'feature 2'分支,完成开发

3)切换'fature 1'分支,把之前的保存'恢复过来'

1)临时保存 

2)git stash相关命令

3)方式1恢复临时保存的内容

4)方式2恢复临时保存的内容

冲突的原因: '同时修改'第五行,导致'合并冲突'

备注: '解决冲突',进行'提交'之后,'git stash list'历史不会发生变化

④  小结

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值