8.3 eclipse git简易教程
git是一个版本控制系统,用于多人开发的文档管理。它有三个代码版本<br/>1.开发环境(例如eclipse)上修改的<br/>2.本地仓库,由eclipse上传<br/>3.远程仓库,由各开发人员,从本地仓库上传<br/><br/>例如多人都需要修改A文件,那么任何一人都应该在修改文件之前,先从远程仓库把最新版本拉下来(pull),而完成修改后,都需要把修改后的文件上传(push)。<br/><br/><b>一.如何从远程仓库更新本地文件</b><br/>1.首先是同步,查看文件差异。右键点击要更新的文件夹,从右键菜单中选择team->synchronize workspace。此操作回进入同步透视图,点击ok就可以了。(注意,如果选择的是文件,则没有Synchronize Workspace)<img class="img-responsive" src="upload/c602/c20200626214751602.png"/><br/>如果要回到java EE编辑透视图,在eclipse右上角可以找到:<br/><img class="img-responsive" src="upload/c602/c20200626223126602.png"/>点击就切换界面。eclipse中文翻译成透视图,从菜单窗口->打开透视图->其他,可以找到所有透视图,如图所示:<img class="img-responsive" src="upload/c602/c20200626223608602.png"/><br/>2.界面左上是同步后和远程仓库有差异的文件<br/>蓝色从右指向左的箭头表示远程仓库有更新<br/>灰色从左指向右的箭头表示本地有修改可以提交<br/>红色双箭头表示有冲突<br/>界面右上是双击了左边文件后显示的差异,可以查看所有的差异<br/>界面右下是上传者的信息<img class="img-responsive" src="upload/c602/c20200626220606602.png"/><br/><br/>3.如果要从远程仓库拉取最新版本的文件,点击图标中的绿色拐弯箭头的图标,鼠标在上方会显示“pull”,如图所示<img class="img-responsive" src="upload/c602/c20200626220907602.png"/><br/>4.如果有冲突,可以先pull一次,或者采用激进的覆盖,即用远程仓库覆盖本地文件,有时候两个文件是一样的,但表示冲突,可以用这个方法。<img class="img-responsive" src="upload/c602/c20200626221207602.png"/><br/><b>二.如何上传一个已修改的文件到远程仓库</b><br/>1.和本地仓库不一致的时候,文件的前面会有一个">"符号,如下图所示,hello.jsp就是在开发环境中修改过的。<img class="img-responsive" src="upload/c602/c20200626114738602.png"/><br/>2.右键点击这个文件,找到菜单team,然后是commit<img class="img-responsive" src="upload/c602/c20200626115157602.png"/><br/>3.然后就会触发这个视图,如下图所示:<img class="img-responsive" src="upload/c602/c20200626115537602.png"/><br/>1.左上是没有同步的文件,这里面的两个文件都属于.gitIgnore,意思是忽略;<br/>2.左下是要同步的文件,可以有很多个,如果你的文件在左上,可以选中文件,点右上角的+号<br/>3.右边是对于这个文件的修改的注释,必须要有<br/>4,右下有两个提交<br/>commit and push 是提交到本地仓库和远程仓库。(<b>如果提交失败,先从远程仓库拉取一次</b>,这时候实际上已经提交到了本地仓库<br/>commit是只提交到本地仓库<br/><br/><br/>为啥要需要只提交到本地仓库呢?因为修改并没有完成,不适合直接发布,但是修改者需要版本控制,说不定突然要用到已经删除的部分代码,那就可以通过历史版本找到,例如找到3天前的代码。<br/><br/><b>三.如何从本地仓库上传到远程仓库</b><br/>有时候代码是先commit到本地仓库,有可能是因为远程仓库有冲突,必须先拉取,提交到远程仓库失败,但是本地仓库提交成功了;或者是代码编写者有意识这么做,写好最终版本才上传到远程仓库。有以下两种方法可选:<br/>方法一.我们可以不同步直接提交。<br/>右键点击要提交的文件或文件夹,然后选择team,然后点击Push Branch "master"(你也可以不同步直接从远程仓库拉取代码,点击pull就可以了)<br/><img class="img-responsive" src="upload/c602/c20200627100215602.png"/><br/>方法二:右键点击要提交的文件或文件夹,然后选择team,然后点击Synchronize Workspace,进入同步透视图,然后在左上菜单图标中点击如下所示的图标:<br/><img class="img-responsive" src="upload/c602/c20200627100321602.png"/><br/><br/><b>四.如何解决冲突:从远程仓库覆盖本地</b><br/>1.如下图所示,有红色的冲突<img class="img-responsive" src="upload/c602/c20200701135349602.png"/>双击冲突的文件,可看到冲突的代码行:<br/><img class="img-responsive" src="upload/c602/c20200701135509602.png"/><br/>2.如果只是想把远程仓库的文件覆盖本地,可以手动复制代码,或者右键点击,然后从菜单中选择覆盖,<img class="img-responsive" src="upload/c602/c20200701140741602.png"/>会有提示:<img class="img-responsive" src="upload/c602/c20200701140947602.png"/><br/>3.确定后本地代码会被覆盖<br/>4.虽然现在代码一样,但仍然显示红色冲突,右键点击冲突的文件,在弹出菜单中选择“合并”。<img class="img-responsive" src="upload/c602/c20200701142001602.png"/><br/>5.合并后文件左下角有个小小的“*”号<br/><img class="img-responsive" src="upload/c602/c20200701142049602.png"/><br/>6.最后从左侧栏菜单项找到绿色拐弯箭头(pull),点击,如图所示<br/><img class="img-responsive" src="upload/c602/c20200701142240602.png"/><br/><br/><b>五.如何解决冲突:从远程仓库更新,但本地也需要提交</b><br/>1.双击冲突文件,可看到除了红色的冲突,本地文件30行也有需要提交的代码:<img class="img-responsive" src="upload/c602/c20200701142847602.png"/><br/>2.这个时候不能随意执行覆盖,否则本地会被全覆盖,那么可以手动复制代码覆盖,或者点击两个文件中间的小方块,可以把代码从右边复制到左边。<img class="img-responsive" src="upload/c602/c20200701143100602.png"/><br/>3.接下来要先执行一次commit(注意不是commit and push),注意可能需要选中文件后点击绿色加号添加到commit列表,如图所示:<img class="img-responsive" src="upload/c602/c20200701151242602.png"/><br/>4.然后执行合并<br/>右键点击冲突的文件,在弹出菜单中选择“合并”。<img class="img-responsive" src="upload/c602/c20200701142001602.png"/><br/>5.从左侧栏菜单项找到绿色拐弯箭头(pull),点击,如图所示<br/><img class="img-responsive" src="upload/c602/c20200701142240602.png"/><br/>6.这个时候应该可以看到已经没有红色冲突了,最后执行一次push,左侧栏菜单项找到红色向上箭头(push),点击,如图所示<img class="img-responsive" src="upload/c602/c20200701151600602.png"/>