diff --git a/sources/2.3-保存你的更改.md b/sources/2.3-保存你的更改.md index 790cff7..83408b0 100644 --- a/sources/2.3-保存你的更改.md +++ b/sources/2.3-保存你的更改.md @@ -1,14 +1,28 @@ -# 保存你的更改 -> BY 童仲毅([geeeeeeeeek@github](https://github.com/geeeeeeeeek/git-recipes/)) + +![Saving changes](https://wac-cdn.atlassian.com/dam/jcr:75f75cb6-a6ab-4f0b-ab29-e366914f513c/hero.svg?cdnVersion=kg) + +***git add / git commit / git diff / git stash / .gitignore*** + +> ✍️ [童仲毅](https://github.com/geeeeeeeeek) | ⏳ 2018 年 10 月 26 日(部分章节未更新) > -> 这是一篇在[原文(BY atlassian)](https://www.atlassian.com/git/tutorials/saving-changes)基础上演绎的译文。除非另行注明,页面上所有内容采用知识共享-署名([CC BY 2.5 AU](http://creativecommons.org/licenses/by/2.5/au/deed.zh))协议共享。 +> ©️ 本文演绎自 Atlassian 编写的 [_Saving Changes_](https://www.atlassian.com/git/tutorials/saving-changes)。页面上所有内容采用知识共享-署名([CC BY 2.5 AU](http://creativecommons.org/licenses/by/2.5/au/deed.zh))许可协议。 + +“保存”这个概念在 Git 等版本控制系统和 Word 等文本编辑应用中不太一样。传统软件里的“保存”在 Git 里被叫做“提交”(commit)。 我们常说的的保存可以理解成在文件系统中覆盖一个已有的文件或者创建一个新的文件。而在 Git 中,提交这个操作作用于若干个文件和目录。 + +在 Git 和 SVN 里保存更改也不一样。SVN 提交或检入(check-in)将会推送到远端的中央服务器。也就是说 SVN 的提交需要联网才能完全“保存”项目更改。Git 提交可以在本地完成,然后再使用`git push -u origin master`命令推送到远端服务器。这两种方法的区别体现了两种架构设计的本质区别。Git 是一个分布式的应用,而 SVN 是一个中心化的应用。分布式应用一般来说更可靠,因为它们不存在中央服务器这样的单点故障。 + +`git add`、`git status`和`git commit`这三个命令通常一起使用,将 Git 项目当前的状态保存成一份快照。 + +Git 还有另一个保存机制:“储藏”(stash)。储藏是一个临时的储存区域,保存还没准备好提交的更改。储藏操作作用于工作目录,三个文件树中的第一棵。它有很多用法,访问 git stash 页面了解更多。 + +Git 仓库可以通过设置忽略一些文件或目录。Git 将不会保存这些文件的任何更改。Git 有多种方式管理忽略文件列表。访问 git ignore 页面了解更多 Git 忽略文件设置。 ## git add -`git add` 命令将工作目录中的变化添加到缓存区。它告诉 Git 你想要在下一次提交时包含这个文件的更新。但是,`git add` 不会怎么影响你的仓库——在你运行 `git commit` 前更改都不会被记录。 +`git add` 命令将工作目录中的变化添加到暂存区。它告诉 Git 你想要在下一次提交时包含这个文件的更新。但是,`git add` 不会实质上地影响你的仓库——在你运行 `git commit` 前更改都还没有真正被记录。 -使用这些命令之时,你还需要 `git status` 来查看工作目录和缓存区的状态。 +使用这些命令的同时,你还需要 `git status` 来查看工作目录和暂存区的状态。 ### 用法