Git合并提交的完整记录以及回滚已提交的commit

1. 前言
  • 公司开发里面经常存在这样的情况:
  1. 自己开发进度慢了,本来应该属于上一个迭代上线的功能,需要到下一个迭代才能上线了。
  2. 由于每个迭代的版本号不同,上一个迭代是2.1.2的话,下一个迭代就叫2.1.3了,自己个人开发分支develop-2.1.2-sunrise就应该更名为develop-2.1.3-sunrise
  • 按照团队规范,自己应该将develop-2.1.2-sunerise分支先与master分支进行合并,更改分支命名为develop-2.1.3-sunrise然后继续进行开发和提交。
2. 将远程分支合并到本地分支
  • 先查看远程仓库
git remote -v

在这里插入图片描述

  • 发现远程仓库的名字为origin,使用如下命令获取远程仓库master分支的代码到本地,并命名为temp
git fetch origin master:temp
  • 查看temp分支与本地分支的不同,因为自己改动的地方集中在某个目录,所以只比较了该目录的不同
git diff temp server/src/main/java/server/
  • 在本地分支上合并temp分支,如果存在冲突自行解决冲突(幸运的是自己没有冲突)
git merge temp
  • 删除为了合并所创建的temp分支
git branch -d temp
3. 更改本地分支命名
  • 自己的开发分支目前并没有对应的远程分支,所以只需要更该本地分支的命名为develop-2.1.3-sunerise即可。
git branch -m develop-2.12-sunrise develop-2.1.3-sunrise
  • 如果已经将本地分支推送到了远程分支,这时操作比较复杂,具体参考:git修改分支名称
  • 大概的步骤就是:
git branch -m # 修改远程分支对应的本地分支名
git push  --delete # 删除远程分支
git push # 将本地分支上传到远程分支
git branch --set-updteam-to # 关联远程与本地分支
4. 提交本地分支到远程
  • 查看本地的更新:
git status

在这里插入图片描述

  • 本地对license.json文件进行了修改,查看修改的具体内容,以确定更新无误。
git diff web-console/licenses.json
  • 提交更新
git add web-console/licenses.json # 一项一项的提交
git add . #将not staged的更新全部提交,不建议使用
  • 添加更新说明
git commit -m '添加日志,打印查询内容'
  • 提交本地分支到远程分支,我的远程分支和本地分支命名一致:
git push -u origin develop-2.1.17.1-sunrise:develop-2.1.17.1-sunrise

参考链接:
git远程分支与本地分支合并
git合并远程分支到本地分支

5. 撤销已提交的commit
  • 有时候经常容易出现这样的情况:
  1. 代码已经进入服务器部署了,服务器部署发现有问题,于是尝试修复问题。但是由于不确定此次修复是否能成功,需要提交一些脏代码进行测试
  2. 或者,自己实现了某个功能,老板突然说不做这个功能。但这个功能更改了很多文件,已经无法手动完成相关代码删除或注释了
  • 这些已经commit并且push到远程的提交,就需要被回滚
  • 如果本地无需保留此次commit,回滚方式如下:
git log  # 查看commit的id,找到自己回退后想要处于的commit
git reset --hard commit_id # 强制将缓存区和工作目录都回退到指定的提交
git push origin branch_name --force  # 将本地回退同步到远程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值