git中文教程(3)保存你的更改

  原文来源:https://github.com/geeeeeeeeek/git-recipes


git add

  git add 命令将工作目录中的变化添加到缓存区。它告诉 Git 你想要在下一次提交时包含这个文件的更新。但是,git add 不会怎么影响你的仓库——在你运行 git commit 前更改都不会被记录。

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

用法

git add <file>

  将 <file> 中的更改加入下次提交的缓存。

git add <directory>

  将 <directory> 下的更改加入下次提交的缓存。

git add -p

  开始交互式的缓存,你可以选择文件的一部分加入到下次提交缓存。它会向你展示一堆更改,等待你输入一个命令。y 将这块更改加入缓存,n 忽略这块更改,s 将它分割成更小的块,e 手动编辑这块更改,以及 q 退出。

讨论

  git addgit commit 这两个命令组成了最基本的 Git 工作流。每一个 Git 用户都需要理解这两个命令,不管他们团队的协作模型是如何的。我有一千种方式可以将项目版本记录在仓库的历史中。

  在一个只有编辑、缓存、提交这样基本流程的项目上开发。首先,你要在工作目录中编辑你的文件。当你准备备份项目的当前状态时,你通过 git add 来缓存更改。当你对缓存的快照满意之后,你通过 git commit 将它提交到你的项目历史中去。

  git add 命令不能和 svn add 混在一起理解,后者将文件添加到仓库中。而 git add 发生于更抽象的 更改 层面。也就是说,git add 在每次你修改一个文件时都需要被调用,而 svn add 只需要每个文件调用一次。这听上去很多余,但这样的工作流使得一个项目更容易组织。

缓存区

  缓存区是 Git 更为独特的地方之一,如果你是从 SVN(甚至是 Mercurial)迁移而来,那你可得花点时间理解了。你可以简单地把它想成是工作目录和项目历史之间的缓冲区。

  缓存允许你在实际提交到项目历史之前,将相关的更改组合成一份高度专注的快照,而不是将你上次提交以后产生的所有更改一并提交。也就是说你可以更改各种不相关的文件,然后回过去将它们按逻辑切分,将相关的更改添加到缓存,一份一份提交。在任何修改控制系统中,很重要的一点是提交必须是原子性的,以便于追踪 bug,并用最小的代价回滚更改。

栗子

  当你开始新项目的时候,git addsvn import 类似。为了创建当前目录的初始提交,使用下面两个命令:

git add .
git commit

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

git add hello.py
git commit

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值