对版本控制有了基本的了解就成为了一种必要性对于每个与代码打交道的人,无论你是软件开发人员、网页设计师,甚至是与开发人员在一个团队中工作的图形设计师。除了必须知道但是,也有许多理由说明您应该这样做想要要使用版本控制系统(VCS)。
为什么要使用版本控制系统
版本控制使团队协作更容易。如果没有版本控制系统,团队中的每个人可能都在使用相同的共享文件集。有人覆盖别人的更改只是时间问题。
此外,VCS负责将来自不同人员的更改合并到一个公共版本中。在版本控制术语中,这称为合并。因此,同时处理相同的文件变得既安全又容易。
但即使你是独自工作,风投仍然有很多好处。例如,版本控制存储和恢复版本你的项目就容易多了。如果没有VCS,您可能会使用自己冒险的命名方案来保存文件和文件夹的版本,导致文件名类似的文件和文件夹数量非常难以管理website-relaunch-homepage_2013-10-11_v3_JenniferSmith.html。
有了风投,你磁盘上只有一个项目文件夹。所有其他版本和变体都安全地存储在版本控制系统的数据库中,并进行了整齐的描述,随时可以进行恢复。最后但并非最不重要的是,使用风投最好的方面之一是它作为文档,也有助于促进文件的行为。
因为每个主要更改都包含在提交(后面会有更多关于这个术语的内容),并且每次提交都用一条消息进行描述,您可以非常容易地跟踪并理解项目中的增量更改。这变得更加有用当问题出现时你必须找出它们的起源。
为什么要使用Git
市场上有大量的版本控制系统然而,你应该选择的理由有很多Git。Git,可以说是目前最流行的开源版本控制系统。
作为一个分散版本控制系统, Git提供:
- 难以置信的速度
- 能力离线工作
- 拥有一个完整的复制(包括项目的历史记录)
Git的另一大优势是它的优越性分支管理。虽然其他版本控制系统也知道分支的概念,但Git真的是围绕它而建,因此它提供了一个超级快速和简单的分支体验.一旦理解了这个概念,就可以将代码质量提升到另一个水平。
其他的概念,比如暂存区域或者是藏,也有助于使Git成为编码工具中非常有用的一部分。在选择任何工具时,你还应该记住另一个因素:流行度。一个在市场上没有被采用的工具,没有社区,通常是糟糕的文档,不能与其他系统集成,并不能保证长期生存。
Git已经成为主流。Linux内核、Ruby on Rails、jQuery和许多其他主要的开源项目,以及大公司(如谷歌、Facebook和Twitter)都在使用它Git的质量和寿命都得到了证明。
安装Git
安装Git在最近变得非常容易(你真幸运!)两者都有一键式安装程序Mac和窗户。要遵循本指南,请先在您的计算机上安装Git。
还有,我们的免费Git小抄在我们开始深入研究Git之前,handy非常有用。有了Git小抄,您不必记住所有Git命令,它将允许您脱离本指南,自行探索Git。 完成Git安装后,是时候启动命令行了。
在你开始之前应该做两个基本配置:你的姓名和你的电子邮件。要设置您的姓名和电子邮件地址,请发出以下两个Git命令,但是要修改它们,以便使用您自己的姓名和电子邮件地址:
$ git配置全局用户名你的名字"
$ git config——全局用户。电子邮件”(电子邮件保护)"
开始在第一个存储库中使用Git
有两种方法可以开始在有版本控制的项目中工作:克隆现有存储库而且创建一个新的存储库.
克隆现有存储库
当您加入一个已经使用版本控制系统运行的项目时,您可能会得到一个到该项目的URL存储库在远程服务器上。什么是存储库?存储库只是项目的一个花哨术语一组文件和文件夹.
例如,签出jQuery在GitHub上的知识库:
要在本地计算机上获取项目存储库的副本,请使用git克隆
命令,像这样:
$ git克隆https://github.com/gittower/git-crash-course.git
上面的命令将下载位于https://github.com/gittower/git-crash-course.git你的电脑。注意:如果您没有存储库,可以随意从上面的Git命令示例进行克隆,并修改其中包含的测试存储库。您还可以浏览开放源码项目GitHub,找一个你感兴趣的存储库,然后克隆到你的电脑上。
创建一个新的存储库
另一种开始使用版本控制的可能性是,当您已经有一个现有的项目,但该项目目前还没有处于版本控制之下。使用命令行导航到项目的根文件夹,然后使用git init
命令启动此项目的版本控制:
$ git init
验证。git文件夹的存在
您可能想知道Git将关于存储库的所有数据存储在哪里。在我所讨论的两种场景中——克隆现有存储库或创建新的存储库——您现在应该在项目的根文件夹中有一个隐藏文件夹。该文件夹是您的本地Git存储库,该文件夹的名称为..
可以通过发出ls
这样的Unix命令:
ls拉
知道这个文件夹的存在就足够了。你不可触摸这个神奇文件夹里的任何东西。
处理你的文件
在处理项目文件时,你会得到极大的平静,这将有助于解放你的创造性和实验性思维。您不必再担心更改您的文件:使用您喜欢的任何应用程序(例如您最喜欢的编辑器、文件浏览器等)修改、删除、添加、复制、重命名或移动它们。Git将允许您在必要时撤销更改,而且它不会影响使用相同文件的其他人。
做出承诺
只有当您觉得已经达到一个值得注意的状态时,才需要再次考虑版本控制。此时,当您的工作已经达到一个良好的阶段时,是时候将您的更改打包到一个提交。提交意味着将对文件所做的更改提交到存储库。
了解您所做的更改的概况
我的建议和一个很好的实践:作为做出承诺的第一步,对自己所做的更改做一个概述。方法可以轻松查看更改的概述git状态
命令:
$ git状态
签发git状态
命令,Git将列出自上次提交以来的所有更改,并分组到不同的类别中。下面是我们的工作示例输出git状态
命令:你可能不熟悉上面工作示例输出中的几个术语:
- 无路径的文件:Git调用文件开始回升的当它们还没有处于版本控制之下时。在大多数情况下,这些只是简单的您创建的新文件在提交到存储库之前.
- 策划/ Unstaged文件:文件被修改并不意味着它会自动包含在下一次提交中。要在提交中包含更改,需要显式地告诉Git包含它们。这是Git与其他版本控制系统的主要区别;与此同时,这也是一个主要的优势,因为它允许你撰写一份非常精确的承诺只有相关的变化。
为下一次提交标记的更改将被调用上演了,而应该简单地保留为本地修改的更改则被调用unstaged.
准备承诺
现在是时候标记希望在下一个提交中打包的更改了。在Git行话中,这个过程意味着您Staging您的更改.您如何进行更改?
- 使用
git添加
命令修改和未跟踪的文件。 - 使用
git rm
确认删除文件。 - 如果你想的话准备所有的更改您可以使用
git add -A
命令。
从我们上面的工作示例中,可以看出如何进行index . html文件(已修改)、new-page.html文件(该文件未被跟踪),以及css文件夹:
$ git添加index.html new-page.html
下面的命令确认您要删除error.html文件:
$ git rm error.html
如果你看一下输出git状态
命令从我们上面的工作示例中获取,您将看到imprint.html文件被修改。我故意没在舞台上git添加
命令,因为我想把它留到以后提交。
提交前检查
再一次,我建议大家看看git状态
在最终提交之前告诉您。下面是我们的工作示例的输出,在我将我想提交的文件暂存之后:的要提交的更改段落告诉你刚刚上演了什么。
提交
要在提交中保存这组更改,只需使用git提交
命令,并提供良好的描述性消息,告诉您和其他人提交是关于什么的- m
选项,像这样:
$ git commit -m“实现新的登录框”
查看提交历史记录
如果您想了解到目前为止项目中发生了什么,可以使用git日志
命令:
$ git日志
这个Git命令按时间顺序列出所有记录的提交。
精通Git的下一步
恭喜你!到目前为止,您已经掌握了版本控制和Git的最重要的概念。为了让您的Git知识更上一层楼,我建议执行以下步骤。
尝试Git GUI
使用桌面客户机应用程序可以更轻松、更舒适地执行许多任务,更不用说不必记住所有的命令和参数了。Windows用户可能想看一看乌龟Git而Mac OS用户则可以给予塔这是我和我的团队为了让Git更容易使用而创建的Git桌面客户端。
Git学习资源
近年来,关于Git的文档、教程和文章的数量增加了很多。阅读这些参考资料,更好地使用Git:
- 编译Git学习资源(书籍、文章、教程)
- Git -简单指南
- 箴Git电子书(免费)
- Git版本控制:用于协作软件开发的强大工具和技术(Amazon.com)
- Git口袋指南(Amazon.com)
结论
版本控制已经成为现代开发人员工作流程中不可或缺的一部分。虽然版本控制在过去是一件繁琐的事情,但像Git这样的系统不仅使版本控制非常简单,而且还提供了许多其他工作流的好处。