<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yooyo Garden &#187; git</title>
	<atom:link href="http://www.yooyo.me/blog/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yooyo.me/blog</link>
	<description>frent-end  and web design</description>
	<lastBuildDate>Thu, 10 Nov 2011 04:43:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>向网站设计师们介绍Git</title>
		<link>http://www.yooyo.me/blog/%e5%90%91%e7%bd%91%e7%ab%99%e8%ae%be%e8%ae%a1%e5%b8%88%e4%bb%ac%e4%bb%8b%e7%bb%8dgit/</link>
		<comments>http://www.yooyo.me/blog/%e5%90%91%e7%bd%91%e7%ab%99%e8%ae%be%e8%ae%a1%e5%b8%88%e4%bb%ac%e4%bb%8b%e7%bb%8dgit/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 16:41:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[胡言乱语]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.yooyo.me/blog/?p=41</guid>
		<description><![CDATA[用过Git 但是不怎么熟悉，发现篇好文章分享下   除非你单枪匹马，在网站工作室里没有团队共同合作。否则你肯定对文件分享感到崩溃。无论怎么努力，当很多人对同一个项目进行设计时，没有一个合适的版本控制系统，事情会变得一团糟。 当你与其他设计师们在创建一个网站并对其进行完善时，前端模板和后端功能的融合将会是一个令人提心吊胆的盲区。 像重写、文件丢失、和常见的“消除以往版本”问题经常会意外地产生。一旦后端功能被嵌入你的模板中，你很怕再触及它们，生怕一个不小心就毁了哪个设计师花费大量时间做出的成果。 此外，即使你们有个共同的存储库，每个人都可以从中签出文件。可能还是会有人忘记签出最新的文件并准备在旧文件上进行最新添加，从而将事情搞的乱七八糟。 在这篇文章中，我将向你们大概介绍一下Git概况，一个相当不错的版本控制系统。   版本控制－三言两语很难解释清楚 版本控制（又叫修订控制或源控制管理）是解决文件共享问题的极佳方法。 基本的概念是：对所有的项目文件都有一个主存储库。团队成员签出文件、进行变更、然后再将它们签入（或提交）。版本控制系统（VCS）自动标识出谁做的变更、何时变更的，以及是否是最新的文件。 它要求你就变更写一个简短的记录以便项目每个人一看就知道你做了什么及为什么这么做。每个文件都有修订历史。因此如果出现可怕的错误你可以轻易地回到任何一个文件的以前版本。 一个好的VCS能够将变更合并到同一个文件。如果你和另外一个人同时在本地计算机上对同一个文件进行变更，当你们将变更后的文件签入主存储库时，系统会将这些变更合并形成一个全新的文件。如果合并时出现冲突，它会提醒你们。 你现在可能正在使用一个粗糙的VCS系统来确保你的文件准确有条理。如果你是设计师，就会像这样： 设计师版本控制－失败 对于PSDs或者其他大型的二进制文件来说这样很好，不需要用VCS系统。但当你在为一个网站管理源代码，那么有一个更好的方法来解决它。 使用版本控制系统的好处有： 　•文件不会被覆盖 　•共同的存储库包含了所有最新文件 　•人们能够同时对同一个文件进行变更而不发生冲突 　•如果需要可以恢复到文件或项目的一个以前版本 　•令你的设计师们感到高兴 即使你不与团队合作，版本控制也能够为你节约时间。备份文件是最简单的一件事儿，它让你免遭工作失败或不得不重新开始的厄运，从而为你节省时间。 VCS系统的概念一开始可能让人望而生畏，特别是大多数软件说明都是由网站设计师编写或给他们看的。但只要你将它融入你的工作流中，你就会发现它并非想像得那么难。 认识Git OK,现在你已经了解了为什么一个版本控制系统对你的网站设计团队是必不可少的了。如果你在Google上稍微搜索一下就会发现有不少这样的系统包括SVN、Mercurial、CVS、Bazaar和Git。任一种都能满足你的需求，而我建议你在选择版本控制系统之前先做些调查。本文我将着重介绍Git,这个我每天都在使用的系统。它是“新起之秀”，广受欢迎。多亏了优秀的Linux网站设计师们，GitHub和Rails社群。 Git是一个不受限制的开放源码版本控制系统，最初由Linus Torvalds为了Linux核心开发而创建。Linux很聪明；当他开始解决一个问题时，他会把事情处理得井井有条。Git一个最大的区别是不像SVN和CVS，它是个分布式的版本控制系统。这就意味着每个用户都有一个完整的存储库数据拷贝保存在他们本地的计算机中。那很棒，不是吗？还有一些特点： 　•每个文件都在本地计算机，因此你可以在脱机状态下工作 　•没有单点故障。它不依赖中央服务器不会死机或烧毁，用它创建你项目的惟一存储库吧 　•因为不需要时时与中央服务器进行沟通，处理起来更加快速 Git比SVN要难学一点儿，但这是值得的。想想看当你告诉你的网站设计朋友们你在使用最流行的Git系统时，他们艳羡的表情吧！认真来说，我不认为这种学习曲线有什么不合理。一开始SVN同样让我感到困惑，随着不断地使用我也遇到了更多的问题。 安装Git一点儿都不好玩。幸运的是有个知识渊博的设计师愿意帮我，网上有很多资源可以帮你搞定它。它适用于PC、Mac或Linux系统，在Linux和OSX上安装要比在Windows上安装容易些。 你可以在这里下载Git的最新版本。下载好后，尝试这种快速向导来帮助你安装。对Windows用户来说，这种一步一步的可视化向导应该很有用。Mac用户可以尝试在GitHub上的向导。 开始创建 安装完毕后，你可以创建你的存储库了。将现有的一个文件夹变成Git存储库，在终端机或命令提示窗口中使用以下命令： cd path/to/project git init git add . git commit 你要Git做的是以下这些： 　•创建目录 　•将所有东西添加到这个目录中－所有的文件和子目录 　•提交或保存，所有的变更都在这个目录中 如果你讨厌用命令行，你也可以用Git GUI.它不是最常见的一种，但需要时也可以用。   一个Git工作流的实例 目前我和很多网站设计师们在Mac上用Git设计一个网站应用程序。我们有一个源码“母”版可以签入我们的文件，我们每个人在本地计算机上还有一个完整的拷贝。任何时候，我的工作流都会像下面这样： [...]]]></description>
			<content:encoded><![CDATA[<p><strong>用过Git 但是不怎么熟悉，发现篇好文章分享下</strong></p>
<p> </p>
<p><a href="http://www.webdesignerdepot.com/2009/03/intro-to-git-for-web-designers/#more-7224"><img title="git" src="http://www.elanso.com/U/D/D57/57fb865c79d8262f2c1d1cd75ea94bcf/128832975841792500.gif" alt="git" width="200" height="160" /></a>除非你单枪匹马，在网站工作室里没有团队共同合作。否则你肯定对文件分享感到崩溃。无论怎么努力，当很多人对同一个项目进行设计时，<strong>没有一个合适的版本控制系统，事情会变得一团糟。</strong></p>
<p>当你与其他设计师们在创建一个网站并对其进行完善时，前端模板和后端功能的融合将会是一个令人提心吊胆的盲区。</p>
<p><strong>像重写、文件丢失、和常见的“消除以往版本”问题经常会意外地产生</strong>。一旦后端功能被嵌入你的模板中，你很怕再触及它们，生怕一个不小心就毁了哪个设计师花费大量时间做出的成果。</p>
<p>此外，即使你们有个共同的存储库，每个人都可以从中签出文件。可能还是会有人忘记签出最新的文件并准备在旧文件上进行最新添加，从而将事情搞的乱七八糟。</p>
<p>在这篇文章中，我将向你们大概介绍一下<strong>Git概况，一个相当不错的版本控制系统</strong>。</p>
<p> </p>
<h1>版本控制－三言两语很难解释清楚</h1>
<p>版本控制（又叫修订控制或源控制管理）是解决文件共享问题的极佳方法。</p>
<p>基本的概念是：<strong>对所有的项目文件都有一个主存储库</strong>。团队成员签出文件、进行变更、然后再将它们签入（或提交）。版本控制系统（VCS）自动标识出谁做的变更、何时变更的，以及是否是最新的文件。</p>
<p>它要求你就变更写一个简短的记录以便项目每个人一看就知道你做了什么及为什么这么做。<strong>每个文件都有修订历史</strong>。因此如果出现可怕的错误你可以轻易地回到任何一个文件的以前版本。</p>
<p>一个好的VCS能够<strong>将变更合并到同一个文件</strong>。如果你和另外一个人同时在本地计算机上对同一个文件进行变更，当你们将变更后的文件签入主存储库时，系统会将这些变更合并形成一个全新的文件。如果合并时出现冲突，它会提醒你们。</p>
<p>你现在可能正在使用一个粗糙的VCS系统来确保你的文件准确有条理。如果你是设计师，就会像这样：</p>
<div id="attachment_7231"><img src="http://www.elanso.com/U/D/D57/57fb865c79d8262f2c1d1cd75ea94bcf/128832975851323750.png" alt="dpcwqxg_312gvhkh4s6_b" width="415" height="114" />设计师版本控制－失败</div>
<p>对于PSDs或者其他大型的二进制文件来说这样很好，不需要用VCS系统。但当你在为一个网站管理源代码，那么有一个更好的方法来解决它。</p>
<h1>使用版本控制系统的好处有：</h1>
<p>　•文件<strong>不会</strong>被覆盖</p>
<p>　•<strong>共同的存储库</strong>包含了所有最新文件</p>
<p>　•人们能够<strong>同时</strong>对同一个文件进行变更而不发生冲突</p>
<p>　•如果需要可以<strong>恢复</strong>到文件或项目的一个以前版本</p>
<p>　•令你的设计师们感到<strong>高兴</strong></p>
<p><strong>即使你不与团队合作，版本控制也能够为你节约时间</strong>。备份文件是最简单的一件事儿，它让你免遭工作失败或不得不重新开始的厄运，从而为你节省时间。</p>
<p>VCS系统的概念一开始可能让人望而生畏，<strong>特别是大多数软件说明都是由网站设计师编写或给他们看的</strong>。但只要你将它融入你的工作流中，你就会发现它并非想像得那么难。</p>
<p><a href="http://git-scm.com/"><img src="http://www.elanso.com/U/D/D57/57fb865c79d8262f2c1d1cd75ea94bcf/128832975858511250.png" alt="dpcwqxg_322grqgzjcz_b" width="600" height="495" /></a></p>
<h1>认识Git</h1>
<p>OK,现在你已经了解了为什么一个<strong>版本控制系统</strong>对你的网站设计团队是必不可少的了。如果你在Google上稍微搜索一下就会发现有不少这样的系统包括SVN、Mercurial、CVS、Bazaar和Git。任一种都能满足你的需求，而我建议你在选择版本控制系统之前先做些调查。本文我将着重介绍<strong>Git</strong>,这个我每天都在使用的系统。它是“<em>新起之秀</em>”，广受欢迎。多亏了优秀的Linux网站设计师们，<a href="http://github.com/">GitHub</a>和<a title="Rails on Github" href="http://github.com/rails">Rails</a>社群。</p>
<p>Git是一个<strong>不受限制的开放源码版本控制系统</strong>，最初由<a id="z49e" title="Linus Torvalds" href="http://en.wikipedia.org/wiki/Linus_Torvalds">Linus Torvalds</a>为了Linux核心开发而创建。Linux很聪明；当他开始解决一个问题时，他会把事情处理得井井有条。Git一个最大的区别是不像SVN和CVS，它是个<a href="http://www.elanso.com/MyBoki/%E5%88%86%E5%B8%83%E5%BC%8F%E7%9A%84%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6%E7%B3%BB%E7%BB%9F">分布式的版本控制系统</a>。这就意味着每个用户都有一个完整的存储库数据拷贝保存在他们本地的计算机中。那很棒，不是吗？还有一些特点：</p>
<p>　•<strong>每个文件都在本地计算机</strong>，因此你可以在脱机状态下工作</p>
<p>　•<strong>没有单点故障</strong>。它不依赖中央服务器不会死机或烧毁，用它创建你项目的惟一存储库吧</p>
<p>　•因为不需要时时与中央服务器进行沟通，<strong>处理起来更加快速</strong></p>
<p><strong>Git比SVN要难学一点儿</strong>，但这是值得的。想想看当你告诉你的网站设计朋友们你在使用最流行的Git系统时，他们艳羡的表情吧！认真来说，我不认为这种学习曲线有什么不合理。一开始SVN同样让我感到困惑，随着不断地使用我也遇到了更多的问题。</p>
<p>安装Git一点儿都不好玩。幸运的是有个知识渊博的设计师愿意帮我，网上有很多资源可以帮你搞定它。它适用于PC、Mac或Linux系统，在Linux和OSX上安装要比在Windows上安装容易些。</p>
<p>你可以在<a href="http://www.elanso.com/MyBoki/%E8%BF%99%E9%87%8C">这里</a>下载Git的最新版本。下载好后，尝试这种<a href="http://www.elanso.com/MyBoki/%E5%BF%AB%E9%80%9F%E5%90%91%E5%AF%BC">快速向导</a>来帮助你安装。对Windows用户来说，这种一步一步的可视化向导应该很有用。Mac用户可以尝试在<a rel="nofollow" href="http://github.com/guides/compiling-and-installing-git-on-mac-os-x" target="_blank">GitHub</a>上的向导。</p>
<h1>开始创建</h1>
<p>安装完毕后，<strong>你可以创建你的存储库了</strong>。将现有的一个文件夹变成Git存储库，在终端机或命令提示窗口中使用以下命令：</p>
<pre>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">cd path/to/project git init git add . git commit</div></div>
</pre>
<p>你要Git做的是以下这些：</p>
<p>　•<strong>创建</strong>目录</p>
<p>　•<strong>将所有东西添加到这个目录中</strong>－所有的文件和子目录</p>
<p>　•<strong>提交或保存</strong>，所有的变更都在这个目录中</p>
<p>如果你讨厌用命令行，你也可以用<strong>Git GUI</strong>.它不是最常见的一种，但需要时也可以用。</p>
<p> </p>
<p><img src="http://www.elanso.com/U/D/D57/57fb865c79d8262f2c1d1cd75ea94bcf/128832975879761250.png" alt="A screenshot of the Git GUI" width="451" height="257" /></p>
<h1>一个Git工作流的实例</h1>
<p>目前我和很多网站设计师们在Mac上用Git设计一个网站应用程序。我们有一个源码“母”版可以签入我们的文件，我们每个人在本地计算机上还有一个完整的拷贝。任何时候，我的工作流都会像下面这样：</p>
<p><a href="http://www.elanso.com/U/D/D57/57fb865c79d8262f2c1d1cd75ea94bcf/128832975882417500.gif"><img title="dpcwqxg_323gnhgbwg3_b" src="http://www.elanso.com/U/D/D57/57fb865c79d8262f2c1d1cd75ea94bcf/128832975882417500.gif" alt="dpcwqxg_323gnhgbwg3_b" width="505" height="225" /></a></p>
<p align="justify">1.<strong>打开终端机</strong>。开始建立本地mysql数据库（以便我们建立的应用程序能够在本地计算机运行）</p>
<p align="justify">2.用<strong>“git签出”</strong>命令在终端机上获取最新的变更。这使得我能够获得所有其他成员做出的变更，这些变更都被签入到我们的主存储库中。</p>
<p align="justify">3.在<strong>TextMate</strong>上打开项目进行我的变更。</p>
<p align="justify">4.<strong>提交变更并添加我的记录</strong>。这仅是在本地的提交。我频繁地进行提交，每天至少十次或十次以上。这能够帮助我跟踪项目进展。</p>
<p align="justify">5.用<strong>“git签入”</strong>命令将<strong>我的变更签入</strong>主存储库。现在团队其他成员都能看到并获取我的变更。你应该至少每天这样做或在有重大内容添加后这样做。</p>
<p>所有这些工作都能通过<strong>终端窗口</strong>轻松地完成。但我是个可视化女生。因此，我使用<a href="http://gitx.frim.nl/">GitX</a>,一个<strong>基于OSX的Git gui</strong> ，来完成我的提交。仍可以用终端机签入签出文件，但GitX将组织提交变得很容易并让我集中精力于正在做的事儿。</p>
<p><img src="http://www.elanso.com/U/D/D57/57fb865c79d8262f2c1d1cd75ea94bcf/128832975885230000.png" alt="GitX Screenshot" width="600" height="432" /><br />
顶端高亮显示对文件所做的变更。在下面左边是<strong>Unstaged Changes</strong>的列表。为了提交它们，你要拖曳一个或多个文件到右边的“Staged Changes”区域，输入提交信息，然后点击提交按钮。</p>
<p>浏览一下树视图，可以看到有哪些变更签入到存储库中。如果我的文件当前与主存储库不匹配，顶端的绿色标识和蓝色标识不会同时出现。<a title="GitNub" href="http://wiki.github.com/Caged/gitnub">GitNub</a>提供了一个基于Mac风格的类似界面。</p>
<p><img src="http://www.elanso.com/U/D/D57/57fb865c79d8262f2c1d1cd75ea94bcf/128832975890230000.png" alt="GitX Screenshot" width="600" height="433" /><br />
还有超棒的<a href="http://www.elanso.com/MyBoki/TextMate%E6%8D%86%E7%BB%91%E5%8C%85">TextMate捆绑包</a>。有了它，你可以在TextMate中进行签入、签出、提交及更多其他操作。效率非常高。</p>
<p><img src="http://www.elanso.com/U/D/D57/57fb865c79d8262f2c1d1cd75ea94bcf/128832975899761250.jpg" alt="TextMate with Git Bundle installed" width="459" height="500" /></p>
<h1>学习更多</h1>
<h2>Git备忘单</h2>
<p><a href="http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html"><img src="http://www.elanso.com/U/D/D57/57fb865c79d8262f2c1d1cd75ea94bcf/128832975904605000.png" alt="Git Cheat Sheet by Zack Rusin" width="600" height="464" /></a></p>
<p>以上： <a rel="nofollow" href="http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html" target="_blank">Zack Rusin’s Git Cheat Sheet</a> <br />
　　</p>
<p>使用Git我还是个新手，只向你们简单介绍了用它可以做些什么。但我已经看到了它成为版本控制系统的光明前景，而且很高兴我能够走在时尚的前面。</p>
<p>学习更多Git知识，请查阅以下丰富资源：</p>
<h2>Git介绍</h2>
<p><a rel="nofollow" href="http://www.viget.com/extend/getting-to-know-git/" target="_blank">Getting To Know Git</a> <br />
<a rel="nofollow" href="http://en.wikipedia.org/wiki/Git_(software)" target="_blank">Wikipedia entry on Git</a> <br />
<a rel="nofollow" href="http://whygitisbetterthanx.com/" target="_blank">Why Git Is Better Than X</a> <br />
<a rel="nofollow" href="http://www.youtube.com/watch?v=4XpnKHJAok8" target="_blank">Linus Torvald’s TED talk on Git</a> <br />
<a rel="nofollow" href="http://cworth.org/hgbook-git/tour/" target="_blank">A Tour of Git: The Basics<br />
</a><a rel="nofollow" href="http://gitready.com/" target="_blank">Git Ready</a><a rel="nofollow" href="http://cworth.org/hgbook-git/tour/" target="_blank"></a></p>
<h2>备忘单/小贴士</h2>
<p><a rel="nofollow" href="https://37s.backpackit.com/pub/1465067" target="_blank">37 Signals Git Resources</a> <br />
<a rel="nofollow" href="http://www.spheredev.org/wiki/Git_for_the_lazy" target="_blank">Git For The Lazy</a> <br />
<a rel="nofollow" href="http://www.kernel.org/pub/software/scm/git/docs/user-manual.html" target="_blank">The Git User Manual</a> <br />
<a rel="nofollow" href="http://www.viget.com/extend/a-gaggle-of-git-tips/" target="_blank">A Gaggle of Git Tips</a> <br />
<a rel="nofollow" href="http://github.com/guides/git-cheat-sheet" target="_blank">GitHub’s Git Cheat Sheet</a> <br />
<a rel="nofollow" href="http://www-cs-students.stanford.edu/~blynn/gitmagic/" target="_blank">Git Magic</a></p>
<h2>版本控制介绍</h2>
<p><a rel="nofollow" href="http://hoth.entp.com/output/git_for_designers.html" target="_blank">Version Control For Designers</a> <br />
<a rel="nofollow" href="http://betterexplained.com/articles/a-visual-guide-to-version-control/" target="_blank">A Visual Guide to Version Control</a> <br />
<a rel="nofollow" href="http://en.wikipedia.org/wiki/Revision_control" target="_blank">Wikipedia entry on Revision Control</a> <br />
<a rel="nofollow" href="http://www.dribin.org/dave/blog/archives/2007/12/28/dvcs/" target="_blank">Choosing a Distributed Version Control System</a> <br />
<a rel="nofollow" href="http://www.alistapart.com/articles/revisioncontrol" target="_blank">I Wonder What This Button Does (A List Apart)</a></p>
<p> </p>
<p><em>本文由明迪·瓦格纳独家撰写。她是Viget实验室的网站设计师，在出版和网站设计方面有8年多的经验。她获得了电子媒介艺术学位并与伦斯勒理工学院有着良好的沟通。</em></p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yooyo.me/blog/%e5%90%91%e7%bd%91%e7%ab%99%e8%ae%be%e8%ae%a1%e5%b8%88%e4%bb%ac%e4%bb%8b%e7%bb%8dgit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

