针对开发过程中经常遇到的场景进行分类,也是方便自己记忆
1.在开发过程中,别人推送了新分支到远程仓库,但是自己本地没有,并希望同步更新时
2.删除本地和远程的指定分支
先切到其他分支: git checkout branch
先删除本地分支: git branch -d branchName
查看本地分支是否删除: git branch -a
删除远程分支: git push origin -d branchName
3.将指定分支的代码回滚到指定节点
介于在开发中有多版本的迭代周期进行时,误将开发中的代码合并(merge)到了发布分支上
1.在git上找到需要回滚的版本号
2.git checkout yourbranch //切换到需要回滚的分支
3.git reset --hard 6b3884f558573c225d8b95b25e076c831fe5e0fb //核心步骤,回滚到指定版本
4.git push -f //推送到远程分支(git push可能会出错)
4.给指定分支打标签(默认在最近的一次提交中)
1. git checkout yourbranch //切换到需要打标签的分支
2. git tag -a v0.1.2 -m “0.1.2版本” // 创建附注 tag (附Tag名。参数m指定Tag说明)
3. git push origin v0.1.2 //将 tag 推送到远程分支
5.给某个commit指定节点打标签(补打tag)
1. git checkout yourbranch //切换到需要打标签的分支(查看指定commit的信息)
2. git tag -a v0.1.1 9fbc3d0 // 创建附注 tag
3. git push origin v0.1.2 //将 tag 推送到远程分支
6.在某个分支的基础上创建临时分支并推送到远程
1. git checkout yourbranch //切换到需要创建临时分支的分支
2. git branch temporaryBranch //此时本地已经创建好了临时分支
3. git checkout temporaryBranch //切换到临时分支
4. git push origin temporaryBranch //推送临时分支到远程
7. 突发遇到git服务器迁移
git remote set-url origin + 新地址 //替换git地址
8. 压缩合并(将A分支的代码merge到B分支上,并且只需要一个commit节点)
1. git checkout B //切换到B分支
2. git merge --squash A // 核心步骤,压缩合并所有commit 节点
3. git commit -m "此次合并需要说明的内容"
4. git push origin B //推送分支到远程
9. 远程删除了某些分支,本地也想删除
1. git branch -a // 查看远程分支,红色的是本地远程远程分支记录。
2. git remote show origin // 查看远程仓库分支和本地仓库的远程分支记录的对应关系
3. git remote prune origin // 删除远程仓库已经删除过的分支
5. git branch -a // 验证
10. 将A分支的某个commit 合并到 B分支
1. git log // 先切换到A,查看指定的commit。
2. git checkout B // 再切换到B分支
3. git pick-cherry commitId // 合并指定节点
5. git push // 推送到远程