在Eclipse中使用Git
本文原文出自MCU on Eclipse網站,作者為Erich Styger,原文網址:https://mcuoneclipse.com/2018/09/30/tutorial-git-with-eclipse/。本人翻譯了此篇文章,有些短語難以找到準確表達的中文詞語,所以保持了原文。限于個人的知識局限性,如有不當之處歡迎交流。
?
軟件開發領域有一些改變游戲規則的事情:當我開始使用VCS(版本控制系統)時,就有一個這樣的事件:它改變了我如何保存和存儲我的項目和設置。它甚至改變了我處理非軟件相關項目(如文檔或其他有價值的東西)的方式:我也開始將它們存儲到VCS中。
與Eclipse合作
簡而言之,VCS
簡而言之:VCS是一個數據庫或允許我存儲和檢索文件的系統。它保留了歷史記錄,我可以及時返回以檢索較早的狀態或比較不同的狀態。它在一種數據庫中“版本化”項目或文件。在大多數情況下,這樣的數據庫由多個用戶或開發人員使用,通過這種方式,系統能夠“合并”不同開發人員的更改:它保留審計跟蹤并備份所有更改。不使用VCS進行任何中型或大型項目,尤其是多個開發人員合作聽起來像是對我自殺。如果您從未使用過版本控制系統,則可能需要開始使用版本控制系統。我使用了不同的VCS(cvs,svn,git),雖然我仍然在vcs和svn中保留項目的歷史原因,但我正在使用git來處理所有新東西。
如果您不熟悉VCS或git,我建議您查看本教程視頻:https://git-scm.com/video/what-is-version-control
Git - 快速入門
該Git項目已經由著名的Linus Torvalds的開始。它是一個現代的分布式版本控制系統。要安裝git,請按照https://git-scm.com/downloads上的鏈接和教程進行操作
使用git有幾個基本操作:
- 添加(add):將文件添加到更改列表中
- 提交(commit):將更改輸入(本地)存儲庫
- 推送(push):將本地存儲庫中的更改傳輸到遠程存儲庫
- 獲取(pull):從遠程存儲庫獲取更改
默認情況下,始終存在本地存儲庫。需要遠程存儲庫來共享內容,例如在GitHub上。
在Git Bash shell中,首先配置您的用戶名和默認電子郵件地址:
git config --global user.name “John Doe” git config --global user.email “ john.doe@company.com ”
Git配置
這就是我們配置所需的一切。
要創建一個新的git存儲庫,我使用
git init myGitRepo在'init'之后創建具有該名稱的存儲庫。
接下來,我在創建的文件夾中創建了一個readme.txt(我在下面使用nano,你可以使用任何文本編輯器):
cd myGitRepo nano readme.txt要將該文件添加到存儲庫,我使用:
git add readme.txt然后使用以下命令將其提交到存儲庫:
git commit -m“自述文件的初始版本”
將文件添加到存儲庫
而是在命令行上執行操作,您可以自由使用圖形客戶端,請參閱https://git-scm.com/downloads/guis
面向Eclipse的Egit客戶端
我總是在命令行版本和Eclipse插件旁邊安裝GUI客戶端。每個客戶都有其優點和缺點,我正在使用免費的SourceTree。我的模型是:
- 使用像SourceTree這樣的GUI客戶端來正常使用git
- 使用命令行版本進行更高級的操作或自動化
- 使用Eclipse插件處理Eclipse項目
我對Eclipse插件的偏好是'?EGit?',為此我寫了一篇文章如何將它安裝到CodeWarrior中。許多Eclipse發行版已經預裝了一個git客戶端,而NXP MCUXpresso IDE也附帶了EGit。
否則,請從以下Eclipse Update站點(幫助>安裝新軟件)使用(或更新):http://download.eclipse.org/egit/updates
展望未來,我將展示如何使用Eclipse(NXP MCUXpresso IDE 10.2)與EGit。
Eclipse中的Git視圖和倉庫配置
在Eclipse中,我切換到Git透視圖:
打開Git Perspective
從git的角度來看,我可以添加一個現有的存儲庫(例如我上面用shell創建的存儲庫):
添加現有存儲庫
然后瀏覽到存儲庫文件夾并添加它:
添加現有倉庫
而是使用shell,我也可以用它來創建一個新的存儲庫:
創建新存儲庫
然后它會詢問我的存儲庫文件夾名稱:
新的eclipse git存儲庫
并將其添加到可用的存儲庫:
倉庫列表
或者我可以從現有的存儲庫克隆,例如從GitHub克隆。為此,我使用'克隆':
克隆存儲庫
例如,我可以克隆并使用Gi??tHub上的McuOnEclipse存儲庫:https://github.com/ErichStyger/mcuoneclipse.git
您將無權在GitHub上推送到該存儲庫。如果要對GitHub存儲庫進行更改:將它在GitHub上克隆到您自己的存儲庫列表并使用您的存儲庫URL。
克隆McuOnEclipse
按next并選擇所需的分支(如果有)。
選擇分支
然后指定(新/空)目錄名稱克隆存儲庫的位置:
本地目的地
按Finish,它將下載存儲庫內容,這可能需要一段時間,具體取決于存儲庫中的數據。
將項目添加到存儲庫
配置存儲庫后,我可以將現有項目添加到存儲庫。右鍵單擊項目,然后選擇Team> Share Project ...
分享項目
選擇要使用的VCS:
選擇VCS
選擇要使用的存儲庫,然后按Finish:
選定的存儲庫
忽略文件
Git使用.gitignore文件來過濾(隱藏)不應該最終存儲在存儲庫中的文件或文件夾。
Git將要忽略的文件和文件夾列表存儲到名為.gitignore的文件中。默認情況下,Project Explorer視圖會隱藏以點開頭的所有文件。要顯示它們,請使用“過濾器和自定義”菜單:
過濾和定制
然后取消選中* .resources設置:
過濾器
有了這個,我可以在Eclipse中編輯.gitignore文件:
默認.gitignore文件
該文件從頂部到底部進行處理,#用于啟動注釋行。
作為一般規則:忽略派生或生成的所有內容,因為它很容易在存儲庫中創建沖突。
有關CodeWarrior和Processor Expert要忽略的事項列表,請參閱https://mcuoneclipse.com/2013/03/29/version-control-with-processor-expert-projects/。
更新:建議忽略項目的.settings文件夾(請參閱本文評論部分中的討論)。.settings文件夾包含具有本地插件設置的XML文件,并且特定于用戶。所以不要不把那個文件夾到版本控制系統。
對于MCUXpresso IDE和SDK項目,它非常簡單:只需要??忽略帶有生成的make和目標文件的輸出文件夾,通常將其命名為“?Debug?”和/或“?Release?”。從上面的.gitignore可以看出,Eclipse已經將它添加到列表中,所以我們沒關系:-)。
承諾
在上一步中,我已將項目添加到更改列表中。但它尚未存儲在存儲庫中。為此,我需要做一個提交。隨著項目的添加,我現在在Team菜單中有更多可用的操作:
擴展團隊菜單
使用'Commit ...'菜單項,我得到一個Git Staging視圖:
Git Staging
左上方區域顯示所有更改。我必須使用拖放或使用該工具欄中的“+”和“++”圖標將它們放入左下區域并添加提交消息:
準備提交
然后我可以提交(在本地存儲庫中進行更改并稍后推送)或者通過推送到遠程存儲庫來進行提交。
我更喜歡做較小的提交,然后再推它們。對于本地(非共享)存儲庫,當推送到遠程存儲庫時,不需要/不可能推送。
推送,獲取和比較
團隊菜單中提供了推送操作:
推送
在同一個菜單中,我找到了拉動作(從存儲庫中獲取更改)。
要比較更改,請雙擊該文件,然后打開Eclipse diff視圖:
比較變化
從Git導入
另一個很酷的事情是我可以將項目從git導入我的工作區。我使用文件菜單中的導入項:
導入
然后從Git中選擇導入:
從Git導入項目
選擇存儲庫源:
選擇存儲庫源
如果您克隆了McuOnEclipse存儲庫,則可以選擇該存儲庫中的一個或任何存儲庫:
選擇git倉庫
然后選擇要導入項目的文件夾:
選擇要導入的項目
這樣我就可以輕松地從任何存儲庫導入項目:-)。
與Eclipse一樣,有很多方法可以做一件事。導入項目的另一種方法是從Git Repositories視圖:
導入Git項目
更多功能
可以自由探索Eclipse中的更多EGit功能。我建議通過Git透視默認視圖。例如“歷史記錄”視圖
Git歷史視圖
Git歷史
摘要
帶有EGit插件的Eclipse可以輕松使用git版本控制系統。如果不熟悉版本控制系統需要一些練習。但這個事情很容易解決,互聯網上有很多教程和視頻。
鏈接
- git版本控制系統軟件:https://git-scm.com/
- Subversion(svn):https://subversion.apache.org/
- 并發版本系統(cvs):https://en.wikipedia.org/wiki/Concurrent_Versions_System
- 使用處理器專家項目進行版本控制:https://mcuoneclipse.com/2013/03/29/version-control-with-processor-expert-projects/
歡迎關注:
總結
以上是生活随笔為你收集整理的在Eclipse中使用Git的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Modbus协议栈应用实例之三:Modb
- 下一篇: ecc算法入门介绍