一、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的使用和练习,那些命令光靠记忆是记不住的。