1. 犀牛前端部落首页
  2. git教程

保存你的修改

git add

git add 命令将工作目录中的变化添加到缓存区。它告诉 Git 你希望下一个提交中包含这个文件的更新。不过,git add 不会实际上并不会改变你的仓库。直到你运行 git commit ,更改都没有真正被记录。

使用这些命令的同时,你还需要 git status 来查看工作目录和缓存区的状态。

工作原理

git add 和 git commit 这两个命令组成了最基本的 Git 工作流。它们的作用是将项目的诸多版本记录到仓库历史中。不管使用哪种团队协作模型,每个 Git 用户都必须理解这两个命令。

一个项目的编写离不开这个基本模式:编辑、缓存和提交。首先,你在工作目录下编辑你的文件。当你想要备份当前的项目状态时,你使用 git add 缓存更改。当你觉得这个被缓存的副本已经就绪,你使用 git commit 将它提交到项目历史。git reset 命令用于撤销提交或被缓存的快照。

除了 git add 和 git commit 之外,git push 也是完整的 Git 协作流程中的重要一环。git push用于将提交的更改发送到远端仓库。随后,其它团队成员也可以看到这些更改。

git add 命令和 svn add 不同。后者直接将文件添加到仓库中,而 git add 作用于更抽象的更改(更低一层)。也就是说,哪怕对于同一个文件,每次修改时你都需要使用 git add ,而 svn add只需要使用一次。这听上去多此一举,但却使项目更易于管理。

缓存区

git add 命令最主要的作用是将工作目录中的更改添加到 Git 的缓存区。缓存区是 Git 特有的功能之一,如果你之前使用的是 SVN(甚至是更古老的 Mercurial),那你可得花点时间理解了。你可以把它理解成工作目录和项目历史中间的缓冲区。缓存区是 Git 三个树状文件结构之一,另外两个是工作目录和提交历史。

缓存允许你把紧密相关的几份更改合并成一份快照,而不是直接提交所有新的更改。也就是说你可以同时进行多个无关的更改,最后分成几次将相关更改添加到缓存区并提交。对于任何版本控制系统来说,保持提交的原子性非常重要,这有利于追踪 bug 以及用最小的代价撤销更改。

用法

git add <文件>

缓存 <文件> 中的更改,准备下次提交。

git add <目录>

缓存 <目录> 下的所有更改,准备下次提交。

git add -p

开始交互式的缓存。你可以将某个文件的其中一处更改加入到下次提交缓存。Git 会显示一系列更改,并等待用户命令。使用 y 缓存某一处更改,使用 n 忽略某一处更改,使用 s 将某一处分割成更小的几份,使用 e 手动编辑某一处更改,使用 q 退出编辑。

栗子

对于新项目来说,git add 和 svn import 的作用类似。使用下面两个命令为当前目录创建首个提交:

git add .
git commit

项目设置好之后,新的文件可以通过路径传递给 git add 来添加到缓存区:

git add hello.py
git commit

上面的命令同样可以用于记录已有文件的更改。如前所述,Git 不会区分被缓存的更改来自新文件,还是仓库中已有的文件。

git commit

提交文件

git diff

对比差异

git stash

临时储存

.gitignore

忽略文件

本文来自,本文观点不代表犀牛前端部落立场。

发表评论

登录后才能评论