idea使用git更新代码 : update project(git merge、git rebase)
idea使用git更新代码 :
选中想要更新的项目,右键点击 git => repository => pull
这样使用一次后idea会自动建立选中分支的远程跟踪分支,以后可直接点击下图按钮,不需要再选分支,除非要拉取另一分支
update project 的两个选项
说明:为避免在前后相对位置懵逼,先讲明越靠后的提交越新,越顶端的提交越新
git merge
git merge b # 将b分支合并到当前分支
图解(主分支master git rebase test)
D---E test
/
A---B---C---F master
使用merge合并:
D--------E
/ \
A---B---C---F----G
工作流
git pull (或fetch && merge)
编辑冲突文件
git pull
git rebase
git rebase 目标分支
rebase:翻译成中文是重新设定
git rebase 你其实可以把它理解成是“重新设置基线”,将你的当前分支重新设置开始点。
rebase会把你当前分支的 commit 放到最后面,将rebase后的目标分支的commit当作基点放在前面,通俗的说就是将目标分支的提交作为你当前分支的基点,所以叫变基
图解(主分支master git rebase test)
D---E test
/
A---B---C---F master
git rebase test合并:
A---B---D---E---C'---F' test, master
如图主分支的基点变成了test的几个commit,可能会覆盖别人代码,所以不要在公共分支使用rebase
工作流
git rebase
while(存在冲突) {
git status
找到当前冲突文件,编辑解决冲突
git add -u
git rebase --continue
if( git rebase --abort )
break;
}
区别
- 两个使用场景是不一样的,merge只是合并目标分支的内容,rebase也合并另外一个分支的内容,但是会把本分支的commits顶到最顶端
- git merge 会生成一个新的合并节点,而rebase不会
使用场景
- 都在同一个分支开发,为了提交记录更好的可读性,用
git pull --rebase origin master
- 开发分支拉取主分支时。为了让你最新开发的提交记录在最前面,也建议用
rebase
假设我们现在有3个分支
- master分支:线上环境使用的分支
- testing分支:测试环境使用的分支
- my_feature分支:开发新功能的分支,也就是当前分支
A. 假设我在my_feature上开发了一段时间,之后另外的同事开发的功能正式上线到master分支了,那么我可以在当前的分支下rebase一下master分支,这样我这个分支的几个commits相对于master还是处于最顶端的,也就是说rebase主要用来跟上游公共分支同步,同时把自己的修改顶到最上面
B. 我在my_feature上开发了一段时间了,想要放到testing分支上,那就切到testing,然后merge my_feature进来,因为是个测试分支,commits的顺序无所谓,也就没必要用rebase (当然你也可以用rebase)
注意
不要在公共分支使用rebase拉取其他分支,rebase会打乱时间线,使远程仓库和本地仓库对不上,导致其他人无法推送代码
使用git pull时默认是merge, 加 --rebase参数使其使用rebase方式 : git pull --rebase
idea使用git更新代码 : update project(git merge、git rebase)的更多相关文章
- git更新失败Probably the path to Git executable is not valid
git更新代码失败 检查setting配置,发现路径配置错误 找对git的安装目录,修改路径后保存即可
- git两种合并方法 比较merge和rebase
18:01 2015/11/18git两种合并方法 比较merge和rebase其实很简单,就是合并后每个commit提交的id记录的顺序而已注意:重要的是如果公司用了grrit,grrit不允许用m ...
- Git更新代码到本地
一段时间没用git,发现一些东西记不住了,这里记一点常用的命令. 正规流程 git status(查看本地分支文件信息,确保更新时不产生冲突) 若出现冲突,会有提示的 git checkout – [ ...
- git 更新代码到本地
正规流程 git status(查看本地分支文件信息,确保更新时不产生冲突) git checkout – [file name] (若文件有修改,可以还原到最初状态; 若文件需要更新到服务器上,应该 ...
- git更新代码出现错误
git pull代码时,出现如下的错误: SSL certificate problem: unable to get local issuer certificate 主要的原因是:没有ssl证书 ...
- git 更新代码
https://jingyan.baidu.com/album/ab69b2707882f52ca7189f14.html?picindex=7 git commit:将本地修改过的文件提交到本地库 ...
- eclipse导入maven项目后依赖jar包更新问题->update project按钮
eclipse导入maven项目后依赖jar包更新问题 1.eclipse有专门的导入maven项目按钮,file-import-maven project,eclipse会自动查找指定路径下的pom ...
- Git提交代码规范 而且规范的Git提交历史,还可以直接生成项目发版的CHANGELOG(semantic-release)
Git提交代码规范 - 木之子梦之蝶 - 博客园 https://www.cnblogs.com/liumengdie/p/7885210.html Commit message 的格式 Git 每次 ...
- Git更新代码
此次更新,创建新的文件与文件夹,并且删除了原有文件 通过“git status” 命令查看当前变更.通过变更信息可以看出,删除了test_case.py文件.这个删除只是在项目目录下进行删除,Git对 ...
随机推荐
- php 设计模式 --适配器
1,目标:实现一个不同的类不同方法,符合一定的规范: 规范类 <?php interface Iplay{ function Attack(); function Defence(); } cl ...
- verifycode验证码模版
# -*- coding:utf-8 -*- from django.shortcuts import HttpResponse def verifycode(request): # 引入绘图模块 f ...
- AVS 通信模块之AVSConnectionManager
AVSConnectionManager 类为客户端无缝地管理与AVS的连接 功能简介 失败时连接重试 允许后续重新连接 ping管理 AVS服务器断开时周期重连服务器 允许客户端完全启用或禁用连接管 ...
- Centos7下thinkphp5.0环境配置
首先把yum源修改为阿里的yum源,如果没有安装wget,先安装一个.(如果有请蹦过) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors ...
- WPF进阶技巧和实战07--自定义元素01
完善和扩展标准控件的方法: 样式:可使用样式方便地重用控件属性的集合,甚至可以使用触发器应用效果 内容控件:所有继承自ContentControl类的控件都支持嵌套的内容.使用内容控件,可以快速创建聚 ...
- FastAPI(58)- 使用 OAuth2PasswordBearer 的简单栗子
背景 假设在某个域中拥有后端 API(127.0.0.1:8080) 并且在另一个域或同一域的不同路径(或移动应用程序)中有一个前端(127.0.0.1:8081) 并且希望有一种方法让前端使用用户名 ...
- nodejs 安装 报错解决方案
win10安装nodejs之后,查看版本号在终端输入node -v成功输出版本号,输入npm -v 之后报错...... 反复安装卸载之后,有点奔溃,最后的解决方案是:手动删除"C:\Use ...
- 山顶点提取(ArcPy实现)
一.背景 山顶点指哪些在特定邻域分析范围内,该点都比周围点高的区域.山顶点是地形的重要特征点,它的分布与密度反映了地貌的发育特征,同时也制约着地貌发育.因此,如何基于DEM数据正确有效的提取山顶点,在 ...
- 每日总结:Java基本语法 (2021.9.23)
对象:对象是类的一个实例,有状态和行为. 类:类是一个模板,它描述一类对象的行为和状态. 方法:方法就是行为,一个类可以有很多方法. 实例变量:每个对象都有独特的实例变量,对象的状态由这些实 ...
- Azure Bicep(三)变量控制
一,引言 当我们在使用 Azure Bicep 的时候会出现以下几个问题: 1)文件中有很多地方会重用很多相同的值 2)输入参数可以在统一的地方进行修改 带着这些问题,我们开始今天的内容,学习如何在 ...