Git入门介绍

git与svn的区别

1.git是分布式的,svn是集中式的。有必要解释一下什么是集中式。拿git来举例,我有一个远程服务器来托管代码,同时我本地机器也是一个服务器。优点就是当远程服务器出现问题时,可以将本地服务器推送到远程,这样远程服务器不会丢失任何东西。所以git提交代码分为两部分,先要执行commit命令,将代码提交到本地服务器,然后通过push命令将本地服务器代码推送到远程服务器。

2.更简单的分支操作。分支的作用是方便多个团队协同合作。默认分支为master分支。我们一般讲master分支做为稳定分支,在各自分支开发完成,测试通过,将代码合并到master分支,在master分支出版本。git合并分支很简单,运行一下pull命令即可,pull命令等同于fetch+merge。

3.git可以在线浏览代码,在线浏览markdown文档,在线查看历史提交记录,方便查看每次提交修改的内容。可以提issue。

git的一些操作

1.创建:在服务器中创建工程,设置完权限后,本地执行clone命令,即可将工程拷贝下来。git支持多种路径,一般为http和ssh两种。直观的区别很简单,http需要每次输入用户名和密码,ssh将key值存到服务器后即可省略用户名和密码输入。

2.提交代码:由于git是分布式的,所以提交分两步,本地commit提交和远程push提交。测试版本可以打tag标记。tag标记跟一次提交记录差不多,只是方便索引。

3.回滚:git支持两种回滚,硬回滚reset hard,软回滚reset soft。硬回滚是指抹掉之后的所以记录。软回滚是指回滚到某次提交,但是之后的记录存到了暂存区。(git支持暂存区status的概念,在内存中就是维持一个栈的数据结构,可以通过git status pop将压栈数据弹出。status的一个直观的用法为。我本地有两个分支,我在A分支开发代码,但是没写完,这是我要调到B分支做一部分功能,A分支功能没开发完,不适合提交。但是不提交代码,是无法切换到B分支的,所以可以先用status,将A中的修改存至缓存区)。

4.子模块:可以将一些功能模块做为一个单独工程。拿封装的网络模块为例。我可能在项目A中要用到网络模块,项目B中也要用到网络模块。这是,可以在git创建项目时,将网络层做为一个子模块合成进来。clone工程后只需运行,git submodle init & git submodle update命令即可。

5.冲突:两个人同时修改一处代码提交的时候后提交者肯定会出现冲突。做为一个工程师,冲突不可避免,出现了解决即可。git对冲突有友好的提示,根据提示将冲突代码解决掉即可。

6.简述一下mark down文件。mark down文件不是git特有的东西。只是一个固定格式的文本文件,对代码高亮,链接,图片,表格,文本加粗等格式都支持。可以很方便的转换成html。因此,git上一般用它来写说明文档。

你可能感兴趣的:(Git入门介绍)