“今天我要给大家介绍两个最流行的版本控制程序:SVN 和 Git。”
“SVN 的工作方式大致与我在上一课中描述的方式相同。Git 稍微复杂一些,我打算更详细地讨论它。”
“你能给我 SVN 和 Git 文档的链接吗?”
“当然,等一下。”
http://svnbook.red-bean.com/en/1.7/svn-book.html
https://githowto.com (这简直就是神作)
“那么,吉特。”
“它比 SVN 复杂一点。 使用 Git,除了服务器存储库之外,每个用户都有自己的本地存储库。 ”
“那你承诺在哪里?”
“用户总是提交到他们的本地存储库。”
“但是服务器存储库呢?”
“要同步本地和服务器存储库,有特殊的 Pull 和 Push 命令。
“这是有原因的。有时程序员需要自己做很多工作,这可能涉及数百次提交,然后才能将其添加到共享存储库中。”
“要在 SVN 中执行此操作,您必须启动一个单独的分支,然后将其与主干合并。”
“使用 Git,您只需始终提交到本地存储库,然后在完成后将所有更改作为批次发送到服务器上的中央存储库。”
“当你只写一点代码时,这种方法可能看起来有点过分。但是当你的任务如此之大以至于跨越数周时,你就会明白你不能一直写那么多时间而不投入。”
“为什么你不能只工作两周,然后将你的更改提交到服务器一次?”
“嗯,版本控制程序提供了很多便利。”
“想象一下,你每天都提交,在第 10 天你发现你在过去两天所做的更改不会按计划工作。你想恢复到第 8 天的代码并处理任务不一样的。”
“你只需回滚最近两天对本地存储库所做的更改并返回到所需状态。这被称为回滚操作。”
“你是说你能做到?”
“是的。此外,由于存储了提交历史记录,您可以找出何时、为何提交某项内容,由谁提交,相关功能/错误,以及作为这项工作的一部分同时修改了哪些十个文件。”
“假设某人的错误修复破坏了其他人的代码。您可以回滚(回滚)代码并继续进行,就好像更改从未发生过一样。”
“好吧,太棒了。我相信。你能给我举几个例子来说明这一切是如何工作的吗?”
“当然。”
“以下是将中央存储库克隆到本地计算机的方法:”
“所以,不再需要 Checkout 操作了。”
“是的。这里是推送操作的例子:”
“和拉动操作:
“啊。这多少有点道理。”
“顺便说一下,有一个很棒的服务叫做 GitHub。”
“任何程序员都可以在那里注册并创建自己的 Git 存储库。我建议你熟悉它。”
“这里有一些有用的链接:”
https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
https://articles.assembla.com/using-git/getting-started/set-up-git-on-windows-with-tortoisegit
“请注意,有相当多的 Git 客户端。”
“首先是 GitBash,它可以让您输入文本命令。”
“然后是TortoiseGit,它是 Windows 资源管理器中内置的一个很好的程序。它允许您直接在资源管理器中处理 Git 存储库中的文件。”
“IntelliJ IDEA 支持 Git,让您只需在环境中直接点击几下,即可执行各种复杂的命令。”
“那么,我该学哪一个呢?”
“我建议你去了解他们所有人。”
“你会通过面试并上班。你会得到一个 Git 链接、一个登录名和密码——仅此而已。然后你就靠自己了。”
“你是什么意思,‘靠你自己’?”
“我的意思是你会自己设置 Git,自己拉一个存储库的副本,......”
“然后你需要构建并尝试运行该项目。”
“构建说明也很可能与项目文档一起位于 Git 存储库中。”
“你的团队领导会在晚上来找你说, ‘好吧,到目前为止你发现了什么?’ “
“你会说,‘我正在尝试在这里设置 Git,但还没有取得任何成功。“你不会解雇我,对吧?” “
“或者,趁现在还是中午,你可以去找团队负责人说, «我安装了 Git,拉取了项目,浏览了文档,但是有数百个文件,我还没有把所有东西都整理好。在哪里?当前的构建说明是什么?'» “
“你能感觉到不同吗?”
“是的。在第二种情况下,我是一个超级摇滚明星程序员,但在第一种情况下,我是一些机器人傻瓜,甚至不知道如何从 Git 中提取项目。换句话说,我搞砸了“我什至在开始编程之前就已经开始了。我想在那之后他们甚至都不会让我写代码了。”
“看,你回答了你自己的问题。所以研究并弄清楚。没有人会为你做。”
“你不打算帮我?”
“我已经帮忙了。我们这里教的是Java,以防你忘记了。其他的就靠你自己了。还是你的脑袋只是用来喝酒的?”
“好的,我知道了。谢谢你,比拉博!”
GO TO FULL VERSION