### Pro Git.zh 相关知识点概述 #### 一、Git简介与基础知识 **1.1 关于版本控制** - **本地版本控制系统**:早期的版本控制系统通常存储在本地磁盘,如RCS(Revision Control System),它通过为每一次更改创建一个新文件的方式来追踪文件的变化。 - **集中化的版本控制系统**:例如SVN(Subversion),所有文件的版本都保存在一个中心服务器上,每个用户从服务器获取更新或提交新的更新。 - **分布式版本控制系统**:如Git,不仅在中央服务器上有所有文件的版本库,开发者的机器上也有完整的版本库副本,这使得开发者可以在本地提交更改,之后再推送到中央服务器。 **1.2 Git简史** - Git是由Linus Torvalds于2005年创建,目的是为了更好地管理Linux内核的开发。 **1.3 Git基础** - **直接记录快照,而非差异比较**:Git对待数据更像是一个文件系统,而非差异比较工具。当提交更新时,Git会保存一个快照,并记录下快照的元数据(如作者信息、时间戳等)。 - **近乎所有操作都是本地执行**:Git的大多数操作都只需要访问本地文件系统,因此速度非常快。 - **时刻保持数据完整性**:Git使用SHA-1哈希算法来确保数据的一致性和安全性。 - **多数操作仅添加数据**:除了直接删除文件的操作外,其他操作都是添加新的数据。 - **文件的三种状态**:工作目录、暂存区、已提交。这三种状态是理解Git操作的基础。 #### 二、Git的安装与配置 **1.4 安装Git** - **从源代码安装**:适用于对编译环境熟悉且希望自定义安装的用户。 - **在Linux上安装**:大多数Linux发行版提供了包管理工具,可以直接安装Git。 - **在Mac上安装**:可以通过Homebrew安装Git,或者使用Xcode命令行工具。 - **在Windows上安装**:Git提供了一个官方安装程序,安装过程简单易用。 **1.5 初次运行Git前的配置** - **用户信息**:包括用户名和邮箱地址,这些信息将用于标识提交者。 - **文本编辑器**:可以设置默认使用的文本编辑器,用于编写提交消息。 - **差异分析工具**:Git支持多种差异分析工具,用户可以根据需要选择。 - **查看配置信息**:通过`git config --list`命令可以查看当前的配置信息。 #### 三、Git的基本操作 **2.1 取得项目的Git仓库** - **在工作目录中初始化新仓库**:使用`git init`命令可以初始化一个新的Git仓库。 - **从现有仓库克隆**:使用`git clone`命令可以从一个现有的Git仓库克隆一份副本。 **2.2 记录每次更新到仓库** - **检查当前文件状态**:`git status`命令可以显示工作目录和暂存区的状态。 - **跟踪新文件**:`git add <file>`命令可以将文件添加到暂存区。 - **暂存已修改文件**:同样使用`git add <file>`命令,可以将修改过的文件添加到暂存区。 - **忽略某些文件**:通过`.gitignore`文件可以指定不需要Git跟踪的文件或文件夹。 - **查看已暂存和未暂存的更新**:使用`git status`命令可以看到哪些文件被暂存了,哪些文件还未暂存。 - **提交更新**:使用`git commit`命令可以提交暂存的更改到仓库。 - **跳过使用暂存区域**:通过`git commit -a`命令可以跳过暂存步骤,直接提交所有已跟踪文件的更改。 - **移除文件**:使用`git rm <file>`命令可以移除文件。 - **移动文件**:使用`git mv <oldname> <newname>`命令可以重命名文件。 **2.3 查看提交历史** - **限制输出长度**:`git log --oneline`命令可以只显示每次提交的第一行摘要。 - **使用图形化工具查阅提交历史**:例如使用`gitk`命令打开一个交互式的图形界面。 **2.4 撤销操作** - **修改最后一次提交**:使用`git commit --amend`命令可以修改最后一次提交的信息。 - **取消已经暂存的文件**:使用`git reset HEAD <file>`命令可以取消暂存。 - **取消对文件的修改**:使用`git checkout -- <file>`命令可以恢复文件到上次提交的状态。 **2.5 远程仓库的使用** - **查看当前的远程库**:使用`git remote -v`命令可以看到当前项目关联的所有远程库。 - **添加远程仓库**:使用`git remote add <name> <url>`命令可以添加一个新的远程库。 - **从远程仓库抓取数据**:使用`git fetch <remote>`命令可以从远程仓库获取最新的数据。 - **推送数据到远程仓库**:使用`git push <remote> <branch>`命令可以将本地分支推送到远程仓库。 - **查看远程仓库信息**:使用`git remote show <name>`命令可以查看某个远程库的详细信息。 - **远程仓库的删除和重命名**:使用`git remote remove <name>`和`git remote rename <oldname> <newname>`命令可以删除或重命名远程库。 **2.6 打标签** - **列显已有的标签**:使用`git tag`命令可以列出所有的标签。 - **新建标签**:使用`git tag <tagname>`命令可以创建一个轻量级标签,使用`git tag -a <tagname> -m "your message"`可以创建一个带注释的标签。 - **含附注的标签**:通过 `-a` 参数创建。 - **签署标签**:使用`-s`参数创建带有GPG签名的标签。 - **轻量级标签**:简单的标记某个提交点。 - **验证标签**:使用`git verify-tag <tag>`命令验证签名。 - **后期加注标签**:使用`git tag -a <tagname> -f -m "your message" <commit>`命令可以后期加注标签。 - **分享标签**:通过`git push origin <tagname>`命令可以将标签推送到远程仓库。 **2.7 技巧和窍门** - **自动补全**:可以为Git命令设置自动补全功能,提高工作效率。 - **Git命令别名**:通过`git config --global alias.<short> <command>`命令可以为复杂的命令设置简短的别名。 以上内容概括了《Pro Git》书中的一些核心概念和基本操作方法,对于初学者来说是非常宝贵的资源。通过这些基础知识的学习,你可以更深入地理解和掌握Git的使用技巧。
- 粉丝: 0
- 资源: 12
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (省级水平+原始数据)2011-2021年城乡融合水平【重磅,更新!】
- Kettle按日期变量批量执行任务配置图
- 学习老版本Shiro中遇到的问题
- 基于MATLAB车牌识别设计技术实现【带界面GUI】.zip
- 多用户挂售转卖竞拍闪拍商城系统NFT数藏系统/后端PHP+前端UNIAPP源码带教程
- 基于MATLAB车牌识别设计代码【带界面GUI】.zip
- 基于MATLAB车牌识别技术实现实现技术实现【带界面GUI】.zip
- 基于Python和大数据hadoop电影分析系统源码+文档说明.zip
- 重要!备战CSP-J/复赛:安装NOI Linux环境之VMwareWorkstation Player详细教程
- 毕业设计-基于springboot+vue的学校赛事管理系统【前后端源码+SQL+可运行】41015.zip