Git是开发和编程团队使用的版本控制系统,非常流行开源项目,以及其他团队协作项目。在本Git指南中,我们将讨论版本控制系统的价值、Git的概述、使用Git的优缺点、如何安装Git、基本命令、工具和必要的Git资源。(对于设计师,也可以查看设计人员版本控制的终极指南.)
什么是版本控制?
基本上是一个版本控制系统(或修订控制系统)是一种能够管理和跟踪给定项目中任何文档的更改的软件。换句话说,您能够在当前的工作主体中获取文件的“快照”,并且您将能够在您希望的任何时候返回这些快照中的任何一个。
它提供了您做了什么、什么时候做的以及对哪些文件做的历史记录。不要认为这些快照是备份,因为有了备份,您就有了文件的单独副本。有了版本控制系统,这一切都在后台使用数据库无缝地进行。
用于保存版本信息的磁盘空间最小。版本控制系统的另一个优点是不需要管理多个备份文件。Git是一个分布式版本控制系统这意味着,如果一个项目中有多个人,他们可以单独工作,而不连接到中央网络,然后他们可以在准备好时直接推到项目中。
版本控制的一个关键好处是可以让几个人同时处理同一个文档。然后,您将能够合并这些更改,以便每个成员可以处理同一个文件,而不必担心它们会影响彼此的工作。很酷,不是吗?
谁应该使用版本控制系统?
任何经常与文件打交道的人——无论是开发web应用程序、构建静态网站、管理开源项目,甚至是在MS Office文档中工作的团队——都应该关注版本控制。从历史上看,版本控制系统一直与开发人员和程序员联系在一起,因为他们通常处理源代码文件(本质上是文本文件),而且他们在团队中工作,不同的成员可能会接触到不同的文件。
想象一下,5个开发人员在同一个项目上工作:管理5个文件意味着要处理20多个文件。大多数项目将有很多很多的文件和更多的开发人员—正如您很快可以想象到的,这可能会成为一个相当大的噩梦。
Git概述
Git是众多版本控制系统中的一种,虽然我没有尝试过所有的版本控制系统,但我尝试过一些知名的版本控制系统,Git是其中的佼佼者。其他一些版本控制系统有:
- 集市
- 颠覆
- TortoiseCVS(GUI为CVS)
Git由以下人员创建Linus Torvalds(Linux的创始人)因为他真的不喜欢并发版本系统(CVS)这是当时最流行的版本控制系统。Torvalds想要一些东西来帮助保持他正在开发的内核版本,他认为他必须建立一个自己的系统。Git是一个开源项目,从Torvalds最初的开发开始,就有了许多其他的项目主要作者和贡献者到项目中。
这是一段精彩的视频,你应该看看托瓦尔兹的解释参加谷歌科技大会.
使用Git的优点
- Git超级容易安装:我将向您介绍安装过程——这是小菜一碟。
- Git比其他系统更容易学习:在本指南的最后,您将有足够的知识来使用Git。
- Git是快:所以它不会成为你不得不强迫自己去做的事情之一,你可以将它无缝地集成到你当前的工作流程中。
- Git是分散:如果很多人都在做一个项目,他们每个人都可以有自己的副本,而不是互相保存。
使用Git的缺点
- Git有一个学习曲线:虽然我确实说过这是一种更容易使用的版本控制系统,但任何引入到工作流程中的新东西都需要一些学习时间。学习Git将类似于学习一个新的软件应用程序,如Word或Excel。
安装Git
Git适用于Windows、Mac OS X和Linux。安装起来出奇的简单。要开始,请访问下载页面Git,在这里找到:
当然,您可以获得项目本身的源代码,包括夜间构建,如果您想更冒险一点的话,但我现在只坚持稳定版本。
Mac OS X Git安装
您只需下载dmg文件,双击它就可以了。你也可以用MacPorts,但DMG文件是一个更好的体验,有更多的选项。
Windows Git安装
在Windows上有两个选项。在Windows上安装Git的最简单和最快的方法是下载msysGit exe文件从谷歌项目托管。msysGit是Git for Windows。
安装之后,Git会自动编译,这很好。它还提供GUI修改,特别是为Git操作提供一个额外的上下文菜单。第二个选项是Git onCywgin在您熟悉Git的基本工作原理之前,这是我首先推荐的路线。
Cywgin是您可以下载的最方便的Windows工具之一,因为它允许您在Windows中运行类似linux的环境。在设置Cywgin时,将有一个选项将Git添加到系统中,然后就可以开始工作了。
Linux Git安装
如果您想使用包管理器为您安装Git,那么可以使用一些rpm和deb,但是从源代码安装非常简单。下载源包并确保您拥有以下依赖项:expat、curl、zlib和openssl。有了所需的东西之后,就可以调用普通的make/build命令了。
测试Git安装
安装Git后要做的第一件事是确保安装正常。最简单的方法是在命令行中输入以下命令:
git -版本
如果它起作用了,你应该会看到如下内容:如果您发出该命令,但没有得到任何返回,或者得到某种类型的错误消息,那么我们可以假设Git没有正确安装。如果是这样的话,看看Git文档从那里开始。
创建一个新的存储库
现在,让我们开始实际使用Git。我们要做的第一件事是创建一个新的Git存储库。一个存储库是Git将在其中为您监视内容的目录。
您可以为每个项目创建存储库。在命令行中,浏览到要创建Git存储库的目录。更好的方法是创建一个新目录。
进入该目录后,输入以下命令:
git init
如果它有效,你应该会看到类似这样的内容:
向存储库添加文件
Git现在将密切关注在我们初始化的目录中发生的任何事情。当然,里面还没有什么东西可以看,也没有什么东西可以做。我们可以通过向存储库中添加一些东西来改变这一点。
现在通过创建一个小文本文件来实现这一点。我叫我的档案filename.txt
并放置了“你好,世界!””在里面。在目录中创建了文本文件后,我们需要让Git跟踪它,这意味着它将监视文件的更改。
添加文件的命令如下:
git添加*
这个命令对Git说:“在当前目录中添加所有内容。”如果你想说得更具体,你可以这样写:
git添加filename.txt
提交文件
Git添加
命令通常会立即被Git跟随提交
命令。当我们提交我们想让它成为我们工作的一个快照。当我们在Git中提交一个文件时,我们需要给它一个提交消息。
的提交消息只是解释我们要做什么和为什么。把提交消息看作是文件的特定快照上的注释。提交的命令是:
“这是我的提交消息!”
引号中的最后一位是提交消息。
运行add和提交
让我们运行两个添加
命令和提交
命令,然后查看输出。你得到的输出基本上是读取你的提交消息,告诉你哪些文件更改了以及它们是如何更改的。就我而言,我们发现:
- 存储库中有一个文件被更改(我们只有一个文件)
- 做了2个插入(我的文件有两行长)
- 0次删除(没有删除任何内容)
- 最后一行解释Git必须创建该文件,因为它以前不存在
查看文件的更改
现在我们已经提交了文本文件,我们可以继续我们的愉快的方式。让我们假设我们需要做的下一件事是向文本文件添加新行。所以我们修改文本文件,加一两行字,然后喝杯咖啡。
咖啡变成了午餐,当我们回到工作岗位时,我们已经忘记了刚刚做了什么。不要害怕,因为Git有命令可以提供帮助。我们可以发出以下命令:
git diff
的diff
命令将告诉您未提交的文件或正在处理的当前文件与上次提交的文件之间发生了哪些变化。
对文本文件进行一些更改并保存文件后,运行diff
命令将显示以下输出:这告诉我们filename.txt
在a/(文件的提交版本)和b/(文件的最新版本)之间发生了变化。改变的地方是添加了一个新行(新添加的行表示“第二行!”)。“你好,世界!”,但是Git在编辑行附近添加了文本,这样您就有了一些上下文。
一旦确认完成了要在此提交中所做的所有更改,就可以使用提交
命令。
记录和恢复到以前的提交
假设我们已经提交了存储库文件,现在是时候回家了。你回到家,吃完晚饭,看完电视节目,然后就去睡觉了。然后,您突然意识到今天的CSS样式表更改非常糟糕,并且知道自己犯了一些糟糕的代码就睡不着觉了。
你能做的就是返回到之前的提交。但首先,您要做的是获取提交的日志。只需发出以下命令:
git日志
的日志
命令将为您提供提交哈希(提交的惟一ID)、提交的作者以及提交的日期/时间。
为了返回,对我们来说最重要的信息是提交哈希。复制要忽略的提交哈希。然后,您希望发出以下命令,替换(YourHash)
用你复制的散列:
git恢复[YourHash]
的回复
命令将弹出一个编辑器,允许您更改提交消息。
如果你不想做任何更改,你可以退出编辑器,你的还原就会完成。您可以通过打开该文件来确认恢复成功。在提交中更改的内容应该消失,只剩下原始文件。
进一步探索Git
现在您已经了解了使用Git的基础知识,可以开始更多地探索它,并为给定的样式找出最佳工作流。我想说的一个重要概念是,Git不一定非要在命令行中使用。通过命令行学习如何使用Git使您对系统的工作原理有了很好的基础知识,但是在了解了这些基础知识之后,您可能希望使用一些可以增强Git体验的工具。
通过命令行掌握Git的另一个好处是,无论当前使用的是什么操作系统,您都可以使用Git。但是,您可以使用许多工具来简化Git。我们接下来要讨论的是Gitk存储库浏览器、Git命令和您可能经常使用的工具,以及一些可以增强Git的外部工具。
Gitk
Git附带的一个工具是Gitk.Gitk是一个Git存储库浏览器,它是用于项目的GUI。输入以下命令访问Gitk:
gitk
有用的Git命令
下面是我每天使用的一些Git命令。有许多Git特性我以前从未使用过或只使用过一次(系统有大量的特性集)。
添加
-用于添加新文件到您的项目提交
-提交更改到您的项目推
-我们把所有的代码都放在一个中央存储库中,这样所有的开发者都可以共享他们的代码。等功能推
是什么让Git成为一个真正强大的工具拉
-这是你用来获取别人的代码,相反推
分支
-如果你想从主提交分支出去,尝试一些不同的东西(例如,如果你想测试一些东西),原来的分支将保持不变,当你继续工作合并
-你可以将一个分支合并回主代码库克隆
当我想从某人那里克隆一个新的存储库时,这将使主分支关闭gitk
-你在Git中所做的可视化工具
一些Git工具
- Gitx-一个用于查看存储库信息的漂亮的GUI
- Gity-以上所有的Gitx的功能,然后一些-我已经能够集成它Coda很好
- Redmine-这是一个你可以免费下载和安装的web服务,它有与Git集成的插件;使用它来跟踪bug、问题和开发周期,以及添加更多关于提交的信息
- GitHub-基于web的源代码托管
必要的Git资源
- Git官方文档-该项目的官方文档页面
- 官方Git维基Git的社区驱动文档
- Git参考-一个很好的Git基础使用参考网站
- 日常GIT-关于20个(大约)最流行的Git命令的信息
- Git - SVN速成班-一个关于使用Git安装和运行的快速教程
- 针对设计人员的版本控制——针对设计人员使用Git的工作流程指南
- Git用户手册-一个全面的参考和指南Git
结束
我只是触及了版本控制,特别是Git可以为您做什么,我想建议,一旦您完成了本指南,您可以出去玩一玩Git,并阅读我上面提到的基本Git资源。看看Git的一些更高级的特性。尽管一开始看起来很吓人,需要做很多工作,但从长远来看,使用版本控制系统确实会让您的生活轻松很多。
相关内容
- 设计人员版本控制的终极指南
- 如何实现远程团队协作
- 设计人员与开发人员的合作技巧