0%

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 的还原操作,实际上就是将保存在仓库中的快照提取出来覆盖到工作区)

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

添加

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

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

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

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

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

撤销

如果你喜欢我的博客,那就请我吃冰淇淋吧(づ ̄3 ̄)づ╭❤~
  • 本文作者: LJason
  • 本文链接: https://ljason.cn/Git-Commit/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

欢迎关注我的其它发布渠道