git操作学习记录

90 阅读2分钟

场景:

公司代码库有自动推送dist文件夹到测试环境的功能。有一个改到一半的需求和一个紧急需求,现在的目标是将改到一半的需求保存起来,退回上一个节点去处理紧急需求并打包推送。

正确的处理方式

将未处理完的代码通过stash命令暂存在本地

git stash //快捷存储方式
git stash apply //恢复存储代码

下文是笔者的思考和实践过程

1. 查看分支历史
git log

image.png

commit 单词后面红框里的十六进制字符串,就是git生成的唯一记录编码

2. 退回分支

根据所需回退的分支ID,进行回退

git reset --hard <commitID>
3. 提交回退分支
git push origin <remoteBranchName>
4. - - 此处省略紧急需求的打包与提交 - -
5. 合并分支

找到需要合并的内容

 git cherry-pick <commitID>  // 选择单个分支合并  

image.png

上述过程就是实现目标过程的理想状态,在实际过程中笔者没有成功回退节点,于是便需要在当前节点中删除不需要的节点代码并重新打包,接下来便是如何通过git操作实现的过程。

<-- tips: 这里有个蠢办法就是直接去看变更记录把之前的代码复制保存再提交,本文主要目的是通过git操作实现目标需求 -->

1. git reset <commitID> --hard // 退回某个节点
2. git cherry-pick <commitID>  // 选择单个分支合并  
   git cherry-pick <commit_id>..<commit_idn>  // 选择起始分支段落合并
3. 慎用 git push -f

上述操作成功删除了远程中不需要的节点。也成功的删除了我在远程提交的‘暂存文件’