Git 历史/术语/命令/基本操作

一、Git基础知识

1.1 git的历史

发明linux的人发明了git,原因是当时一个公司不再提供免费的源代码版本管理工具,然后他自己写了一个。

1.2 git的优势

1、git模型提供了一个本地环境,在其中可以使用一个服务器端仓库(git术语中称为远程)的副本进行开发工作。修改之后,可以将本地内容更新到远程端。
开发过程中本地不需要连网。
2、SHA1,Git的内部使用SHA1作为内容的密钥来计算,所有不可能在git知情的情况下变更git所管理的内容。
3、git允许遍历之前的版本,编辑并更新它们。

1.3 关键概念

git是分布式的,每一台机器都有仓库的完整副本,且包含历史记录。
一般会有一个在线的服务器作为托管服务器,但这个服务器并不是必须的,它的存在只是为了有一个一直在线且地址固定的git终端,用于同步代码。
在git中,服务端被称为远程仓库(或者称为远程),复制操作称为克隆,克隆到本机进行工作银行称为本地环境,在本地环境进行的谋划变更银行称为提交。

1.4 下载安装

可以从 git-scm网站 去下载。
也可以直接下载带有GUI的smart-git

安装之后,在终端执行命令git --version如果能正常输出版本即安装成功。

二、基本操作

2.1 核心命令

命令 备注
工作目录 暂存区域 add 暂存本地变更
暂存区域 本地仓库 commit 仅提交暂存区域中的内容
本地仓库 远程仓库 push 在推送时同步内容
本地仓库 工作目录 checkout 切换当前分支、
远程仓库 本地环境 clone 创建本地仓库和目录
远程仓库 本地仓库 fetch 更新远程分支的引用
远程仓库 本地仓库和工作目录 pull 抓取和合并到本地分支和工作目录

2.2 详细操作命令

最普遍的命令是:

git <git-options> <command> <command-options> <operands>
// <git-options> 是git本身的全局选项,有些选项也可以是可执行的命令

git中的高层命令

命令 目的
add 将文件内容添加到索引
bisect 通过二进制搜索来查找涉及缺陷的变更
branch 列示、创建或删除分支
cherry 找出有待应用到上游(远程分支)的提交
cherry-pick 应用已有提交所涉及的一些变更
clone 将仓库克隆到新目录
commit 将变更记录到仓库
config 获取以及设置仓库或全局配置
diff 显示提交之间、提交与工作树之间等的变更
fetch 下载来自另一个仓库的对象或引用
grep 打印匹配一个模式的行
help 显示帮助信息
log 显示提交日志
merge 将两个或多个开发历史合并到一起
mv 移动或重命名一个文件、目录或符号链接
pull 从另一个仓库或本地分支进行抓取或集成
push 更新远程引用以及相关的对象
rebase 将本地提交转发到更新的上游头信息
rerere 将记录的解决内容重用于合并的冲突
reset 将当前HEAD重新设置为指定状态
revert 还原一些已有的提交
rm 从工作树和索引中移除文件
show 显示各种类型的对象
status 显示工作树状态
submodule 初始化、更新或检查子模块
subtree 合并子树并且将仓库划分成子树
tag 创建、列示、删除或验证一个标记对象
worktree 管理多个工作树

低层命令

命令 目的
cat-file 提供仓库对象的内容或类型和大小信息
commit-tree 创建一个新的提交对象
count-objects 统计松散对象的数量及其磁盘消耗
diff-index 将树与工作树或索引进行对比
for-each-ref 输出每一个引用上的信息
hash-object 计算对象ID并且选择性地从一个文件中创建二进制大型对象
ls-files 显示与索引和工作树中文件有关的信息
merge-base 为合并找到尽可能通用的共同起源
read-tree 将树信息读入索引中
rev-list 以时间倒序顺序列出提交对象
rev-parse 列出本地仓库中的引用
show-ref 列出本地仓库中的引用
symbolic-ref 读取、修改和删除符号引用
update-index 将工作树中的文件内容注册到索引
update-ref 更新被安全存储在引用中的对象名称
verify-pack 验证打包好的Git归档文件
write-tree 从当前索引中创建树对象

操作技巧
当使用命令的完整单词是需要在前面加上两个短横线,比如--global
如果使用命令的缩写,则只需要一个短横线即可,比如-g
如果同时使用多个命令,这些命令可以一并被传递,比如-am代替-a -m
执行命令时可以使用tab补全。

原文地址:https://www.cnblogs.com/amnotgcs/p/13840984.html