使用Eclipse-Maven-git作Java开发(14)--开发中对git的使用

        前面的文章说到了怎么讲本地的项目代码托管到git托管服务中,本文未来说一下平常的开发中对git的使用来进行开发。linux

        (上次才说了要缩短更新时间,可是实在抱歉,中间出了一些事情,耽搁了一段时间)。git

0、要求

        要达到前一篇博客说明的条件,也就是代码已经托管到git中了,而且本地的环境那些也是对的。本次演示使用上一篇博客使用的那个工程。web

一、远端代码到本地代码的同步

        以前只说了本地代码提交推送到远端,有时候远端有更新的提交须要同步到本地来,接下来就演示一下怎么操做。windows

        为了演示这种状况,我会在web上进行一次修改,模拟出有更新的提交,而后在本地的STS中进行查看与同步。网络

1.1 在web进行修改


        点击“编辑”进行编辑,而后作出一些修改,提交。分布式

        修改事后的文件内容:
工具

1.2 本地STS中查看修改

        在同步以前,先在本地STS的仓库管理中对应的仓库上面查看历史,看看同步以前的样子,右键仓库记录->"show in"->"history":fetch

        从提交时间上能够看到,刚才的那次提交并不在列表中,网站

        这也是符合git是分布式版本管理的设定的,接下来咱们查看远端的代码仓库状况。右键仓库记录->"fetch from upstream",等到网络传输,而后会有提示说远端是否有改动。spa

        可是这个时候在“history”视图是看不到的,由于尚未拉取下来,可是在仓库记录的条目上会有一个向下的箭头,表示须要进行拉取以保持同步。

1.3 拉取改动

        咱们在仓库上右键->“pull”拉取远端上的改动

        拉取事后会有提示框说明本次拉取的结果,而后在“history”视图中也会看到记录。

2 冲突的出现与冲突的解决

        刚才的演示中是本地没有修改与同步得来的修改冲突的,要是本地有一个修改是与远端修改冲突了的呢?这种状况常常出现,因此有必要说明一下处理方法。

2.1 制造冲突

        仍是那样,咱们在web上作一次提交,使得文件成为这样:

        而后,咱们在本地的STS中进行修改,使得文件成为这样,:

        并提交可是不推送

2.2 拉取远端变动,获得冲突

        在fetch以后会看到仓库记录条目上有一个向上和一个向下的箭头,表示须要推送也须要拉取,这个时候直接推送是不行的,须要先拉取,咱们使用先前的方法进行拉取:

        而后就会获得这样的提示:

        文件中标注了冲突的具体状况,文件视图中代表了哪些文件有冲突,仓库视图中对应的记录标注该仓库有冲突。

2.3 解决冲突

        这个时候你推送是不行的,会提示你须要解决冲突。接下来咱们就解决冲突,而后推送。

        首先将文件内容进行修改,根据实际的状况修改成这个文件原本的内容,具体怎么改得看具体状况。

        "<<<<<<< HEAD"以及后面的"=========="之间的内容是本地的"HEAD"指向的版本,后面的是远端与之冲突部分的版本。

        我这里就直接保留两个版本,将两行都留下来。

        这里补充一下,推荐一款软件-------"Meld",是一个很是好用的文件对比工具,同时提供版本控制软件的对比公能,可以找出哪些地方修改了、冲突等,自由软件(GNU)、跨平台,官方网站,使用linux的时候可使用它来进行冲突解决,windows版本的不是很好用。

        使用“版本控制”功能,加载咱们须要处理的git仓库;而后设置显示“修改”和“冲突”,不显示“未修改”的,查看出现冲突的文件;而后在视图中就能够看到是怎么个冲突法了,并且还能够直接标记为“已解决冲突”。

        修改文件以后,保存,这个时候须要作一些操做,而后才能提交,不然是不成功的。

        在工程视图中文件上右键->"team"->"add to index":

        而后你就会发现,原先标记的冲突都不见了:

        这个时候就能够愉快的提交啦,不过这个时候的提交注释信息已经有一部分填写好了:

        直接提交、推送,而后在远端和本地就都是同样的啦。

3 暂停一下

        好了,本文就先说到这里,下一文将说一下git的使用管理,例如分支、标签、分支合并等。

        enjoy!!!

相关文章
相关标签/搜索