idea使用git更新代码 : update project(git merge、git rebase)

您所在的位置:网站首页 git拉取最新代码影响我已经写的吗 idea使用git更新代码 : update project(git merge、git rebase)

idea使用git更新代码 : update project(git merge、git rebase)

2024-07-11 23:02| 来源: 网络整理| 查看: 265

idea使用git更新代码 :

选中想要更新的项目,右键点击 git => repository => pull

这样使用一次后idea会自动建立选中分支的远程跟踪分支,以后可直接点击下图按钮,不需要再选分支,除非要拉取另一分支

update project 的两个选项

说明:为避免在前后相对位置懵逼,先讲明越靠后的提交越新,越顶端的提交越新

git merge

git merge b : 将b分支合并到当前分支

图解(主分支master, git merge test)

D---E test / A---B---C---F master

使用merge合并:

D--------E / \ A---B---C---F----G

工作流

1. git pull (或fetch && merge) 2. 解决冲突 3. 再次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分支了,那么我可以在当前的分支下rebasemaster分支,这样我这个分支的几个commits相对于master还是处于最顶端的,也就是说rebase主要用来跟上游公共分支同步,同时把自己的修改顶到最上面

B. 我在my_feature上开发了一段时间了,想要放到test分支上,那就切到test,然后git merge my_feature,因为test是公共分支,最好是用merge

注意

不要在公共分支使用rebase拉取其他分支,rebase会打乱时间线,使远程仓库和本地仓库对不上,导致其他人无法推送代码

使用git pull时默认是merge, 加 --rebase参数使其使用rebase方式 : git pull --rebase



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3