原始碼管理工具

Decoi發表於2024-05-30

主流程式碼管理工具介紹

1.github

GitHub 是一個基於雲端的程式碼託管平臺,致力於幫助開發者協作、共享程式碼並管理專案。它為開發者提供了一個集中式的平臺,在這裡,他們可以儲存、版本控制、協作開發和分享他們的程式碼。

主要特點包括

版本控制: GitHub 提供了強大的版本控制功能,使用 Git 作為其核心版本控制系統,允許開發者追蹤程式碼的變更歷史並輕鬆進行團隊協作。

協作與共享: 開發者可以在 GitHub 上建立倉庫(Repository),並與其他開發者共享程式碼、文件和資源。透過 Pull 請求(Pull Request)機制,他們可以參與專案貢獻和程式碼審查。

社群和開源: GitHub 擁有龐大的開發者社群,使用者可以在平臺上發現和參與開源專案,學習其他開發者的經驗,並與他們進行交流和討論。

專案管理: GitHub 提供了問題跟蹤、專案板(Project Boards)、里程碑(Milestones)等專案管理工具,幫助團隊更好地組織和管理專案。

持續整合與部署: GitHub 與各種持續整合服務(如 Travis CI、CircleCI 等)整合緊密,允許開發者設定自動化的測試和部署流程。

擴充套件與生態系統: GitHub 提供了豐富的 API 和外掛系統,允許開發者擴充套件平臺的功能,並與其他工具和服務整合。

總的來說,GitHub 是一個開發者社群活躍、功能豐富的程式碼託管平臺,為開發者提供了全面的工具和服務,助力他們更高效地進行軟體開發和團隊協作。

2.coding
https://coding.net/

當然,Coding.net 是一個類似於 GitHub 的程式碼託管平臺,是中國的一家技術社群和開發者服務提供商。它提供了類似於 GitHub 的版本控制、協作開發、專案管理等功能,同時也有一些自身特色和優勢。

簡單總結 Coding.net 的特點

國內服務: Coding.net 是一家中國的技術公司,提供的服務在國內有一定的使用者基礎和影響力,同時也符合中          國使用者對於穩定、快速訪問的需求。

企業服務: Coding.net 專注於為企業提供程式碼託管、協作開發和專案管理等服務,針對企業使用者提供了更多的定製化和專業化功能。

CI/CD 整合: Coding.net 提供了與持續整合和持續交付(CI/CD)工具的緊密整合,幫助開發者構建自動化的軟體開發流程。

敏捷開發: Coding.net 提供了敏捷開發的專案管理工具,包括任務看板、里程碑、團隊協作等功能,支援團隊快速迭代開發。

安全和隱私: Coding.net 提供了嚴格的安全和隱私保護機制,保障使用者的程式碼和資料安全,符合企業和組織的合規性要求。

擴充套件和定製: Coding.net 提供了豐富的 API 和外掛系統,允許使用者擴充套件平臺的功能,並實現與其他系統的整合和定製化需求。

總的來說,Coding.net 是一個面向企業和團隊的程式碼託管平臺,提供了豐富的功能和服務,幫助開發者更高效地進行軟體開發和團隊協作。

3.阿里雲效
https://www.aliyun.com/product/yunxiao

阿里雲效(Aliyun CodePipeline)是阿里雲推出的一款持續整合/持續交付(CI/CD)服務平臺。它提供了完整的軟體開發生命週期管理工具,旨在幫助開發團隊更高效地進行程式碼管理、自動化構建、自動化測試和持續交付等工作。以下是對阿里雲效的簡要總結

CI/CD 功能: 阿里雲效提供了強大的持續整合(Continuous Integration)和持續交付(Continuous Delivery)功能,支援自動化構建、測試和部署,幫助團隊實現快速迭代和交付。

多語言支援: 阿里雲效支援多種程式語言和開發框架,如Java、Python、Node.js等,使得不同型別的專案都能夠在該平臺上進行持續整合和交付。

多環境部署: 阿里雲效支援在多個環境(如開發環境、測試環境、生產環境等)之間進行靈活的部署管理,幫助開發團隊實現不同環境的程式碼釋出和管理。

自定義流程: 使用者可以根據自己的需求和流程定製 CI/CD 流程,包括構建任務、測試任務、部署任務等,靈活適應團隊的開發實踐和規範。

與阿里雲生態整合: 阿里雲效與阿里雲其他產品和服務深度整合,如雲伺服器 ECS、容器服務 Kubernetes、日誌服務等,為開發團隊提供全面的雲端解決方案。

