“今天我要給大家介紹兩個最流行的版本控製程序: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