git学习笔记

来源:互联网 发布:管家婆数据库安装 编辑:程序博客网 时间:2024/05/24 06:58

(1) 谈谈你对Git作用的理解,类似的系统有哪些?

Git分布式版本控制系统,最大的好处是适合team开发项目,进行代码开发、版本的管理,当多人进行合作开发时,通过git可以clone项目仓库到本地自己的电脑,本地仓库又可以创建多个分支进行不同方向的修改和开发,分支之间互不影响,并且在合适的时机可以合并到一起,再push回远程的项目仓库,team的成员可以灵活的开发自己的任务而不必过多的考虑其他成员的部分,最后由项目负责人负责合并,并协调解决相应的冲突。
类似的系统有:Bitkeeper、Mercurial
还有一些不是分布式的:svn、cvs

(2)常见的Git代码托管平台有哪些?常用的Git工具有哪些?

常见的Git代码托管平台有:Github、开源中国、Gitlab、coding.net等等
常用的Git工具:
1、初始化一个仓库或者克隆一个仓库

git initgit clone 远程仓库地址2、分支相关git branch 分支名          //创建分支git branch -a               //查看全部分支git checkout -b 分支名     //创建分支并转到该分支git checkout  分支名       //转到该分支git branch -d 分支名       //删除分支git push origin --delete 分支名        //删除远程分支

3、理解工作区working directory、暂存区staging area、仓库区repository的关系
4、代码提交相关

git add filename        //从工作区添加到暂存区git checkout filename       //撤销暂存区的修改git commit -m “message” //将暂存区的修改提交至repository中git reset filename          //重置暂存区文件到上一次commit的状态

5、远程仓库相关

git fetch               //从远程仓库更新本地仓库git remote -v           //显示远程仓库信息git pull [remote] [branch]      //取回远程分支与本地分支进行更新git push [remote] [branch]      //将本地分支的更新推送到远程分支

(3)请解释什么是Blame,怎么使用?

查看文件中每一行的commit号、提交者、提交时间
这里写图片描述

(4)谈谈你对分支的理解?

分支类似于一条时间线,创建不同的分支,意味着从主时间线分出一条支时间线,在这条新分出的时间线中做的任何事情都不会影响主时间线的内容,两条时间线独立发展,在合适的时候可以进行合并,重新归为同一条时间线。在实际的项目开发中,我们可以通过分支去做不同的方向的内容,但两者都需要同时进行,例如bug修复和功能的迭代更新,就可以从不同的分支进行,最后合并到一起。

(5)分支和commit的关系

分支比喻成时间线,不可能每时每刻都将时间线上的任意时刻保存到版本库中,而使用commit就是类似于在时间线上打一个标记点,把标记点的编号以及此时分支的内容就会被保留下来,类似于一个时间线快照,存储在版本库中,以后如果项目出现问题或者要回退版本时,可以根据标记点回退到时间线的任一标记时刻。