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
git设置用户名和邮箱⼯作流
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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论