zoukankan      html  css  js  c++  java
  • 熟练掌握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的使用和练习,那些命令光靠记忆是记不住的。
  • 相关阅读:
    Java实现 LeetCode 27 移除元素
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
  • 原文地址:https://www.cnblogs.com/cherish599/p/11346471.html
Copyright © 2011-2022 走看看