zoukankan      html  css  js  c++  java
  • Git 简明教程(一)

    版本控制工具,早期的vss tfs svn等,这些应该是老一辈程序员常用的工具。目前 git 已经在版本控制领域占主流的地位,因为国外的github 和国内的码云 gitee 均用的是git。

    git 官网地址https://git-scm.com/ 可以直接下载windows版本;

    如果你要搭建自己的私有代码仓库,可以选择使用gitlab、gitea 等这些开源的系统。gitlab用的人相对较多,因为功能齐全,但是,对服务器的要求也较高。gitea属于轻量级的系统,对服务器要求不高,一般的个人或创业公司可选择用gitea。
    具体的安装过程在此就不多说。

    习惯性的先贴出官方文档的地址:https://git-scm.com/book/zh/v2 学习能力不错和想了解更多的朋友,可直接访问官方文档查找资料,文档有中文翻译,一般人应该看的懂。

    Git 和其它版本控制系统的区别

    Git 和其它版本控制系统(包括 Subversion 和近似工具)的主要差别在于 Git 对待数据的方式。 从概念上来说,其它大部分系统以文件变更列表的方式存储信息,这类系统(CVS、Subversion、Perforce、Bazaar 等等) 将它们存储的信息看作是一组基本文件和每个文件随时间逐步累积的差异 (它们通常称作 基于差异(delta-based) 的版本控制)。

    Git 不按照以上方式对待或保存数据。反之,Git 更像是把数据看作是对小型文件系统的一系列快照。 在 Git 中,每当你提交更新或保存项目状态时,它基本上就会对当时的全部文件创建一个快照并保存这个快照的索引。 为了效率,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个 快照流。

    三种状态

    Git 有三种状态,你的文件可能处于其中之一: 已提交(committed)、已修改(modified) 和 已暂存(staged)。

    已修改表示修改了文件,但还没保存到数据库中。

    已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

    已提交表示数据已经安全地保存在本地数据库中。

    这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。

    用户信息

    安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改:

    $ git config --global user.name "John Doe"
    $ git config --global user.email johndoe@example.com

    克隆现有的仓库

    如果你想获得一份已经存在了的 Git 仓库的拷贝,比如说,你想为某个开源项目贡献自己的一份力,这时就要用到 git clone 命令。 如果你对其它的 VCS 系统(比如说 Subversion)很熟悉,请留心一下你所使用的命令是"clone"而不是"checkout"。 这是 Git 区别于其它版本控制系统的一个重要特性,Git 克隆的是该 Git 仓库服务器上的几乎所有数据,而不是仅仅复制完成你的工作所需要文件。 当你执行 git clone 命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。 事实上,如果你的服务器的磁盘坏掉了,你通常可以使用任何一个克隆下来的用户端来重建服务器上的仓库 (虽然可能会丢失某些服务器端的钩子(hook)设置,但是所有版本的数据仍在,详见 在服务器上搭建 Git )。

    克隆仓库的命令是 git clone 。 比如,要克隆 Git 的链接库 libgit2,可以用下面的命令:

    $ git clone https://github.com/libgit2/libgit2

    提交更新

    现在让我们运行 git add 将“修改过的文件”放到暂存区, 然后再运行提交命令 git commit:

    查看提交日志

    在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的工具是 git log 命令。

  • 相关阅读:
    绑定方法和非绑定方法
    property属性
    面向对象的三大特征之一:封装
    asp:GridView控件的使用
    javaWeb中struts开发——Logic标签
    javaWeb中struts开发——Bean标签
    大话数据结构(十二)java程序——KMP算法及改进的KMP算法实现
    大话数据结构(十一)java程序——串
    大话数据结构(七)——单链表的整表创建与删除
    大话数据结构(十)java程序——队列
  • 原文地址:https://www.cnblogs.com/pzscit/p/15370308.html
Copyright © 2011-2022 走看看