• 熟练掌握GitHub及Git的使用方法


    一、Git 命令的理解和使用

    • Git是一个快速,可扩展的分布式版本控制系统,具有异常丰富的命令集,可提供高级操作和对内部的完全访问
    • 分布式:Git版本控制系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具。

    • 保存点:Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目的状态;可以在该保存点将多人提交的源码合并, 也可以回退到某一个保存点上。

    • Git的分支和合并:分支模型是Git最显著的特点,因为这改变了开发者的开发模式,SVN等版本控制工具将每个分支都要放在不同的目录中,Git可以在同一个目录中切换不同的分支。

    • 分支灵活性:用户可以随时创建、合并、删除分支,多人实现不同的功能,可以创建多个分支进行开发,之后进行分支合并,这种方式使开发变得快速、简单、安全。

    • 分支即时性:创建和切换分支几乎是同时进行的,用户可以上传一部分分支,另外一部分分支可以隐藏在本地,不必将所有的分支都上传到GitHub中去。

    Git常用指令总结:

      git init

           在本地新建一个repo,进入一个项目目录,执行gitinit,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.

      git clone

           获取一个url对应的远程Git repo, 创建一个local copy. 一般的格式是git clone [url].

      git status

           查询repo的状态. git status -s: -s表示short, -s的输出标记会有两列,第一列是对staging区域而言,第二列是对working目录而言.

      git add   

        命令可将该文件添加到缓存

      git commit

        使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。

      git diff

        执行 git diff 来查看执行 git status 的结果的详细信息。

      git push

        是将本地库中的最新信息发送给远程库;

       git fetch

        是从远程获取最新版本到本地,不会自动merge

      git pull

        是从远程获取最新版本到本地,并自动merge;  git pull 相当于 git fetch + git merge

      git branch (branchname)  

        用来创建分支 

       git checkout (branchname)

        切换分支   

      git branch -d (branchname)  

        删除分支

      git merge

        是用于从指定的commit(s)合并到当前分支,用来合并两个分支;  $ git merge -b // 指将 b 分支合并到当前分支

            

    二、记录进度情况,以半天一个时间单位,检测代码提交情况,燃尽图

      燃尽图如下所示。后面可能突然很陡峭,是因为我们对git的使用还不熟悉。有一个issue昨天已经完成了,但是忘记关闭了,今天下午才关闭。做出来燃尽图之后才知道,不及时关闭issue会对燃尽图的形成产生影响。

             

    三、多人协同开发总结和反思

    • 这次我们助教四人的开发,可以说在使用git的上面是真的很不顺利。就学习如何使用git就花了很长时间。我提前几天就把学习git的视频看完了。当时跟着视频上一起学着老师做的时候并不觉得git很难。感觉挺简单的。但是等我们做团队项目提交的时候,就遇到了很多问题。最突出的一个问题就是刚开始一直merge不到主分支上,然后出现了冲突,还不会解决。五花八门的冲突,真的是让我们百度了又百度。但是还是解决不了。只有重新克隆,再重新创建分支。就这样,整个项目的分支就多了起来。到最后每个人都有好几条分支。
    • 这次运用git进行团队开发,可以说是一次很好的锻炼自己的机会。虽然使用git过程中间那个遇到了一次又一次的麻烦,但是在学习使用git的过程中,经过很多次的尝试,最终还是学会了 团队开发该如何去使用git,对git有了较为深刻的理解。但是自己对git的使用还远远不够。以后我也会加强对git的使用和练习,那些命令光靠记忆是记不住的。
  • 相关阅读:
    Chrome(google 浏览器) 几个有用的插件
    unity创建Android原生插件
    C#中运算符
    Unity 动画播完时关闭动画
    Could not obtain connection to query metadata : An attempt by a client to checkout a Connection has timed out.]
    nginx将ip+端口号映射为域名
    GlassFish To prevent a memory leak, the JDBC Driver has been forcibly unregistered
    视频
    iOS App上架流程(2016详细版
    证书说明(二)
  • 原文地址:https://www.cnblogs.com/cherish599/p/11346471.html
Copyright © 2020-2023  润新知