zoukankan      html  css  js  c++  java
  • Git 学习笔记

    Git 简介

    Git,开源,分散型版本控制系统。由于 Linux 内核开发使用的 SCM 版权变更,Linux 创始人便创建了 Git。现在 Git 的仓库管理功能是 GitHub 的核心。

    在 Git 之前还有 Apache 的 SVN,集中型。

    集中型:将所有仓库集中存放在服务端,所以最终只有一个仓库。因此便于管理。缺点:服务器出现磁盘故障,版本库的完整性无法保证;服务器无法连接,无法获取最新的源码。

    分散型:不存在服务端。开发者之间可以互相 pull 和 push,Fork 和 Pull Request,因此需要事先制定规范,不然初学者不知道最新的代码在哪个仓库。Fork 就是将 Git 的某个仓库复制到自己的账户下,但 Fork 的仓库和原仓库是不同的仓库。

    由于 Git 和 GitHub 的普及,要是规则制定得当,分散型也能便于管理。

    Git 与 SVN 的区别:

    • Git 是分布式,最核心的区别。
    • 所有的 SCM 都是把文件的元信息隐藏在类似 .svn 的文件夹里。在这种文件夹里,Git 按元数据存储内容,SVN 按文件。
    • 分支不同。
    • Git 没有全局版本号,SVN 有。Git 比 SVN 缺少的最大的特征。
    • Git 内容完整性比 SVN 好:Git 内容存储使用 SHA-1 哈希算法。在分布式的基础上,进一步确保内容完整性,降低磁盘故障和网络问题对版本库的破坏。

    Git 配置

    Linux 或者 Mac 环境以 LF 换行;Win 环境以 CRLF 换行。GitHub 中公开的代码大部分以 LF 换行,所以在安装 Git 的时候,应选择 Checkout CRLF,commit LF。

    提供了一个 git config 工具,用来配置或读取相应的环境变量。在 Win 环境下,环境变量可以保存在三个地方的文件夹:

    • 安装目录 / mingw64 / etc / gitconfig 文件:系统配置,对所有用户都适用。使用 git config --system [值] 命令读写。
    • 用户主目录 / .gitconfig 文件:只适用该用户。使用 git config --global [值] 读写。
    • 当前项目 / .git / config 文件:只适用当前项目。使用 git config 读写。适用范围越小的配置,会覆盖范围大的相同配置。

    配置文本编辑器(默认可能是 vi 和 vim)和差异分析工具(也可以自己开发工具):

    查看配置信息:

    查看配置信息列表(如果没有添加选项,就可能会有重名的配置。从上到下,对应配置范围从大到小):

    git config --list

    读写某一个:

    git config key [value]

    或者直接找到文件进行编辑,还或者用命令(如在用户主目录下):

    atom .gitconfig

     Git 工作区、暂存区、版本库

    • 工作区:磁盘下能看到的目录(非隐藏目录)。
    • 版本库:即之前提到的 .git 目录,是隐藏目录。
    • 暂存区:一般存放在版本库的 index 文件中。英文名称为 stage 或者 index,故有时也称索引。

    三者关系如下:

     


    GitHub:

    1. 本地创建ssh key:ssh-keygen -t rsa -C "your_email@youremail.com"。直接全部回车,使用默认值(在用户目录下生成.ssh文件夹,存放公钥和私钥)
    2. 打开公钥id_rsa.pub,复制key,然后在github上添加SSH Key。
    3. 验证是否成功:ssh -T git@github.com(使用某个ip第一次执行该命令,访问github时,会提示输入“密码”)
    4. 设置用户名和邮箱(commit的时候会记录):
      1. git config --global user.name "your name"
      2. git config --global user.email "your_email@youremail.com"
  • 相关阅读:
    webpack打包踩坑记录
    node笔记
    你真的会Xilinx FPGA的复位吗?
    Verilog 99题之001-009
    数字电路基础
    跨时钟域处理
    时序逻辑电路基础
    FPGA&ASIC基本开发流程
    关于FPGA的一些小见解
    基于FPGA的I2C读写EEPROM
  • 原文地址:https://www.cnblogs.com/quanxi/p/8213881.html
Copyright © 2011-2022 走看看