代码管理工具 Git

以前一直使用微软的代码管理工具TFS(Team Foundation Server)。.NET CORE 2.0的发布后,考虑到.NET CORE项目能够跨平台,准备把项目迁移到.NET CORE 环境下重构。代码管理工具也准备使用git。下面主要学习代码管理工具,不涉及.NET CORE。html

本文目录:git

  1、为何使用代码管理工具?程序员

  2、常见的源代码管理工具备哪些?  github

  3、Git命令行管理代码、安装及使用web

  4、Git的可视化工具SourceTree管理代码 SourceTree的使用安全

  5、git、github、gitlab之间的关系服务器

 
 

 

1、为何使用代码管理工具?  网络

  一、能记录一个项目从开始到结束的整个过程。编辑器

  二、追踪项目中全部内容的变化状况,如增长了什么内容,删除了什么内容,修改了什么内容等等。分布式

  三、版本控制,能够清楚的知道每一个版本之间的异同点,如版本2.0相比较版本1.0多了什么内容,功能等。

  四、 权限控制,防止代码混乱,提升安全性,防止一些没必要要的损失和麻烦,简单的理解就是为何职位作什么事情,不能越界。如控制程序员A对正在开发的项目具备开发的权限,其余项目不具备开发的权限,若是不进行控制的话,那么对其余项目的开发权限也对程序员A开放,若是程序员A对其余项目不当心进行了错误的操做 如删除,就会形成一些损失。

  五、责任追究,防止互相推卸责任,能够清楚的知道谁对哪一个文件进行了什么修改,致使了项目没法正常运行。

  六、回退处理,执行了错误的操做以后还能够有补救的机会,如从版本1.0升级到版本2.0,后来发现版本2.0有一个错误,这时候能够进行回退处理,比较方便。

  七、冲突解决,在团队的多人协同开发中,冲突是常常有的事情,好比存在着相同的文件名称,同一个文件中有着相同功能的函数等等,这时候使用源代码管理工具能够比较方便的解决冲突。冲突的解决通常按照“复制-修改-合并”原则进行。

2、常见的源代码管理工具备哪些?  

  一、常见的源代码管理工具备哪些

     (1)CVS

      - 开启版本控制之门

      - 1990年诞生,“远古时代”的主流源代码管理工具 

     (2)SVN

      - 全称是Subversion,集中式版本控制之王者

      - 是CVS的接班人,速度比CVS快,功能比CVS多且强大

      - 在国内软件企业中使用最为广泛(70%-90%)

        (3)Git

      -是目前世界上最早进的分布式版本控制系统(没有之一)

      (4)ClearCase

      - 收费的集中式版本控制工具,安装比Windows还大,运行比蜗牛还慢

      - 能用ClearCase的通常是世界500强,他们有个共同的特色是财大气粗

      (5)VSS

      - 微软的集中式版本控制工具,集成在Visual Studio中

   二、SVN或者Git进行源代码的管理基本区别  

    (1)GIT是分布式的而SVN是集中式。   

      1.1集中式:一台服务器控制着全部的代码,这台服务器的代码是最新的,其余电脑的代码操做(以下载、提交)都须要经过这台服务器才能够执行。

      1.2分布式:每台电脑都至关于一个服务器,代码是最新的,比较灵活。

      对比:Git的速度比SVN快;Git比SVN灵活;SVN一旦没有网络或者服务器挂了的话,其余电脑都没法执行操做,可是Git能够先提交到本地版本库,等待联网的时候再提交到远程代码仓库。

  

    (2)GIT把内容按元数据方式存储,而SVN是按文件  

      全部的资源控制系统都是把文件的元信息隐藏在一个相似.svn,.cvs等的文件夹里。若是你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。由于.git目录是处于你的机器上的一个克隆版的版本库,
它拥有中心版本库上全部的东西,例如标签,分支,版本记录等。

  

    (3)GIT分支和SVN的分支不一样

      分支在SVN中一点不特别,就是版本库中的另外的一个目录。若是你想知道是否合并了一个分支,你须要手工运行像这样的命令svn propget svn:mergeinfo,来确认代码是否被合并。
然而,处理GIT的分支倒是至关的简单和有趣。你能够从同一个工做目录下快速的在几个分支间切换。你很容易发现未被合并的分支,你能简单而快捷的合并这些文件。

  

  三、常见的Git管理工具

    (1)Git Base 

      Git Base采用命令行的方式进行版本管理,功能操做最为灵活强大,下载地址http://git-scm.com/download/win

 

    (2)EGit 

      EGit是Eclipse的Git插件,在Eclipse中开发时直接操做EGit很方便,尤为对于有SVN开发情节的开发人员来讲更加热衷于使用,可是EGit存在不少bug和不人性化的东西,需谨慎使用!

 

  (3)TortoiseGit 

    在Windows上面,图像化软件TortoiseGit相比GitHub客户端使用较为方便,下载地址:http://git-scm.com/download/win

  

  (4)SourceTree  

    在Mac Ios系统上,图形化软件SourceTree较为便捷(SourceTree当前不支持“开源中国--代码托管”,支持GitHub等),堪比EGit和Git Base的合体,机油图形化界面,又有命令行工具,下载地址:http://www.unlimax.com/sourcetree.html
SourceTree官网地址须要“FQ”才能访问,现提供SourceTree最新版本CSDN下载连接地址:http://download.csdn.net/detail/wenbitianxiafeng/8475481

  

  四、SVN的管理工具

    (1)TortoiseSvn

    


 

