Git 是一个分布式的版本管理系统,而 SVN 是一个集中式管理系统。

版本控制

  • Git与SVN的对比

    对比 SVN Git
    工作方式 集中式 分布式
    文件管理 增量式 系统快照
    权限控制 对团队中参与开发的人员进行权限控制 可接受团队外开发者贡献的代码并审核
  • 版本控制工具分类
    • 集中式版本控制工具(SVN、CVS)



      缺点:服务器故障将产生单点故障

    • 分布式版本控制工具(Git、Mercurial、Bazaar...)



      优点:本地具有完整版本历史

Git 简介

  • Git 资源

  • Git 优势

    • 大部分操作在本地完成不需要联网
    • 完整性保证
    • 尽可能添加数据而不是删除或修改数据
    • 分支操作非常快捷流畅
    • 与 Linux 命令全面兼容
  • Git 结构

    • 本地结构

  • GitHub(代码托管中心)

  • 本地库和远程库

    • 团队内协作

    • 团队外协作

命令行操作

  • 本地库操作

    • 本地库初始化

      • 命令

        git init
      • 效果

      • 注意:.git 目录中存放的是本地库相关的子目录和文件,不要删除和修改。

    • 设置签名

      • 形式
        用户名:clxye
        Email: chenlia2602@sina.com
      • 作用:区分不同开发人员的身份
      • 辨析:这里设置的签名和登陆远程库(代码托管中心)的账号、密码没有任何关系
      • 命令
        • 项目级别/仓库级别:仅在当前本地库范围内有效
          // 设置本地账号信息
          git config user.name clxye
          git config user.emal chenlia2602@sina.com // 查看保存的信息
          cat .git/config
        • 系统用户级别:登陆当前操作系统的用户范围
          // 设置系统账号信息
          git config --global user.name clxye
          git config --global user.emal chenlia2602@sina.com // 查看保存的信息
          cat ~/.gitconfig
        • 级别优先级
          • 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
          • 如果只有系统用户级别的签名,就以系统用户级别的签名为准
          • 二者都没有不允许
    • 状态查看操作

      git status

      查看工作区、暂存区状态

    • 添加操作

      git add [file name]

      将工作区的 “新建/修改” 添加到暂存区

    • 提交操作

      git commit -m "commit message" [file name]

      将暂存区的内容提交到本地库

    • 查看历史记录

      // 详细日志信息
      git log // 简洁日志信息
      git log --pretty=oneline // 最简洁日志信息(只显示当前及以前版本日志)
      git log --oneline // 移动到当前版本需要多少步(显示所有日志)
      git reflog
    • 前进后退





      // 基于索引值(只需包含 git log --oneline 中的hash值)
      git reset --hard 9a9ebe0 // 使用^符号(只能后退,一个^后退一步,N个后退N步)
      git reset --hard HEAD^ // 使用~符号(只能后退,后退n步)
      git reset --hard HEAD~3
    • 删除文件并找回

      git
    • 比较文件差异

      git
    • 命令帮助

      git
  • 远程库操作

Git 图形化界面操作

Gitlab 服务器环境搭建

最新文章

  1. 【SAP业务模式】之ICS(二):基础数据
  2. Leetcode Power of Two
  3. c#中抽象类(abstract)和接口(interface)的相同点与区别
  4. Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project LogTest: Compilation failure -> [Help 1]
  5. BIEE从底层表结构向上更新
  6. 条款38:通过聚合设计has-a或者is-implemented-in-terms-of
  7. Java:多线程
  8. Java编程规范实践
  9. 【WinForm】线程中向listview添加数据
  10. power desinger 学习笔记<二>
  11. 平衡树(Splay):Splaytree POJ 3580 SuperMemo
  12. web UI
  13. js原生设计模式——2面向对象编程之继承—new类式继承
  14. leetcode — path-sum-ii
  15. BigDecimal的引入和概述
  16. Python实现下载文件的三种方法
  17. 因mybatis逆向工程而产生的问题
  18. cmd 安装mysql
  19. UML和模式应用1: 面向对象的分析与设计
  20. C语言程序内存的分区

热门文章

  1. 黑马JVM教程——自学笔记(二)
  2. C# prism 框架 MVVM框架 Prism系列之事件聚合器
  3. WPF material UI 的使用
  4. C#设计模式---观察者模式(Observer Pattern)
  5. 嵌入式Linux的启动过程
  6. struts2思想学习(一)
  7. Python如何读写Excel文件-使用xlrd/xlwt模块
  8. 关于ubuntu使用的那些事儿
  9. 字符型:char
  10. 通俗易懂讲解Word2vec的本质