金琦



摘要:在軟件開發領域,使用版本控制工具來追蹤文件變更和協同團隊進行并行開發已成為行業共識。分布式版本控制工具Git因其分布式、去中心化以及強大的分支管理、代碼合并等功能而受到開發者的青睞。對于信息技術教師而言,Git在編程語言教學中也發揮著重要作用。本文提出,通過基于Git的開源共創平臺,教師可以有效提升教學效率,將傳統課堂轉變為開源共創課堂。這種教學方式不僅能夠激發學生的學習和探究熱情,還有助于培養學生的自主管理能力,促進他們高效合作,從而更好地適應未來工作的需求。
關鍵詞:Git;開發工具;編程語言教學
中圖分類號:G434 ?文獻標識碼:A ?論文編號:1674-2117(2024)11-0083-05
在人工智能教育背景下,想要加速培養創新人才,除了要投入一定的智能硬件設備外,還需要拓展已有的教學結構,如在實踐課程中,在完成項目式學習課題時,如果是完全各自獨立的一人一創意,則不利于團隊協作,若是每組一題,又很有可能由個別優秀學生完成,其他學生直接引用甚至照搬他們的項目成果,導致教師不能真實評價學生的掌握狀況,多數學生也無法得到充分鍛煉。教師不妨在信息技術教學過程中嘗試開展基于Git系統的版本控制新教學模式,創設多種學習環境,激發學生的學習興趣,發展多種學習技能,促進學生對知識的理解和掌握。
Git因何而生?
Git是一個分布式版本控制系統,能夠快速高效地處理從個人項目到大型項目的版本歷史記錄,類似的分布式版本控制系統還有Mercurial、Bazaar、Darcs等。Git最初是由Linus Torvalds(布萊恩·克尼施瓦茨)于2005年為了更好地管理Linux內核開發而創建的。Git是一個開源項目,使用C語言編寫,可以在Windows、Linux、Mac各種平臺上運行。
1.分布式版本控制系統:分布式版本控制系統(Distributed Version Control System,簡稱DVCS)是一種不需要中心服務器的管理文件版本的方法,與集中式版本控制系統不同,分布式版本控制系統沒有“中央服務器”,每個人的電腦上都是一個完整的版本庫,這樣在工作的時候,無需聯網,因為版本庫就在自己的電腦上。在多人協作時,只需要各自的修改推送給對方,就能互相看到對方的修改。Git是一個分布式版本控制系統,這意味著每個開發者都可以在本地存儲和管理代碼的完整歷史記錄,而無需將所有更改都存儲在遠程服務器上。這種分布式方法減少了頻繁的網絡傳輸,提高了版本控制的效率。
2.版本歷史記錄:Git維護一個完整的版本歷史記錄,可以輕松地查看、管理和跟蹤代碼的更改。通過Git,開發者可以了解每次提交的詳細信息,包括提交者、日期和更改內容等。
3.分支管理:Git提供了分支管理功能,允許開發者在不同的分支上并行開發。分支可以用于開發新功能、修復問題等,確保不同開發任務的獨立性和靈活性。Git還支持分支合并和沖突解決機制,以確保不同分支之間的代碼可以正確地合并在一起。
4.版本庫:Git將代碼存儲在一個稱為版本庫(Repository)的地方。版本庫是一個中央存儲庫,用于存儲項目的所有歷史記錄和版本信息。每個開發者都可以在本地創建和管理一個版本庫副本,與其他開發者進行協作和共享代碼。
5.提交和修改:Git通過提交來記錄代碼的更改。提交是Git中的基本單位,它記錄了代碼的狀態和更改內容。每次提交都會生成一個唯一的哈希值,用于標識提交的唯一性。Git還支持修改歷史記錄,允許開發者修改先前的提交記錄。
6.合并和沖突解決:Git支持合并不同分支的代碼。當兩個或多個開發者同時對同一部分代碼進行更改時,會發生沖突。Git通過使用三路比較算法來解決沖突,確保正確地合并代碼。
版本管理系統與項目托管平臺
很多對Git完全不了解的讀者可能會誤以為Git和GitHub是一個概念,但其實兩者有著本質的區別:前者是一個版本管理系統,而后者是一個基于Web的項目托管平臺。Git和GitHub雖然都是為了進行版本控制而存在的,但它們之間存在很大的差別。下面我們來詳細了解一下Git和GitHub之間的關系。
Git是一個分布式版本控制系統,每個開發者都可以在本地創建和管理版本庫,并且可以將代碼推送到遠程倉庫進行共享。Git通過分支管理功能支持并行開發,并且具有強大的沖突解決機制,可以輕松地合并不同分支的代碼。GitHub是一個代碼托管平臺,它允許開發者們將他們的代碼存儲在云端,以便于多人協作、版本控制、代碼審查等操作。
GitHub成立于2008年,其主要功能是提供在線代碼托管服務,支持版本控制和協作開發。Git和GitHub都是為了進行版本控制和代碼管理而存在的,Git和GitHub可以配合使用。開發者可以使用Git在本地進行代碼的版本控制和協作開發,然后將代碼推送到遠程倉庫(如GitHub),以便于與其他開發者共享代碼并進行協作。
GitHub提供了Git的版本控制功能,但增加了許多其他的協作和項目管理功能。例如,在GitHub上,開發者可以創建拉取請求(Pull Request)來進行代碼審查和合并,也可以在問題跟蹤中記錄和跟蹤遇到的問題、缺陷和任務等。
Git和GitHub的結合使得代碼托管變得更加流行和高效。通過將代碼存儲在云端,開發者可以輕松地與其他人共享代碼、協作開發、審查代碼等。此外,Git和GitHub的集成工具和插件可以進一步提高開發效率和代碼質量。Git和GitHub之間的關系是互補的,Git提供了強大的本地版本控制功能,而GitHub則在此基礎上增加了許多協作和項目管理功能,使得開發者可以更加高效地進行軟件開發和項目管理。通過將Git和GitHub結合使用,開發者可以更好地利用這兩個工具的優勢,提高開發效率和代碼質量。
國內也有許多類似于GitHub的項目托管平臺,可以提供更穩定的網絡服務。碼云(Gitee)是一個基于Git的代碼托管平臺,由開源中國社區團隊推出。它提供了一個安全、可靠、高效的代碼托管環境,讓用戶可以輕松地與其他人協作開發項目。碼云支持創建和管理Git倉庫,允許用戶在云端存儲代碼,并與其他人共享代碼。用戶可以將自己的項目上傳到碼云,并使用Git命令進行版本控制和代碼管理。
除了基本的代碼托管功能之外,碼云還提供了許多協作開發工具和功能,如討論、Pull Request、評論等。這些功能使得用戶可以輕松地進行代碼審查和討論,并與其他開發者協作開發項目,從而提高工作效率和質量。在碼云上,用戶可以找到許多開源項目,這些項目為用戶提供了參與開源項目開發的機會,也為用戶的項目提供了靈感和資源。碼云還擁有一個活躍的社區和社交網絡,用戶可以在這里與其他開發者交流經驗和技術,結交新朋友。這個社區和社交網絡為開發者提供了一個互相學習、交流和分享的平臺。碼云支持大規模協作和開源項目的開發,這意味著用戶可以根據需要擴展平臺的功能和容量,以滿足更多用戶的需求并支持更多項目的開發。碼云的界面簡潔易用,提供了豐富的文檔和支持資源,方便用戶快速上手使用平臺的功能。這些文檔和支持資源幫助用戶更好地理解和使用碼云的各項功能,從而更好地實現代碼托管和協作開發的目標。
Coding.net是騰訊云旗下一站式基于Git的代碼托管和協作開發的DevOps研發管理平臺,與Gitee類似,它提供了代碼托管、協作開發、安全性、可擴展性、集成和易用性等特點。用戶可以在Coding.net上創建和管理Git倉庫,將代碼存儲在云端,并與其他人共享。平臺提供了討論、Pull Request、評論等功能,方便用戶進行代碼審查和討論,支持大規模協作和開源項目的開發,用戶可以根據需要擴展平臺的功能和容量。Coding.net可以與其他服務集成,如CI/CD工具、測試工具、項目管理工具等,使用戶能夠更方便地將其他工具和服務與平臺集成起來。最后,平臺界面簡潔易用,提供了豐富的文檔和支持資源,方便用戶快速上手并充分利用平臺的功能。
以上這些國內外代碼托管平臺,提供了強大的版本控制、多人協作、代碼審查等功能,使得開發者可以更加高效地進行軟件開發和項目管理。使用項目托管平臺可以幫助開發者更好地協作、管理代碼庫并提高開發效率。此外,項目托管平臺還支持許多集成工具和插件,可以幫助開發者更加高效地進行開發和測試。總之,無論是獨立開發者還是大型團隊的成員,使用項目托管平臺能夠助力更加高效地進行軟件開發和管理。
搭建Git項目倉庫初體驗
了解了Git和基于Git的項目托管平臺的基本概念之后,可以體驗一下如何搭建Git項目本地和遠程倉庫,即將尚未進行版本控制的本地普通目錄轉為Git倉庫,并將本地Git倉庫上傳到遠程倉庫(以GitHub項目托管平臺為例),具體實現方法如下。
1.從https://git-scm.com/download下載git安裝包后,在本地創建一個項目文件夾(以Windows環境下建立Example文件夾為例),通過“Open Git Bash here”,輸入git init命令把它變成Git倉庫(如上頁圖1)。
在安裝完成后,還需要最后一步設置,在命令行輸入:“git config --global user.name "用戶名"”和“git config --global user.email "用戶電子郵件" ”。這也好理解,因為Git是分布式版本控制系統,所以,每個機器都必須自報家門。
2.在進行以上操作后,一個Git版本庫就初始化完成了。現在Example文件夾內就會出現一個.git文件夾,這個.git文件夾就是Git的版本倉庫,里面包含了Git管理項目所需要的所有文件,之后提交的所有修改也都會被記錄在該文件夾內的特定文件內。可以把項目代碼添加進來,此處以“Example.py”文件為例(如上頁圖2)。
3.通過“git add .”把工作目錄中所有項目文件或者“git add Example.py”(以Example.py為例)特定文件添加到暫存區(如上頁圖3)。
4.再通過git commit -m
"注釋內容"把項目提交到本地倉庫(如圖4)。"注釋內容"最好是有明確意義的,這樣就能從歷史記錄里方便地找到改動記錄。
5.在GitHub上設置好SSH密鑰后,通過輸入“ssh -T git@github.com”命令測試與GitHub建立加密連接(如圖5),從而可以進行遠程操作,新建一個與本地項目文件夾同名的“Example”遠程倉庫。
6.獲取遠程倉庫上“Example”項目的地址(此處以“git@github.com:ohmyparadise/Example.git”SSH地址示意),如圖6所示。
7.通過git remote add origin git@github.com:ohmyparadise/Example.git將本地倉庫和遠程倉庫進行關聯(如圖7)。
8.通過git push origin master把本地倉庫的項目推送到Github的遠程倉庫上(如下頁圖8)。打開瀏覽器,可以看到成功推送頁面(如下頁圖9)。
通過以上Git操作基本面命令,完成了本地文件代碼推送到Git Hub遠程項目代碼倉庫初體驗,限于篇幅不能描述整個Git命令操作體系。
搭建專有Git代碼托管平臺
可能有讀者出于實際教學需要,希望搭建一個校內代碼托管平臺,可嘗試Gogs這個輕量級的、易于搭建和使用的自助Git服務。它本身就是一個GitHub上的開源項目(https://github.com/gogs/gogs)。對于初學者可以嘗試使用Docker容器安裝Gogs,這樣安裝更為簡單,只要通過幾條指令就可以馬上看到平臺效果。首先可以通過“docker pull gogs/gogs”拉取一個Gogs鏡像(如圖10)。
然后創建一個/var/gogs本地目錄作為gogs存儲目錄,再通過運行“docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs”開啟服務的路徑和端口映射。這樣就可通過該容器“IP:10080”訪問配置頁面(如圖11)。在完成初始配置后,即可注冊賬號并創建個人倉庫了。
結語
作為一個開源的分布式版本控制系統,Git可以有效、高速地進行項目的版本管理。在代碼托管平臺上讓學習者和開發人員貢獻自己的代碼,也能輕松使用其他人的代碼,從而讓學習和開發變得更加高效。對于個人而言,了解并掌握基于Git的版本控制系統,運用Git提供的Web IDE,使得開發變得更加簡單;對于團隊而言,將代碼存儲在服務器上,開發人員可以更輕松地協作和反饋。