git cherry-pick,revert,reset,生成patch

在本地 master 分支上做了一个commit ( 38361a68138140827b31b72f8bbfd88b3705d77a ) , 如何把它放到 本地 old_cc 分支上? 

需要先切到old_cc分支上然后git cherry-pick <commit id>,commit id为需要提交代码的commit_id,

这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:

        git commit --amend 来对commit进行修改。然后git push即可完成!

git  revert <commit id>回退提交的代码,然后git push即可生效

git reset --hard强制将本地代码还原至上次拉的节点只要不操作git push没事!

git reset --hard  commit_id 强制将本地代码还原至某个节点

 

回退并且更新整套代码:

repo forall -c git clean -fd && repo forall -c git reset --hard HEAD && repo sync

 

git checkout的主要功能就是迁出一个分支的特定版本。默认是迁出分支的HEAD版本

示例:

git checkout master     //取出master版本的head。

git checkout tag_name    //在当前分支上 取出 tag_name 的版本

git checkout  master file_name   //放弃当前对文件file_name的修改

git checkout  commit_id file_name (或者路径)//取文件file_name的 在commit_id是的版本。commit_id为 git commit 时的sha值。

生成patch

之前提交的记录

git log <== to git the previous commit hash code.

git format-patch -s 38361a68138140827b31b72f8bbfd88b3705d77a

 

或者使用

git format-patch HEAD^ <==最近的1次commit的patch

git format-patch HEAD^^ <==最近的2次commit的patch

git format-patch HEAD^ <==最近的3次commit的patch

git format-patch HEAD^ <==最近的4次commit的patch

将补丁打上去。

patch -p1 < 0001-Added-xxxx-test.patch

注: 0001-Added-xxxx-test.patch为想要打的补丁的名字。运行该命令需在git项目的要目录下。

 

强制还原更新代码

repo forall -c git clean -fd && repo forall -c git reset --hard HEAD && repo sync -j24

 

git show COMMIT_ID: 看某笔patch

git revert COMMIT_ID: 将某笔patch还原

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值