zoukankan      html  css  js  c++  java
  • git之在eclipse上玩(一)

    简单介绍

      git是一个可以支持版本分支多人多线程版本维护的版本管理系统。可以使用egit客户端(命令行)方式使用,也可以使用eclipse提供的图形化界面。

      本篇随笔的目的在于记录个人在eclipse图形化界面下git的简易使用入门。

      文章结构如下:

        (0)基本概念(git的三个存储区)

        (1)简易上手(eclipse上怎么提交代码、怎么下拉代码、怎么处理冲突)

    (0)基本概念

      git将本地代码分为3个仓库存储,分别为:git工作区(用户实际操作的文件)、git暂存区(又名Index,主要用于比较)和git本地仓库(相当于本地正式库)

      git的基本工作流程:

      (1)git工作区文件修改;

      (2)git工作区修改提交Index;

      (3)Index内容提交本地正式库;

      (4)本地正式库push到云仓库;

    (1)简易上手

       接下来的例子,将讲述如何在两个人(A,自己;B,另一个人)共同维护主版本代码的情况下如何进行日常的版本维护。

      (a)没有冲突的项目下拉

        当前eclipse中已经有一个git工程存在时,B提交了某个文件,就产生了这样一种情况:

          A需要下拉更新这个B修改过的文件。

        操作手法如下:

          右键项目->Team->Synchronize Workspace

          看到一个蓝色的图标文件类似这样

          

          如果确认都是代码下拉,可以执行Synchronize工作区中的Pull动作

          

          如果有冲突,可以对文件右键,执行Override,覆盖本地,这时候会产生冲突(文件前蓝色箭头突变变成红色的菱形),解决完其他冲突后再下拉一次即可解决,不必过多担心。

      (b)没有冲突的代码上传

        当前eclipse中已经有一个git工程存在时,B没有提交文件,而A要提交文件。就产生了这样一种情况:

          A需要将自己的修改提交到云端库

        操作手法如下:

          右键项目->Team->Synchronize Workspace(确保B没有提交)

          看到一个灰色的图标文件类似这样

          

          对着文件右键->Add to Index(将文件加入暂存区)

          对着文件右键->commit(将文件提交本地正式库)

          当所有的文件都执行完如上动作(文件可以批量提交到本地库)时,可以执行Synchronize工作区中的Push动作,将代码推送至云端仓库

          

      (c)冲突解决

         当A和B都对文件有所修改时,就会产生冲突,图标长相是这样的(红色的菱形)。这时候就要对这个文件进行冲突解决

        

        解决思路如下:

          文件有冲突,代表两个人修改了同一个文件,解决的结果无外乎三种:

            本地版本覆盖云端库(舍弃对方修改)、云端库覆盖本地(舍弃自己的修改)和合并两者修改

          基于如上思路,有如下三种处理方式:

            (1)本地覆盖云端库:本地文件内容先复制出来,接着参照文件合并走,最后要提交的时候,将原内容放回文件再提交

            (2)云端库覆盖本地:右键文件->Override,右键文件->Add to Index,Synchronize工作区pull

            (3)文件合并,参见操作手法。

        操作手法如下:

           使用工具合并云库和本地代码:右键文件->Merge,然后检查文件内冲突代码,找到B配合你修改文件中内容,达到合并功能的目的

          

          将合并后的代码提交Index区:右键文件->Add to Index

          

         执行一次Synchronize工作区pull,将当前文件更新为git云仓库上最新版本的id(此时可能对代码造成修改,记得检查)

         

        往复执行如上3步,直至所有冲突已解决完毕,图标编程提交的灰色为止(备注:一定要解决所有文件的冲突,再pull,才会变),接着提交代码即可。

  • 相关阅读:
    TCP 窗口缩放、时间戳和 SACK
    对微前端的11个错误认识
    终于解决了使用Python装饰器的一个痛点
    go使用mongo
    获取鼠标当前元素
    console控制台屏蔽console
    httpx使用HTTP/2
    go解析未知结构的json
    python字典转对象
    .::Best Musica Paradisa::.
  • 原文地址:https://www.cnblogs.com/chendeming/p/8320293.html
Copyright © 2011-2022 走看看