安全和穩定性: 阿里雲效注重安全和穩定性,提供了嚴格的許可權控制、程式碼保護機制和監控報警功能,保障使用者的程式碼和資料安全。

實時監控與報告: 阿里雲效提供實時的任務執行監控和報告功能,幫助使用者及時發現和解決構建或部署過程中的問題,提高專案的質量和穩定性。

總的來說,阿里雲效是一款功能全面、易用高效的 CI/CD 服務平臺,為開發團隊提供了完整的程式碼管理和持續交付解決方案,助力團隊在雲端快速、安全地進行軟體開發和釋出。

4.碼雲
https://gitee.com/chinaio

碼雲(Gitee)是中國領先的基於 Git 的程式碼託管平臺,類似於全球知名的 GitHub。以下是對碼雲的簡要總結

程式碼託管: 碼雲提供了基於 Git 的程式碼託管服務,開發者可以在平臺上建立倉庫、上傳程式碼,並進行版本控制和協作開發。

社群和開源專案: 碼雲擁有龐大的開發者社群,眾多開源專案選擇在碼雲上進行託管和協作,使用者可以輕鬆發現、貢獻和參與各種開源專案。

企業服務: 碼雲也為企業提供了專業的程式碼託管和協作解決方案,支援企業內部程式碼管理、團隊協作、許可權管理等功能,滿足企業級開發需求。

專案管理: 碼雲提供了專案管理功能,包括任務管理、問題跟蹤、Wiki 文件等,幫助團隊進行專案管理和協作。

CI/CD 整合: 碼雲與常見的 CI/CD 工具(如 Jenkins、Travis CI 等)和雲服務(如阿里雲、騰訊雲等)進行了整合,支援持續整合和持續交付流程。

安全和隱私保護: 碼雲注重使用者資料安全和隱私保護,提供了嚴格的許可權控制和資料加密機制,保障使用者的程式碼和資料安全。

多語言支援: 碼雲支援多種程式語言和開發框架,包括但不限於 Java、Python、JavaScript、Go 等,適用於各種型別的專案。

社交化和知識分享: 碼雲也是一個開發者社交平臺,使用者可以在平臺上互動交流、分享經驗和技術,促進技術成長和知識分享。

總的來說,碼雲是一個功能全面、易用便捷的程式碼託管平臺,為個人開發者、團隊和企業提供了完善的程式碼管理和協作解決方案,助力開發者更高效地進行軟體開發和專案管理。

對四種工具作以總結和比較

對於選擇適合自己或團隊的程式碼管理工具,需要考慮各個工具的特點和優勢,並結合實際需求和使用場景進行比較。以下是對 GitHub、Coding.net、阿里雲效和碼雲進行比較:

GitHub:

優勢: 全球領先的程式碼託管平臺,擁有龐大的開發者社群和豐富的開源專案資源;功能完善,支援強大的版本控制、協作開發和專案管理;穩定性高,有良好的可用性和效能表現。
適用場景: 個人開發者、開源專案、國際團隊或國內外跨境合作的團隊等。

Coding.net:

優勢: 專注於企業服務,提供了豐富的 CI/CD 功能和與阿里雲生態的深度整合;安全性高,符合企業的合規要求;國內服務,訪問速度快。
適用場景: 企業團隊、需要與阿里雲其他服務緊密整合的專案等。

阿里雲效

優勢: 阿里雲生態的一部分,與阿里雲其他產品深度整合,適用於雲原生應用開發和部署;提供了完整的 CI/CD 解決方案,支援多環境部署。
適用場景: 阿里雲使用者、雲原生專案、需要與阿里雲其他服務緊密整合的團隊等。

碼雲(Gitee):

優勢: 國內領先的程式碼託管平臺,支援個人開發者和企業使用者;功能齊全,具備程式碼託管、專案管理和社交化等特點;對中國使用者友好,訪問速度快。
適用場景: 個人開發者、國內團隊、對國內服務有需求的專案等。

根據實際需求和團隊情況,可以選擇適合自己的程式碼管理工具。如果是個人開發者或開源專案,GitHub 是一個不錯的選擇;如果是企業團隊,可以考慮 Coding.net 或阿里雲效,根據需求選擇與阿里雲生態或其他雲服務整合更緊密的平臺;而如果是中國團隊或對國內服務有需求的專案,碼雲也是一個不錯的選擇。
結合我們專案的團隊性,以及為未來走向企業做好準備我們團隊選擇github。

github的認識和學習
連結:https://github.com/

