您好,欢迎来到暴趣科技网。
搜索
您的当前位置:首页idea使用git更新代码:updateproject(gitmerge、gitrebase)

idea使用git更新代码:updateproject(gitmerge、gitrebase)

来源:暴趣科技网
idea使⽤git更新代码:updateproject(gitmerge、gitrebase)

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 pullgit 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 © 2019- baoquwan.com 版权所有 湘ICP备2024080961号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务