3、Git命令行管理代码、安装及使用  

  一、下载安装Git

    (1)下载Git  官方地址为:https://git-scm.com/download/win

    (2)下载完以后,双击安装

    (3)选择安装目录

    (4)选择组件

    (5)开始菜单目录名设置

     (6)选择使用命令行环境

    (7)如下三步默认,直接点击下一步

                                

     (8)安装完成

  

    (9)检验是否安装成功

      回到电脑桌面,鼠标右击若是看到有两个git单词则安装成功

 

  二、Git基本工做流程

    (1)Git工做区域

  

    (2)向仓库中添加文件流程

    三、Git初始化及仓库建立和操做

      Git安装以后须要进行一些基本信息设置

      a、设置用户名:git  config -- global  user.name  '你再github上注册的用户名';

      b、设置用户邮箱:git  config -- global  user.email  '注册时候的邮箱';  注意:该配置会在github主页上显示谁提交了该文件

         c、配置ok以后,咱们用以下命令来看看是否配置成功 git config --list

      注意:git  config --global 参数,有了这个参数表示你这台机器上全部的git仓库都会使用这个配置,固然你也能够对某个仓库指定不一样的用户名和邮箱

 

    (1)初始化一个新的git仓库

      a、建立文件夹

        方法一:能够鼠标右击-》点击新建文件夹test1

        方法二:使用git新建:$  mkdir test1

      b、在文件内初始化git(建立git仓库)

        方法一:直接输入 $ cd test1

        方法一:点击test1文件下进去以后-》鼠标右击选择Git Bash Here->输入$ git int

    (2)向仓库中添加文件  

      方法一用打开编辑器新建index.html文件

      方法二:使用git命令。$  touch '文件名',而后把文件经过$ git add '文件名'添加到暂存区,最后提交操做

    (3)修改仓库文件

      方法一用编辑器打开index.html进行修改

      方法二:使用git命令。$  vi  '文件名',而后在中间写内容,最后提交操做

    (4)删除仓库文件

      方法一:在编辑器中直接把要删除的文件删除掉

      方法二:使用git删除:$ git rm '文件名',而后提交操做

  四、Git管理远程仓库

    使用远程仓库的目的:备份、实现代码共享集中化管理,Git远程仓库实际上就是保持在服务器上的git仓库文件

 

 

 

  五、Git克隆操做,目的:将远程仓库(github上对应的项目)复制到本地

    (1)代码:git clone 仓库地址仓库地址由来以下:

    (2)克隆项目

    (3)将本地仓库同步到git远程仓库中:git push

    (4)期间出现错误的状况有: 

       a、出现提交错误

        解决:这是经过Git GUI进行提交时发生的错误,由 .git 文件夹中的文件被设为“只读”所致,将 .git 文件夹下的全部文件、文件夹及其子文件的只读属性去掉便可。

 

       b、若是出现没法同步或没有权限,解决方法以下:  用户名和密码必定要和github上的一致。

 

      c、如何解决failed to push some refs to git  在使用git 对源代码进行push到gitHub时可能会出错,信息以下

        出现错误的主要缘由:github中的README.md文件不在本地代码目录中

         解决办法:首先使用git pull拉取github上的内容、而后再使用git push便可


 


4、Git的可视化工具SourceTree管理代码 SourceTree的使用      

   上边咱们说了使用git命令建立、管理代码的方式,不过挺麻烦的,这里介绍SourceTree代码管理工具,具体怎么使用SourceTree,这里就不介绍了,网上有不少教程,请参阅http://www.javashuo.com/article/p-hmqrknfg-km.html


 

 

5、git、github、gitlab之间的关系

  GIt-版本控制工具;GitHub-一个网站平台,提供给用户空间存储git仓储,保存用户的一些数据文档或者代码等;GitLab - 基于Git的项目管理软件。

  一、Git分布式版本控制系统

    (1)Git是一款自由和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,是版本控制工具 

    (2)Github 是 一个网站,提供给用户空间建立git仓储,保存用户的一些数据文档或者代码等。GitHub能够托管各类git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不一样,GitHub的独特卖点在于从另一个项目进行分支的简易性。为一个项目贡献代码很是简单:首先点击项目站点的“fork”的按钮,而后将代码检出并将修改加入到刚才分出的代码库中,最后经过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。

    (3)GitLab - 基于Git的项目管理软件,GitLab 是一个用于仓库管理系统的开源项目。使用Git做为代码管理工具,并在此基础上搭建起来的web服务。

    三者都是基于git的,能够说是git的衍生品。

   二、Github和GitLab的异同点

   (1)相同点:两者都是基于web的Git仓库,在很大程度上GitLab是仿照GitHub来作的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合做开发项目的中心化云存储的场所。

   (2) 不一样点:GitHub做为开源代码库及版本控制系统,拥有超过900万的开发者用户,目前仍然是最火的开源项目托管系统。GitHub同时提供公共仓库和私有仓库,但若是要使用私有仓库,是须要付费的。

而GitLab解决了这个问题,你能够在上面建立私人的免费仓库。GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有很多的特点:容许免费设置仓库权限;容许用户选择分享一个project的部分代码;容许用户设置project的获取权限,进一步的提高安全性;能够设置获取到团队总体的改进进度;经过innersourcing让不在权限范围内的人访问不到该资源。从代码私有性方面来看,有时公司并不但愿员工获取到所有的代码,这个时候GitLab无疑是更好的选择。但对于开源项目而言,GitHub依然是代码托管的首选。

相关文章
相关标签/搜索