本文基于Linux进行Git操作介绍
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev apt−getinstallgit−coreapt-get install git-coreapt−getinstallgit−core git --version git version 1.8.1.2 Centos/RedHat 环境安装 如果你使用的是 Centos/RedHat 系统,执行以下命令进行安装:
$ yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel yum−yinstallgit−coreyum -y install git-coreyum−yinstallgit−core git --version git version 1.7.1 Windows 环境安装 在 Git 官方下载地址下载 exe 安装包,并按照安装向导进行安装。
建议安装 Git Bash 这个 git 的命令行工具。
Mac 环境安装 在 Git 官方下载地址下载 mac 安装包,并按照安装向导进行安装。
Git 配置 Git 自带一个名为 git config 的工具,用于帮助设置控制 Git 外观和行为的配置变量。这些变量存储在三个不同的位置:
/etc/gitconfig 文件:包含系统上每个用户及其仓库的通用配置。使用带有 --system 选项的 git config 命令时,将读写此文件的配置变量。
~/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户。可以使用 --global 选项来让 Git 读写此文件。 当前使用仓库的 Git 目录中的 config 文件(即 .git/config):针对该仓库。
每个级别的配置会覆盖上一级别的配置,所以 .git/config 文件中的配置变量会覆盖 /etc/gitconfig 文件中的配置变量。
在 Windows 系统中,Git 会在目录下(通常是用户目录)查找 .gitconfig 文件。Git 还会在 /etc/gitconfig 文件中查找,但仅限于 MSys 的根目录,即安装 Git 时选择的目标位置。
Git 基本概念 版本库 当你克隆一个项目或创建一个 Git 项目时,项目目录下会有一个隐藏的 .git 子目录。这个目录是 Git 用来跟踪和管理版本库的,切勿手动修改。
哈希值 Git 中的所有数据在存储之前都会计算校验和,然后使用校验和来引用数据。这意味着在 Git 不知情的情况下无法更改文件或目录的内容。这个功能是构建在 Git 底层的,是 Git 哲学不可或缺的一部分。如果在传输过程中丢失信息或损坏文件,Git 可以发现。
Git 使用 SHA-1 哈希机制来计算校验和。它是由 40 个十六进制字符(0-9 和 a-f)组成的字符串,根据文件内容或目录结构计算得出。SHA-1 哈希看起来像这样:
24b9da6552252987aa493b52f8696cd6d3b00373。Git 数据库中的信息都是以文件内容的哈希值作为索引,而不是文件名。
文件状态 在 Git 中,你的文件可能处于以下三种状态之一:
已修改(modified):表示文件已被修改,但尚未保存到数据库中。 已暂存(staged):表示对已修改文件的当前版本进行了标记,使其包含在下次提交的快照中。 已提交(committed):表示数据已经安全地保存在本地数据库中。 工作区域 不同状态的文件在 Git 中对应不同的工作区域。
工作区(working):当你克隆项目到本地或创建 Git 项目时,本地会有一个项目副本。工作区是从 Git 仓库的压缩数据库中提取出的文件,用于您使用或修改。 暂存区(staging):暂存区是一个文件,保存着下次提交的文件列表信息,一般位于 Git 仓库目录中。有时也称为“索引”,尽管更常用的说法是暂存区。 本地仓库(local):提交更新时,Git 会找到暂存区的文件,将其压缩并存储到本地仓库的数据库中。 远程仓库(remote):远程仓库是存储在网络上的项目副本,可以与本地仓库同步和交换数据。
这些概念将在下面的 Git 常用操作中进一步解释和使用。
Git 常用操作
$ git init 这将在项目目录中创建一个名为 .git 的隐藏文件夹,用于存储 Git 仓库的相关信息。
$ git clone 这将在当前目录中创建一个名为 myrepo 的文件夹,并将远程仓库的内容克隆到该文件夹中。
$ git add myfile.txt 这将将 myfile.txt 文件的当前版本添加到暂存区。
$ git commit -m "提交消息" 替换 "提交消息" 为您实际的提交消息。
$ git push origin 替换 为您要推送的分支名称。
$ git pull origin 替换 为您要获取和合并的远程分支名称。