从svn转过来的朋友,会发现使用git没有svn那样顺手,但还是得用。
说明:
在idea中使用git不需要我们本地安装git,也无需手动安装git插件。
1.从git下载项目
想在idea中下载git项目,如果此时我们已经打开了其它项目,需要先关闭本项目,idea不像eclipse,不能在同一个窗口中管理多个项目。
关闭后,会自动来到欢迎界面
输入git项目的访问地址,以“.git”结尾;
指定项目存放路径,如果没有自动生成对应的项目目录,需要自己手动加上。
输入用户名和密码
3.更新项目代码
项目的更新,共分两种情况。
第一种情况:本地代码没做任何修改
此时,我们直接更新代码就完了,找到工具栏的这个图标,点击更新。
如果工具栏没有的话,选中项目,右键:
把一个分支中的修改整合到另一个分支的办法有两种:merge(合并)
和 rebase(衍合);
合并比较容易理解:
同级分支+父节点,三方合并产生C5。
衍合:分支上的变化会打成补丁,在同级主支上重演一遍,生成新的主节点。
更为详细、复杂的区别,见文末推荐。
用哪种方式都行。
第二种情况:本地代码已经修改。
在实际开发过程中,一种情况会经常出现,那就是:两人或多人同时修改同一个文件。
后提交代码的人将会提交失败,也就是:代码冲突。
此时,我们不能立刻更新代码,一旦更新将会导致本地修改的代码被覆盖掉。
正确做法应该是:
将代码先提交到本地仓库。
commit
然后再更新代码;
最后,将更新后的代码与本地仓库代码进行比较。
有一种更为简单的方式,就是:
如果改动比较小的话,将自己的代码拷贝出来,直接更新,然后,把自己添加的代码再加进去就完事了。
4.提交项目代码
提交代码,也分两种情况。
第一种情况:本地是最新代码;
也就是说:你本地代码就是远程仓库上最新代码,没有其它人在你之前提交代码
或者,虽然别人先于你提交,但是,代码上互不影响,没有出现交叉的情况。
勾选需要提交的代码并添加注释;
这里需要注意的是:
与svn不同,git的commit只是将代码提交到了本地仓库,并没有推送到远程仓库(别人是无法看到你的代码的)。
点击上图中的“倒三角”,选择:Commit and Push;
只要没有错误,就能提交,点击"Commit and Push";
这样,在代码提交到本地仓库后,就会弹出推送页面;
Push即可。
第二种情况:代码冲突。
当我们push失败的时候,一般就是由于代码冲突造成的。
此时,我们已经将代码提交到了本地仓库,与远程仓库进行对比,修改好重新CommitAndPush。
5.新建分支
当项目变动比较大的时候,我们往往会选择新建分支,将修改好的代码提交到新分支上。
切换到Git视图
一般会在idea底部
如上图所示,Git仓库分为两种:
Local:代表本地仓库;
Remote:代表远程仓库。
选中本地当前分支,点击左侧的+号。
注意:只有选中分支,左边的+号才能点击。
给分支起个名字
这样,本地就从mvc-model切换到了test分支上。
点击工具栏的提交按钮,提交并推送,完成后,远程仓库就增加了test分支,并且这次提交的代码也会被放到test中。
如果没有git视图的话,选中项目,遵照此路径打开
6.删除分支
无论是本地仓库还是远程仓库,只要是分支都可以进行删除操作。
先说本地仓库
只要不是正在使用的分支都可以删除
如果需要同步到远程仓库上,commit and push即可。
再说远程仓库
只要不是主分支,其它分支都能删除
这里再讲一下衍合分支
由于上面在演示的时候,我误把新修改的代码提交到了test分支上;
mvc-models分支上就不是最新代码了
如何把test分支上的代码迁移到mvc-models分支上?
选中test分支,右键选择rebase
这样,mvc-models就重演了一遍test上的内容。
相当于将test上的代码更新到了mvc-models上。
此时,我们将test分支删除,mvc-models记录也会发生变化:
本地仓库test分支已经消失;
最新代码归属也回到了mvc-models上。
但需要注意的是:
远程仓库上test分支并没有消失。
远程仓库上的mvc-models还是原来的,并没有和test搅合在一起。
test分支却默默发生了些许变化:
最后提交的代码归属到了mvc-models分支上。
如何将变化同步更新到远程仓库上?
此时,如果我们点击commit的话,由于当前代码与本地仓库代码并没有发生任何改变,所以我们根本无法commit。
我们再仔细回忆一下命令:
commit在git里是想本地代码提交到本地仓库;
push在git里才是将本地仓库发生的变化同步到远程仓库。我们此时也是直接操作的是本地仓库,和代码没有任何关系。
所以,我们只需要使用push命令即可。
选中项目,右键
Push
推送成功
这时,test分支上的代码就更新到了mvc-models分支上啦
如果需要删除test分支的话,下面两种方式均可。
7.切换分支
不管是本地还是远程,选中要切换的分支,右键"Check Out",就会把选中的分支下载下来作为开发节点。
8.查看git地址
查看当前项目的git地址
选中,点击修改,就可以复制Git地址啦。
9.回滚/还原
当我们修改代码后,又不想提交,且需要还原的时候,就需要git的回滚操作啦。
选中要还原的文件
如果“Rollback”是灰色的(不能点击),说明此文件和git上代码是一致的。
10.分支重命名
注意:
在idea中,无法切换主分支,以及对分支进行重命名。
错误示例:
以对分支进行重命名为例
需要在本地进行修改,然后再推送到远程仓库上。
重命名成功,选中该分支,右键,push
但远程仓库上并没有重命名成功
提交代码的时候还是提交到mvc-models上
别急,虽然重命名的方式行不通,但是,我们可以点击上图中的mvc-models分支,将名字改成:mvc-modules,就成了新建分支
推送成功
将原来的分支删除即可。
如果此时,当git上,mvc-models为主分支的话,就会删除失败。
需要在git上将主分支切换成其它分支,再次删除就可以了。