“今天我要给大家介绍两个最流行的版本控制程序: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 天的代码并处理任务不一样的。”

“你只需回滚最近两天对本地存储库所做的更改并返回到所需状态。这被称为回滚操作。”

“你是说你能做到?”

“是的。此外,由于存储了提交历史记录,您可以找出何时、为何提交某项内容,由谁提交,相关功能/错误,以及作为这项工作的一部分同时修改了哪些十个文件。”

“假设某人的错误修复破坏了其他人的代码。您可以回滚(回滚)代码并继续进行,就好像更改从未发生过一样。”

“好吧,太棒了。我相信。你能给我举几个例子来说明这一切是如何工作的吗?”

“当然。”

“以下是将中央存储库克隆到本地计算机的方法:”

提交和分支 - 1

“所以,不再需要 Checkout 操作了。”

“是的。这里是推送操作的例子:”

提交和分支 - 2

“和拉动操作:

提交和分支 - 3

“啊。这多少有点道理。”

“顺便说一下,有一个很棒的服务叫做 GitHub。”

“任何程序员都可以在那里注册并创建自己的 Git 存储库。我建议你熟悉它。”

“这里有一些有用的链接:”

https://githowto.com

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,以防你忘记了。其他的就靠你自己了。还是你的脑袋只是用来喝酒的?”

“好的,我知道了。谢谢你,比拉博!”