git stash 与 git cherry-pick

目录

一、git stash(储存)

使用场景:

实际应用:

二、git cherry-pick (代码部分提交转移)    

使用场景

基本用法

常用配置项

代码冲突


一、git stash(储存)

使用场景:

1、当前分支修改了很多代码,需要切到别的分支,我们一般是先commit 到本地仓库,然后去做其他事,但如果我们不想提交当前git分支及留下过多的log记录,就可以使用 git stash,使用git stash后会将当前为提交的代码推到git 栈中,当前的工作环境就会跟上一次提交的完全一样,切换分支修改问题提交后返回该分支 执行: git stash apply 将存储代码拉回来

2、保存代码只是为以后自己查阅,不想增加一个脏的提交内容

实际应用:

  1. 可以通过 git stash save 'test1' 取代git stash 以记录版本
  2. git stash list 查看所有存储记录  
  3. git stash pop 功能类似于 git stash apply, 但会删除最近一次的 stash 记录
  4. git stash drop /  git stash clear 删除缓存stash
    $ git stash list
    stash@{0}: WIP on master: 049d078 added the index file
    stash@{1}: WIP on master: c264051 Revert "added file_size"
    stash@{2}: WIP on master: 21d80a5 added number to log
    $ git stash drop stash@{0}
    Dropped stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43)
    
  5. git stash branch test  基于 stash 新建分支 新建test 分支, 丢弃储藏
  6. git stash 会缓存 暂存区(git add)staged 修改 和 本地修改 ,  不会缓存 新建文件ignored 文件,如果想缓存上面两种类型文件可以执行以下命令
    git stash -u 或者 --include-untracked   存储新建文件
    git stash -a 或者 -all  存储所有修改

二、git cherry-pick (代码部分提交转移)    

使用场景

你只需要部分代码变动(某几个提交)合并到另外一个分支

tips:  git log  查看当前分支的所有提交
         git show / git show commitHash  查看提交代码详情      

基本用法

git cherry-pick <commitHash>    会在当前分支创建一个 新的 hash 提交

git cherry-pick <branchName>    合并分支的最新一次提交

git cherry-pick <HashA> <HashB>  转移多个提交

git cherry-pick <HashA>..<HashB>  转移多个连续提交 (不包含A)

git cherry-pick <HashA>^..<HashB>  转移多个连续提交 (包含A写法)

常用配置项

-n / --no-commit  只更新工作区和暂存区,不产生新提交

代码冲突

1、代码冲突后,解决冲突将代码重新加入暂存区 (git add .) 后让 cherry-pick 继续执行

        git cherry-pick --continue

2、冲突后放弃合并,回到操作前

        git cherry-pick --abort

3、退出 cherry pick ,不回退合并

        git cherry-pick --quit      

三、git reset

用于回退代码
git reset --hard commitId   强行回退不记录提价历史,但是不允许提交

git reset --soft commitId   可以通过这种方式 回退代码,后执行git commit -m "代码回退至..."

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值