6.3 eclipse git简易教程

git是一个版本控制系统,用于多人开发的文档管理。它有三个代码版本
1.开发环境(例如eclipse)上修改的
2.本地仓库,由eclipse上传
3.远程仓库,由各开发人员,从本地仓库上传

例如多人都需要修改A文件,那么任何一人都应该在修改文件之前,先从远程仓库把最新版本拉下来(pull),而完成修改后,都需要把修改后的文件上传(push)。

一.如何从远程仓库更新本地文件
1.首先是同步,查看文件差异。右键点击要更新的文件夹,从右键菜单中选择team->synchronize workspace。此操作回进入同步透视图,点击ok就可以了。(注意,如果选择的是文件,则没有Synchronize Workspace)
如果要回到java EE编辑透视图,在eclipse右上角可以找到:
点击就切换界面。eclipse中文翻译成透视图,从菜单窗口->打开透视图->其他,可以找到所有透视图,如图所示:
2.界面左上是同步后和远程仓库有差异的文件
蓝色从右指向左的箭头表示远程仓库有更新
灰色从左指向右的箭头表示本地有修改可以提交
红色双箭头表示有冲突
界面右上是双击了左边文件后显示的差异,可以查看所有的差异
界面右下是上传者的信息

3.如果要从远程仓库拉取最新版本的文件,点击图标中的绿色拐弯箭头的图标,鼠标在上方会显示“pull”,如图所示
4.如果有冲突,可以先pull一次,或者采用激进的覆盖,即用远程仓库覆盖本地文件,有时候两个文件是一样的,但表示冲突,可以用这个方法。
二.如何上传一个已修改的文件到远程仓库
1.和本地仓库不一致的时候,文件的前面会有一个">"符号,如下图所示,hello.jsp就是在开发环境中修改过的。
2.右键点击这个文件,找到菜单team,然后是commit
3.然后就会触发这个视图,如下图所示:
1.左上是没有同步的文件,这里面的两个文件都属于.gitIgnore,意思是忽略;
2.左下是要同步的文件,可以有很多个,如果你的文件在左上,可以选中文件,点右上角的+号
3.右边是对于这个文件的修改的注释,必须要有
4,右下有两个提交
commit and push 是提交到本地仓库和远程仓库。(如果提交失败,先从远程仓库拉取一次,这时候实际上已经提交到了本地仓库
commit是只提交到本地仓库


为啥要需要只提交到本地仓库呢?因为修改并没有完成,不适合直接发布,但是修改者需要版本控制,说不定突然要用到已经删除的部分代码,那就可以通过历史版本找到,例如找到3天前的代码。

三.如何从本地仓库上传到远程仓库
有时候代码是先commit到本地仓库,有可能是因为远程仓库有冲突,必须先拉取,提交到远程仓库失败,但是本地仓库提交成功了;或者是代码编写者有意识这么做,写好最终版本才上传到远程仓库。有以下两种方法可选:
方法一.我们可以不同步直接提交。
右键点击要提交的文件或文件夹,然后选择team,然后点击Push Branch "master"(你也可以不同步直接从远程仓库拉取代码,点击pull就可以了)

方法二:右键点击要提交的文件或文件夹,然后选择team,然后点击Synchronize Workspace,进入同步透视图,然后在左上菜单图标中点击如下所示的图标:


四.如何解决冲突:从远程仓库覆盖本地
1.如下图所示,有红色的冲突双击冲突的文件,可看到冲突的代码行:

2.如果只是想把远程仓库的文件覆盖本地,可以手动复制代码,或者右键点击,然后从菜单中选择覆盖,会有提示:
3.确定后本地代码会被覆盖
4.虽然现在代码一样,但仍然显示红色冲突,右键点击冲突的文件,在弹出菜单中选择“合并”。
5.合并后文件左下角有个小小的“*”号

6.最后从左侧栏菜单项找到绿色拐弯箭头(pull),点击,如图所示


五.如何解决冲突:从远程仓库更新,但本地也需要提交
1.双击冲突文件,可看到除了红色的冲突,本地文件30行也有需要提交的代码:
2.这个时候不能随意执行覆盖,否则本地会被全覆盖,那么可以手动复制代码覆盖,或者点击两个文件中间的小方块,可以把代码从右边复制到左边。
3.接下来要先执行一次commit(注意不是commit and push),注意可能需要选中文件后点击绿色加号添加到commit列表,如图所示:
4.然后执行合并
右键点击冲突的文件,在弹出菜单中选择“合并”。
5.从左侧栏菜单项找到绿色拐弯箭头(pull),点击,如图所示

6.这个时候应该可以看到已经没有红色冲突了,最后执行一次push,左侧栏菜单项找到红色向上箭头(push),点击,如图所示