Git基础
版本控制系统
集中化的版本控制系统
一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新
分布式的版本控制系统
客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来
Git的三种状态
Git 有三种状态,你的文件可能处于其中之一:
- 已提交(
committed
) - 已修改(
modified
) - 已暂存(
staged
)
分别对应三个区域:
git directory(Repository)
:Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。working Directory
:工作目录是对项目的某个版本独立提取出来的内容。这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。staging Area
:暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。有时候也被称作`‘索引’’,不过一般说法还是叫暂存区域。
基本的Git工作流程如下:
- 在工作目录中修改文件。
- 暂存文件,将文件的快照放入暂存区域。
- 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
获取帮助的命令:
git help 命令名称
git 命令名称 --help
man git-命令名称
文件状态
请记住,你工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。
常用命令
git status
:查看工作目录的状态git add 文件名
:将文件添加到暂存区。暂存区就是下次要提交的文件列表。git commit -m '更新消息'
:提交到本地仓库git log
:查看所有的历史记录git checkout -- 文件名
:丢弃工作目录的改变git diff
:查看当前工作目录和暂存区快照之间的差异git diff
比较未暂存和已暂存之间的差异git diff --staged
比较已暂存和已提交之间的差异
git rm
:移除文件git rm 文件名
:从暂存区中删除,并删除工作目录中的文件git rm --cached 文件名
:只是从暂存区中删除,不会删除工作目录中的文件
git reset
:撤销操作git push 远程服务器名称 分支名称
:推送到远程仓库,一般使用git push origin master
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 YD Blog!