“今天我要給大家介紹兩個最流行的版本控製程序: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,以防你忘記了。其他的就靠你自己了。還是你的腦袋只是用來喝酒的?”

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