Git之IDEA集成Git更新项目Update Type选项解释

Update Type选项框

  • Update Project
    IDEA2017右上角快捷键更新项目

Update Type选项

选项介绍

  • Merge(合并)

    采用合并的方式来更新代码,此时会产生一个commit,这也是一般常用的默认的操作,这个的好处是能够在log中看到所有的操作记录,但是对于代码洁癖来说,可能会无法接受

    结果等同于执行git pull(git fetch + git merge)

  • Rebase(重定)

    就是所有的本地commit都是默认放到远程的commit记录的顶部,log也只会有一条记录线,简洁,但是有时候排查问题会不方便。

    结果等同于执行git pull --rebase(git fetch + git rebase)

  • Brance Default

    每个分支都可以设置自己的update方式,可以在config中设置,这个是选择分支默认的方式。

    此选项用于选择应用分支的默认命令,default branch在.git/config配置文件中指定

命令介绍

  • 分支操作

    
        # 创建分支
        git checkout -b 新分支名字
    
        ## 等同于
        git branch 分支名    ### 创建分支
    
        git checkout 分支名  ### 切换到分支
    
        git branch          ### 查看当前分支信息
        
        ## 基于远程分支"origin"创建一个"mywork"分支
        git checkout -b mywork origin
    
    
        # 合并分支
        
        ## 切换到test分支
        git checkout test
    
        ## 提交到版本库
        git commit -m '备注信息'
    
        ## 将test分支合并到当前分支
        git merge test 
    
        git rebase test
    
        git merge --no-ff -m '备注信息' test ## 合并分支时加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,通过git log查看
    
        # 删除分支
    
        ## 删除test分支
        git branch -d test
       
    
    

使用场景

  • 工作原理图
    Merge与Rebase工作原理图

  • Merge

    合并另外一个分支的内容。例如当成员代码开发完成时,可以把该成员分支merge到主分支上,当然需要手动解决冲突,merge后,分支就不存在了,但是在Git的所有分支历史中还能看到分支信息

  • Rebase

    合并另外一个分支的内容,但是会把本分支的commits顶到最顶端。单独使用rebase,有调整当前分支上commits的功能(合并,丢弃,修改commites msg)

举例说明

  • 样例一

    目前有3个分支:

    1. master分支:线上环境使用的分支

    2. test分支:测试环境使用的分支

    3. my_feature:开发新功能的分支,也就是当前分支

    开发情况:

    1. 假设我在my_feature上开发了一段时间,之后另外的同事开发的功能正式上线到master分支,那么我可以在当前分支下rebase一下master分支,这样我的这个分支的commits相对于master还是处于最顶端的,也就是说rebase主要用来跟上游同步,同时把自己的修改顶到最上面

    2. 我在my_feature上开发了一段时间,想要放到testing分支上,那就切到testing,然后merge my_feature到当前testing分支,因为是个测试分支,commits的顺序无所谓,也就没必要用rebase

总结

  • 不同

    1. merge结果能够体现出时间线,但是rebase会打乱时间线

    2. rebase看起来简洁,但是merge看起来不简洁

  • 相同

    1. 最终结果都是把代码合并,具体怎么使用这两个命令看项目需要
  • 其他

    1. 项目中经常使用git pull来拉取代码,git pull相当于是git fetch + git merge;如果此时运行git pull -r,也就是git pull –rebase,相当于git fetch + git rebase

参考链接

  • Idea获取git仓库时更新类型update type 的选择

    https://icode.blog.csdn.net/article/details/95956109

  • Git分支merge和rebase的区别

    https://www.cnblogs.com/zhangsanfeng/p/9575184.html

  • 14
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IDEA中,可以使用git pull命令来更新代码。git pull相当于是git fetch + git merge,它会从远程仓库拉取最新的代码并合并到本地分支中。如果想要使用git pull -r,也就是git pull --rebase命令,相当于git fetch + git rebase,它会将本地的提交应用到远程分支的最新提交之上。更新代码非常重要,如果不进行更新,别人有项目提交到服务器上,你的项目将无法提交上去。使用git解决冲突可能会比较麻烦,而且有时候不注意会冲掉别人写的代码。因此,在提交自己的项目之前,必须进行更新操作。在IDEA中,可以选择pull进行更新代码操作,然后将代码add到暂存区,最后才能真正提交到git仓库。 #### 引用[.reference_title] - *1* [GitIDEA集成Git更新项目Update Type选项解释](https://blog.csdn.net/weixin_42586723/article/details/107103461)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [IDEAGit更新/提交/还原方法](https://blog.csdn.net/MZ199290/article/details/122648181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值