《Git 原理详解及实用指南》阅读笔记

用于记录阅读 Git 原理详解及实用指南 之后的笔记备忘。


  1. git merge some_branch 的意思是将 some_branch 这一分支与 HEAD 指向的某一分支合并, HEAD 指向的可以是 master ,也可以是其他 branch
  2. 当只需要合并某一分支的特定部分的 commits 到另一分支时,就可以参考 Git合并特定commits 到另一个分支 这篇文章。根据这篇文章,可以知道,以下图为例,可以只把 5 合并到 master 上,这时 master 上就会出现一个新的 commit 点,使用 git cherry-pick params( params 可以是多个参数,中间用空格隔开就行,记得要先切换到目标分支)
    这里写图片描述
    合并之后,如下图,出现一个新的 commit 点,但是原来 branch1 上的 5 还是会存在。
    这里写图片描述
    而如果需要合并 branch1 上的 67 的到 master 的话(即合并一连串到 commits),就需要先以 branch1 为基础,新建一条分支(假设为 tmp_branch,且要注意先切换到 branch1 分支),使用的命令为
    git checkout -b tmp_branch 7的引用或者SHA-1码(这里的命令在新建了分支之后会直接切换到该分支)
    然后使用命令
    git rebase --onto master 6的引用或者SHA-1码^(这里要注意别落下了 ^ 符号,如果少了就会只把 7 合并到 master,即目标 commit 之后的)
    然后又要切回到 master ,执行
    git merge tmp_branch
    这样就可以了,之后再把 tmp_branch 分支删除即可。(其实这里的操作本质上是涉及到了 git rebase

  3. git reset --soft HEAD^ 中除了 HEAD 和它所指向的 branch1 被移动到 HEAD^ 之外,原先 HEAD 处 commit 的改动也会被放进暂存区,注意到这里是会被存放到暂存区(就相当于执行了 add 但未执行 commit 的状态),然后如果再次commit 到话就又会恢复 reset 之前到样子,除了 commit 时填写的提交信息与 commit 提价后对应的 SHA-1 码会不同。
    --mixed 是相当于执行 add 之前的状态,但是工作区的变化还是在(比如新增了一个文件,commit 之后执行 git reset --mixed HEAD^,文件还是在,但是需要重新 add)。
    --hard 会把工作区的改动也清空(比如新增了一个文件,commit 之后执行 git reset --hard HEAD^, 新增的文件也会被删除)。

  4. 使用 stash 临时存放工作目录的改动,这里需要注意,是临时存放被 add 但是未被 commit 的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值