1. 前言
- 公司开发里面经常存在这样的情况:
- 自己开发进度慢了,本来应该属于上一个迭代上线的功能,需要到下一个迭代才能上线了。
- 由于每个迭代的版本号不同,上一个迭代是
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
- 有时候经常容易出现这样的情况:
- 代码已经进入服务器部署了,服务器部署发现有问题,于是尝试修复问题。但是由于不确定此次修复是否能成功,需要提交一些脏代码进行测试
- 或者,自己实现了某个功能,老板突然说不做这个功能。但这个功能更改了很多文件,已经无法手动完成相关代码删除或注释了
- 这些已经commit并且push到远程的提交,就需要被回滚
- 如果本地无需保留此次commit,回滚方式如下:
git log # 查看commit的id,找到自己回退后想要处于的commit
git reset --hard commit_id # 强制将缓存区和工作目录都回退到指定的提交
git push origin branch_name --force # 将本地回退同步到远程