Git 高级

1 核心

一切皆引用

2 HEAD的本质

当前commit的引用

3 branch的本质

1  commit 的串儿的引用
2  branch包含从初始commit 到当前commit的所有路径。所以branch也是commit的引用。
3  切换分支也就是切换引用。
4  删除分支也就是删除commits
分支合并流程图

在这里插入图片描述

4 checkout的本质

checkout 的本质是签出指定的 commit,
所以你不止可以切换 branch,
也可以直接指定 commit 作为参数,
来把 HEAD 移动到指定的 commit。
应用1:
如上图 ( 分支合并流程图 ) 所示,分支合并之后,如何复制一份原来的master分支呢?
Step 1
git  checkout   < commit D >  
显示
Note: checking out 'ecc98f00bc43638e4200d3dde9284caf5b39860b'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

此时 .git/HEAD 文件的内容为 ecc98f00bc43638e4200d3dde9284caf5b39860b
也就是当前checkout 的 commit

Step 2 使用一个分支将这个commits串儿保存起来
git checkout -b oldmaster
这样未合并之前的master分支就被保存了下来
过程如图所示

在这里插入图片描述

5 tag的本质

参考branch

6 交互式rebase

git rebase -i HEAD^
git rebase -i commitID
本质:  基于分支的变基 和 基于commit的变基本质相同。

7 revert 把写错的 commit 撤销。

git revert <commit-ID>

8 找回删除的分支

git reflog
git checkout <reflog-Id>
git checkout -b <newBranchName>

参考

git --help

git command --help

参考书籍 《Git Pro》《Git 权威指南》

Git 官方文档

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值