• [每周一更]-(第69期):特殊及面试的GIT问题解析


    在这里插入图片描述

    整合代码使用过程的问题,以及面试遇到的细节,汇总一些常用命令的对比解释和对比;

    1、fetch和pull区别

    git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
    git pull则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

    2、可以作为一套面试及、如何处理一个或一系列相连的分支feature提交的commits 合并到master分支;

    (1)合并非master中某个commit提交到master分支中,用git cherry-pick命令,
    git checkout master
    git cherry-pick 22ecb3(提交记录 git log 查看)
    也可以合并一系列:
    git cherry-pick A…B (提交 A 必须早于提交 B)
    git cherry-pick A^…B (包含A当前分支)

    (2)当需要合并一系列commit时,就需要用到rebase
    首先需要基于feature创建一个新的分支,并指明新分支的最后一个commit:
    git checkout -b newbranch 22ecb3
    然后,rebase这个新分支的commit到master(–ontomaster)。76cada^ 指明你想从哪个特定的commit开始。
    git rebase --onto master 11cada^

    得到的结果就是feature分支的commit 22ecb3 ~ 11cada 都被合并到了master分支。

    回退上个版本:git reset --hard HEAD^

    3、当master分支合并了其他分支内容,想去除?(很棒的方式)

    (1) 先查看提交记录, git log --pretty=oneline
    (2)用【git reset】回到出错版本的上一个版本 :git reset --hard 3c2af5a7(表示错误前的一个版本)

    (3)用【git cherry-pick】把出错版本后面的commit合并进去;git cherry-pick 9dba07f4^…32aba548
    #出错版本后的第一个commit直至最新commit或者使用单次合并 git cherry-pick 9dba07f4
    #将某次commit的更改应用到当前版本(将出错 cmmit 之后别人提交的代码合并到当前正常代码分支上)
    栗子:git cherry-pick 396c2fd9^…aafc97e3

    (4)如果在cherry-pick 的过程中出现了冲突 ,在处理冲突后,使用 git cherry-pick --continue

    (5)继续处理下一个分支 如果想中途退出cherry-pick,使用 git cherry-pick --abort

    (6)合并冲突后,使用强制推送把旧分支进行覆盖 :git push origin HEAD:commitName(当前版本名) --force
    git push origin HEAD --force #强制提交

    查看更多

  • 相关阅读:
    RunnerGo:让你的性能测试变得轻松简单
    删除数据表
    聊聊分布式架构07-[Spring]IoC和AOP
    qDebug().noquote()、qDebug().nospace()和 DEFINES+= QT_NO_DEBUG_OUTPUT作用
    Vue-组件及组件间的通信方式
    【蓝桥杯省赛真题41】Scratch电脑开关机 蓝桥杯少儿编程scratch图形化编程 蓝桥杯省赛真题讲解
    [ Windows ] ping IP + Port 测试 ip 和 端口是否通畅
    香港本地物流业发展情况
    java基于springboot校园餐厅订餐管理系统
    C# 读写TXT文件
  • 原文地址:https://blog.csdn.net/hmx224_2014/article/details/134074953