介面認識

1.主介面


首先看最上面黑色工具條。

最左邊是一個 GitHub 的 logo,點它就返回現在這個主介面。

最右邊是和你個人有關的東西(個人,新建,訊息),這個和用過的任何軟體一類比,就知道功能了。

左邊搜尋框,和搜尋引擎一樣用來搜尋(搜原始碼,搜資料)。

中間的四個按鈕:

Pull requests:你想參與別人的專案,或想改進別人的專案,改進後需要提交申請,用 pull requests。
Issues:你發現別人專案的 bug,或者有什麼問題,怎麼和作者交流呢?提一個 Issue ;別人也可以給你的專案          提 Issue 反饋問題。Issue 追蹤各種想法,增強功能,任務,bug,有點兒像評論功能。
Marketplace:應用商店,裡面有免費/收費的開發工具。
Explore:你可以理解成軟體裡的發現頁,點進去推薦一些和你相關的話題、專案、新聞等。

2.個人介面


由於個人主頁面的分佈都一樣,我的介面又沒啥東西?,我就用 Linux 之父的介面做演示了。

可以看出,在個人介面中,可以看到當前這個人的資訊,類似於微博知乎的個人介面。我們自己的個人介面也長這樣,不過剛註冊,下面的記錄一片空白。

看他的粉絲數,就知道這是個大v,這裡最能體現 GitHub 的社交屬性。

這裡又涉及到一些專用詞。

Projects:它可不是專案,上面說了 Repository 是專案。它可以翻譯為專案板,是 project-boards 的簡寫, 透過專案板可以靈活地建立適合需求的自定義工作流程,說白了是管理專案流程的,一般不常用。
Star:就是點贊功能,這裡用作動詞,它叫 star 是因為點贊圖示就是星星⭐。不過這個點贊比較像知乎裡的點贊功能,它會記錄在你的動態裡。由於 GitHub 沒有收藏功能,所以 star 可以用來收藏。
Follow:就是關注的意思,點選 Followers 看看誰關注了他,點選 Following 看看他關注了誰(大神關注的一般也是大神?)

3.專案介面

我們使用 GitHub ,無論存放東西,還是查資料,主要都是看自己或別人的專案/倉庫,所以這個介面一定要熟悉。

你可以透過搜尋專案、點選別人的介面、推薦頁面開啟一個專案。
點進去就是專案/倉庫介面啦,我們認識一下主要功能

首先最上面一條我們可以看到這個倉庫的資訊,像關注點贊都是按鈕,點選可以看具體的人。

這裡涉及到兩個新詞語。

Watch:關注觀察?,也就是你既可以關注(follow)一個人,也可以關注(watch)一個專案,你關注內容的動態都會顯示在主頁面。
Fork:直譯是刀叉,它是指將 GitHub 的某個特定倉庫(所有檔案)原封不動地複製到自己的賬戶下。比如你想改進這個專案,加點兒自己的東西,就可以複製一下整個倉庫再修改,但是不影響原作者的倉庫,你點選 Fork 就能複製。

下面一條是標籤頁,比如預設的一個標籤頁 Code 就是展示程式碼的頁面;如果你想看別人提的問題就點選 Issues 頁,也許你遇到的問題別人提過並且解決了;有的人想參與這個專案,他改好後就向作者發起了 Pull Requests,希望作者接受他的改進,點進去可以看誰提交過什麼樣的改進,作者是否採納。

下面這個主要部分就是倉庫裡的東西了,你可以看到就是一個個資料夾或檔案,裡面可能是程式碼檔案,也可能是其他文件,圖片什麼的。點選可以看,你也可以點選 Clone or downloads 下載到本地,具體學習。

4.建立專案

1.進入個人主頁: 登入後,點選頁面右上角的頭像,選擇“Your repositories”進入個人主頁。

2.點選“New”按鈕: 在個人主頁右側,有一個綠色的“New”按鈕,點選它。

3.填寫專案資訊: 在新頁面中,填寫專案的基本資訊,包括專案名稱、描述、公開/私有等設定。可以選擇是否新增 README 檔案、是否新增 .gitignore 檔案以及選擇專案的許可證。

4.建立專案: 填寫完專案資訊後,點選頁面底部的“Create repository”按鈕,即可建立專案。

5.克隆專案: 專案建立完成後,會跳轉到專案的主頁面。在這裡可以看到專案的 URL 地址。如果是本地開發,可以複製專案的 URL 地址,使用 Git 命令將專案克隆(clone)到本地進行開發:

git clone <專案 URL>
6.新增程式碼: 將本地的程式碼檔案新增到專案的資料夾中,並透過 Git 命令提交(commit)到專案中:

git add .
git commit -m "Initial commit"
git push origin main

git與github的關係

1.1 Git
下載https://git-scm.com/download

Git是一個分散式版本控制系統。

版本控制系統(version control system)像個資料庫,它會記錄所有對專案檔案的更改(比如一個檔案,前天 加了三段文字,昨天刪了一句話,今天改了幾個詞,這三個版本歷史都能儲存下來)。 版本控制系統不僅可以應用於軟體原始碼的文字檔案,而且可以對任何型別的檔案進行版本控制。
使用版本控制系統可以協同合作(多人編輯檔案或程式碼而不出錯),版本儲存(你改動的每一版本都儲存下來,如果改錯可以回到之前的版本,如果想加上刪除的內容也可以返回去找,也可以對比現在和之前的版本,看改了什麼),檔案備份(伺服器和本地都有完整的歷史版本,如果伺服器壞了,本地還有一份完整的歷史記錄)。

總之, Git 可以避免檔案丟失,改錯,多人合作不同步導致的後果?。

1.2 GitHub

GitHub 是透過 Git 進行版本控制的軟體原始碼託管服務平臺,可以理解成放程式碼的地方,但往上放程式碼時用 Git 進行了版本控制。也就是 GitHub 使用了 Git 完成版本控制,下面來看看 GitHub 有哪些有用的功能!

程式碼託管:可以單純地把它當成一個網盤放你的程式碼,同時使用 Git 功能記錄你的程式碼歷史。當然除程式碼外還能放其他檔案。
學習優秀的開源專案:學習別人優秀的原始碼,寫程式碼之前看別人是怎麼寫的(比如寫作業的時候參考參考),看論文也可以上 GitHub 找原始碼,還能找一些開源的軟體,外掛用。

當資料庫:可以查資料,GitHub 上有總結好的面試寶典,入門指南,技術分析,論文合集,課程資料等。這些部落格、公眾號上有的內容 GitHub 上也有,還可能更全。

多人協作:多個人要一起寫個程式,一起寫本書,一起翻譯一篇文章等,用 GitHub 可以管理專案保證你們的檔案同步,寫好後提交合併成一個完整的專案。

搭建部落格:基於 GitHub Pages 搭建屬於你的部落格,你可以隨心所欲的定製自己的樣式,這是一個屬於你的空間。

社交:就像微博、知乎一樣,在這個網站你可以關注(following)別人,也可以有自己的粉絲(followers),看到好的開源專案可以給他點贊(star),你有啥想法還可以給這個專案改進改進(fork)。

個人簡歷:如果你的 GitHub 上有不錯的專案,或者你改進過別人的專案,這些都能反映到你的賬號上。GitHub 一定程度可以反應到你的能力,如果你的專案點贊多(star),還有很多粉絲關注(followers),你就像個大 V 一樣,這就是你的另一份簡歷。

配置shh,實現git與github的連線

第 1 步:生成 SSH key

我們要想生成SSH key,首先就得先安裝 SSH,對於 Linux 和 Mac 系統,其預設是安裝 SSH 的,而對於 Windows 系統,其預設是不安裝 SSH 的,不過由於我們安裝了 Git Bash,其也應該自帶了 SSH. 可以透過在 Git Bash 中輸入ssh命令,檢視本機是否安裝 SSH:

如上圖所示,此結果表示我們已經安裝 SSH 啦!接下來,輸入ssh-keygen -t rsa命令,表示我們指定 RSA 演算法生成金鑰,然後敲三次Enter鍵,期間不需要輸入密碼,之後就就會生成兩個檔案,分別為id_rsa和id_rsa.pub,即金鑰id_rsa和公鑰id_rsa.pub. 對於這兩個檔案,其都為隱藏檔案,

第 2 步:新增 SSH key

如上圖所示,進入我們的 GitHub 主頁,先點選右上角所示的倒三角▽圖示,然後再點選Settins,進行設定頁面;點選我們的頭像亦可直接進入設定頁面:

如上圖所示,進入Settings頁面後,再點選SSH and GPG Keys進入此子介面,然後點選New SSH key按鈕:

如上圖所示,我們只需要將公鑰id_rsa.pub的內容貼上到Key處的位置(Titles的內容不填寫也沒事),然後點選Add SSH key 即可。

透過 Git 將程式碼提交到 GitHub


到這一步我們已經完成了本地 Git 與遠端 GitHub 的繫結,這意味著我們已經可以透過 Git 向 GitHub 提交程式碼啦!

但是在進行演示之前,我們需要先了解兩個命令,也是我們在將來需要經常用到的兩個命令,分別為 push 和 pull 。

push:該單詞直譯過來就是“推”的意思,如果我們本地的程式碼有了更新,為了保持本地與遠端的程式碼同步,我們就需要把本地的程式碼推到遠端的倉庫,程式碼示例:

git push origin master
pull:該單詞直譯過來就是“拉”的意思,如果我們遠端倉庫的程式碼有了更新,同樣為了保持本地與遠端的程式碼同步,我們就需要把遠端的程式碼拉到本地,程式碼示例:

git pull origin master
此外,在之前我們講到過pull request,在這裡,估計大家就能更好的理解了,它表示:如果我們fork了別人的專案(或者說程式碼),並對其進行了修改,想要把我們的程式碼合併到原始專案(或者說原始程式碼)中,我們就需要提交一個pull request,讓原作者把我們的程式碼拉到 ta 的專案中,至少對於 ta 來說,我們都是屬於遠端端的。

一般情況下,我們在push操作之前都會先進行pull操作,這樣不容易造成衝突。

連線gui和guihub的好處

便捷的操作: GUI 工具通常提供了直觀的圖形使用者介面,使得使用者可以透過視覺化的方式進行操作,而不必記憶複雜的命令列操作。這樣能夠大大降低使用門檻,提高效率。

視覺化的版本控制: 透過 GUI 工具連線 GitHub,開發者可以直觀地檢視程式碼的版本歷史、分支結構等資訊,並且可以輕鬆地進行程式碼的提交、拉取和合並操作,而無需記憶 Git 命令的具體用法。

團隊協作: 使用 GUI 工具連線 GitHub,團隊成員可以更方便地協作開發,透過視覺化介面檢視專案進展、提交程式碼並進行程式碼審查,提高團隊的協作效率。

高階功能支援: 很多 GUI 工具還提供了一些高階功能,如程式碼視覺化比較、分支管理、自動化整合等,這些功能可以幫助開發者更好地管理專案和進行開發工作。

多平臺支援: 許多 GUI 工具都提供了跨平臺的支援,可以在 Windows、MacOS 和 Linux 等作業系統上執行,滿足不同開發者的需求。

綜上所述,透過連線 GitHub 與 GUI 工具,開發者可以更方便、直觀地管理和協作專案,提高開發效率,降低學習成本,進而更好地利用 GitHub 進行程式碼管理和團隊協作。

總結
GitHub 作為全球領先的程式碼託管平臺,為開發者提供了豐富的功能和工具,幫助他們更高效地進行程式碼管理、版本控制和團隊協作。其主要好處和改進包括:

程式碼託管與版本控制: GitHub 提供了穩定、安全的程式碼託管服務,讓開發者能夠輕鬆地儲存、管理和共享程式碼,並透過 Git 強大的版本控制功能追蹤程式碼變更,確保程式碼的完整性和可追溯性。

全球開發者社群: GitHub 擁有龐大的開發者社群,匯聚了全球數百萬的開發者和數以億計的開源專案。開發者可以在 GitHub 上與全球的開發者交流、學習和分享經驗,加速技術成長和專案開發。

協作與團隊管理: GitHub 提供了豐富的協作工具和專案管理功能,如 Issues、Projects、Pull Requests 等,幫助團隊成員分配任務、跟蹤問題、進行程式碼審查,實現高效的團隊協作和專案管理。

持續整合與部署: GitHub 提供了與 CI/CD 工具的整合,如 GitHub Actions,讓開發者能夠輕鬆設定自動化的持續整合和持續部署流程,加速軟體開發週期,提高程式碼質量。

開放和透明: GitHub 的開放性和透明性促進了知識共享和技術進步,開發者可以在 GitHub 上公開分享自己的專案和程式碼,同時也能夠從其他開發者的專案中學習和借鑑。

安全與隱私保護: GitHub 重視使用者資料安全和隱私保護,提供了嚴格的許可權控制和資料加密機制,保障使用者的程式碼和資料安全。

綜上所述,GitHub 的使用好處在於促進了程式碼共享、協作開發和技術交流,同時提供了豐富的工具和功能,幫助開發者更高效地進行軟體開發和團隊協作。未來,GitHub 可以進一步改進使用者體驗、提升效能穩定性,持續為開發者提供更好的服務和支援。

相關文章