2

Git——提交

 3 years ago
source link: https://ljason.cn/Git-Commit/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Git——提交

发表于 2020-05-16

更新于 2020-05-18

分类于

Git

之前已经简单说了 Git 的基础,还有多人协作的流程。接下来的博客就来聊聊一些 Git 基础中更加深入的内容。

版本控制的核心是“版本”,Git 是版本控制软件,对应的核心概念就是 提交 。提交一次就是一个版本,而每一次的提交,不管是快照还是(未修改的文件)链接,覆盖的范围都是整个项目。

一次提交操作,具体分两个步骤:

  1. **添加(Add)**:将修改的文件添加到 暂存区
  2. **提交(Commit)**:将在 暂存区 的文件保存到 Git 仓库。

这里延伸出 Git 的基础概念。

被 Git 管理的文件,有三种状态:

  • 已修改(modified)
  • 已暂存(staged)
  • 已提交(committed)

分别对应三个区域:

  • 已修改(modified) —— 工作区(Working Directory)
  • 已暂存(staged) —— 暂存区(Staging Area)
  • 已提交(committed) —— Git 仓库(Git Directory)

工作区是 在磁盘上可以直接看见的、可以用编辑器直接修改文件 的目录。当文件被修改了,Git 就会把这个文件标记为 已修改

暂存区实际上只是一个文件,里面存储了从工作区添加的被标记为 已修改 的文件的快照。当文件被添加进暂存区时,Git 就会将这个文件标记为 已暂存

Git 仓库是 Git 中最重要的部分,存放了每个从暂存区提交的文件快照。当文件从暂存区提交到 Git 仓库时,Git 就会将这个文件标记为 已提交。(Git 的还原操作,实际上就是将保存在仓库中的快照提取出来覆盖到工作区)

00.webp

了解 Git 的基础概念之后,就不难理解为什么一次提交操作有两个步骤了:首先将修改添加到暂存区,然后再提交进 Git 仓库。

现在可以来说说 添加(Add) 了。

最常用的添加命令,也是人人都会用的,可能就是 git add . 了。在 Git 2.0 以上,git add . 默认等于 git add --all。这个命令会将当前工作区的所有更改添加进暂存区,这里的“更改”有三种情况:新增文件、修改文件、删除文件。

熟悉 Linux 的小伙伴都知道,. 表示当前目录。相对的,Git 也可以单独添加某个文件或目录,命令是:git add <文件名>,并且可以使用 * 通配符,比如:git add abc*

如果还想要更精细的控制,可以使用交互模式:git add --interactive。交互模式可以具体控制到某个文件内的代码片段,甚至可以极端到逐行提交。

这种操作在实际开发中也是比较常见的。举个栗子:在一个类中添加了一个新的方法,同时修复了另一个方法中的错误,这时候就可以分开提交。分开提交的目的在于,可以使提交的历史纪录更加清晰,同时能让其他人更早修复错误。还可以排除一些不该提交的修改,比如 为调试而做的实验性修改,或尚未完成的修改。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK