git常用场景记录 | 拉取远程分支A合并到本地分支B - 删除上一次的commit

git常用场景记录

doing,最后更新9.5

拉取远程分支A合并到本地分支B

需求描述
在团队合作时,我自己的本地分支B功能已经实现并合并到feature,之后发现别人的代码也合并到了feature。为了防止以后实现其他功能,合并到feature时产生冲突,决定拉取最新的feature并合并到本地分支B。

实现步骤

1.git checkout feature 本地切换分支到feature
2. git pull 拉取远程分支,确保当前分支是最新代码
3. git checkout B 切换到自己的分支
4. git merge feature 将feature分支合并到自己的分支

本地分支B存在未add与commit的代码

需求描述
我们正在本地分支B开发的时候,发现有一个之前版本的bug,并且在分支feature的新版本已经更新。我们想把feature版本的更新合并到本地分支B上。

实现步骤
1.git stash -u在分支B上暂存工作区代码
2.git checkout feature 本地切换分支到feature
3. git pull 拉取远程分支,确保当前分支是最新代码
4. git checkout B 切换到自己的分支
5. git merge feature 将feature分支合并到自己的分支
6. git stash pop 在分支B上恢复工作区

删除上一次的commit

已经push到远程库

需求描述

1.在commit代码后提交到远程库,经上级审核后,存在代码规范问题,所以需要重新修改后提交。但是由于代码实现的是一个功能,而且代码修改了的地方很少,所以向将上一次的提交删除后,重新提交。

2.在commit代码后提交到远程库后,发现有一些本地配置文件一起上传了,所以想删除上一次的commit,重新提交。

需求分析
1.需要保留本地修改后的代码,工作区代码不变
2.由于已经push到远程库,相等于需要回退到上一个版本并删掉远程库的本版本

实现步骤
1.git relog 查看需要回退的commithash(上一次提交的commithash为A,所以需要回退到A之前的一个版本)
2.git reset --soft commithash 回退到指定版本并保持工作区代码不变。

由于工作区代码不变,所以commit之后的其他很多版本修改仍然存在。提交的时候会把不属于自己的代码提交。所以可以舍弃掉其他版本的修改,然后重新执行【本地分支B存在未add与commit的代码的步骤】

3.重新add commit
4.由于本地库回退之后,版本低于远程库(远程库最新版本是我们想删除的),所以使用git push -f强制将本地库提交到远程库

猜你喜欢

转载自blog.csdn.net/qq_41370833/article/details/132576772