內部GIT學習材料_第1頁
內部GIT學習材料_第2頁
內部GIT學習材料_第3頁
內部GIT學習材料_第4頁
內部GIT學習材料_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、內部GIT/EGIT學習材料贊同科技基礎概念n分布式倉庫n開發(fā)者人人擁有倉庫,公司的服務器、甲方客戶的服務器都可以擁有倉庫。倉庫用來維護版本。n倉庫之間松耦合n不是cvs、svn那種緊耦合模式(斷網(wǎng)無法維護版本)n也不是ftp、文件共享那種無耦合模式(只能維護最終版)n每個本機倉庫可以配置多個遠程倉庫來實現(xiàn)松耦合,首個遠程倉庫名字為origin。n遠程倉庫通過fetch獲取最新內容(可以限定只fetch某些分支而不是全部內容)基礎概念nGit倉庫直接由分支branch組成ncvs的branch,本質就是文件差量的標簽,所以cvs的branch需從文件內掃描出來。nsvn的branch,本質就是

2、子目錄,所以svn的branch有時需要從某個較深的子目錄里面找出來。n由于git倉庫直接由branch組成,所以我們建立目錄時可以完全以內容為導向,不必建立4.x/4.0這樣的以版本為名的子目錄了?;A概念n倉庫內創(chuàng)建的首個branch的名字為mastern從已有branch切一個新branch將沿襲所有資源,這與cvs/svn針對局部資源打分支的概念是不同的,git的branch覆蓋全局。n所以在eclipse里面切換git的不同branch時,特點就是瞬間整體切換,workspace里面的所有該倉庫的工程,可以瞬間全部switch(若某些該倉庫的工程在新branch里不存在則自動clos

3、e,切回時自動open)ngit提倡你多切分支,你可以在去上廁所前切一個,去上廁所后再切一個,左切切右切切,沒關系,它罩得住。基礎概念n分支由提交commit組成ncommit本質就是資源樹的差量,在本地分支上產(chǎn)生。n其id為20字節(jié)的hash,非順序產(chǎn)生,所以支持分布式存在。ncommit在本地分支上產(chǎn)生,但通過一些版本操作,commit可以屬于多個branchn所以我們在eclipse的history視圖里看到的commit歷史有點像地鐵線路,如右圖基礎概念ntag相當于branch的快照n這個概念和svn及cvs的類似。n我們用來標記公司產(chǎn)品在某個時間點的release或市場上的某一次投

4、產(chǎn)版本命名規(guī)范n公司產(chǎn)品版本(v_*)nbranchn以v_開頭,以.x結尾的版本號n例如:v_1.0.x,v_2.xntagn以v_開頭,release版本號n例如:v_1.0.0,v_2.1命名規(guī)范n市場維護版本(b_*)nbranchn以b_開頭,銀行縮寫,項目名(可略,用來區(qū)分同一個銀行的多個分支),啟動月份(yyyyMM)n例如:b_ceb_200910,b_bcub_yinqi_201003ntagn以b_開頭,銀行縮寫,項目名(可略,用來區(qū)分同一個銀行的多個分支),投產(chǎn)日期(yyyyMMdd)n例如:b_ceb_20100202,b_bcub_yinqi_20100606命名規(guī)范

5、n其他臨時分支(在公司服務器外管理)n任務分支,例如用bug系統(tǒng)編號,bugs_ab_1378n在行里建立dev(開發(fā)分支)、uat(測試分支)、b_bankname_yyyyMM(投產(chǎn)分支),后兩個分支可以從第一個分支中挑選(即cherry pick)工作成果,依據(jù)測試投產(chǎn)與開發(fā)的不同要求,實現(xiàn)三個平行的版本分支。關于后續(xù)內容n后續(xù)內容以Egit為例簡略介紹git使用n若想詳細了解某一操作的詳細步驟可參考egit幫助中的tasksEgit操作準備nEclipse安裝egitnHelp-install new software/egit/up

6、dates常用視圖nGit RepositoriesnHistoryn右鍵相關工程team-show in historyRSA認證nPreferences-General-Network Connections-SSH2n(ssh2)Key management-generate rsa key- save private key(私鑰和公鑰都會保存下來) - applyn確認剛才保存的私鑰出現(xiàn)在(ssh2)General- private keys里面,否則add private key選擇剛才保存的私鑰(非pub后綴的那個)。n把公鑰內容發(fā)給管理員,開通身份認證及權限建庫n從公司的git

7、庫克隆創(chuàng)建(管理員已經(jīng)幫你加好公鑰)nGit repositories視圖nClonenUrinssh協(xié)議n統(tǒng)一使用系統(tǒng)git用戶建立ssh連接,egit自動使用剛才生成的rsa密鑰進行認證n公司服務器地址,最好使用域名ntesting是已創(chuàng)建的庫之一,開放全部權限供學習測試取分支n克隆建庫將自動取下所有分支n在branches/Remote Tracking下(注:這里已經(jīng)下載到本地了)n在remotes中n可以通過fetch再次獲取,下載到branches/Remote Trackingn可以通過configure fetch修改獲取范圍(只取關心的分支)取分支nConfigure對話框中

8、選取advancen逐條配置映射specnSource ref為分支名nDestination ref為跟蹤分支名n保存完成切分支nBranches下兩種分支nLocal為本地操作分支nRemote Tracking為遠程跟蹤分支n從要維護的遠程分支切出本地分支n在遠程分支右鍵create BranchnLocal將出現(xiàn)可以操作的同名本地分支檢出工程n切出本地分支后,可以在Working Directory中看到分支內的所有資源文件n找到相應的工程位置并importn提示:檢出工程后,點擊Branches中不同分支可以實現(xiàn)Eclipse Workspace所有分支相關工程的快速切換保持跟蹤狀態(tài)

9、n本地分支可以配置對應的遠程庫以便顯示出松耦合的上行和下行的commit數(shù)量n保持跟蹤關系的local分支上的所有工程都將顯示commit數(shù)量,如圖:2個上行提交(待push),1個下行提交(待pull,或rebase)基本日常操作流程n盡量經(jīng)常fetch保持對遠程庫的監(jiān)視n通過rebase消化下行的commit(若有下行的commit)n若rebase過程中出現(xiàn)沖突,沖突文件顯示成n手工修正后add to index,文件變?yōu)閚全部沖突文件修改后,rebase-continue,直到完成n若再次發(fā)生沖突則再次手工修正、add to index、continuen在本地完成代碼工作后,comm

10、it形成本地提交,導航器熱鍵為CTRL+SHIFT+3n多次本地Commit后,具備網(wǎng)絡條件時,push to upstream基本日程操作nRebase原理舉例說明nC1、C2為歷史過往提交,C5、C6為本地后續(xù)的提交(灰色的部分)。nC3、C4為fetch后發(fā)現(xiàn)的下行提交(遠程跟蹤分支)n通過rebase操作,本地的C5、C6分別遷移成為C5和C6, 達到了消化C3、C4的目的n若遷移中發(fā)生沖突,則手工解決、add to index、rebase continue關于Push和PullnPush之前必須保證下行commit都已被消化,否則push會報錯失敗,這時需要rebase。nPull

11、的本質就是一個二合一操作:Fetch再加一個三選一操作nRebasenMerge(不推薦)nNonen為了使操作步驟更明確,我們建議沒必要使用pull,而是根據(jù)fetch結果有無下行commit再選擇rebasen慣用的基本操作為:fetch-rebase-commit-push操作技巧nAmend commitn作用:對最后一次提交就行修訂,防止產(chǎn)生過多的零碎的提交。n場景:發(fā)現(xiàn)最后一次提交內容不完整,例如忘了格式化,需要更正拼寫錯誤,等等。n方法:在commit對話框按下amend圖標,在上次提交基礎上繼續(xù)完善。操作技巧nCherry pickn作用:把別的分支中的commit復制到當前分

12、支中。n場景:別的分支解決了某個bug,或者加了新功能,當前分支也想要。n方法:在history中找到其他分支對應commit記錄后,右鍵菜單cherry pick操作技巧nStashn作用:把未commit的修改臨時擱置起來,以后還可以應用回來n場景:當前分支的工作進行到一半,另一個分支有緊急任務需要切換過去完成n方法:Git倉庫視圖中點擊倉庫右鍵stash changes完成其他分支工作后切換回原分支,再apply操作技巧nResetn作用:把當前分支的HEAD重置到歷史中的某次提交點n場景:時空穿越n方法:在history視圖中選中目標提交點,右鍵reset-nSoft:僅修改了HEAD

13、指針。文件差異成為unstaged change。nMixed:修改了HEAD指針和索引,但文件未變,可以把原來進行中的工作帶過來繼續(xù)完成。文件差異形成staged change。nHard:徹底重置,沒有重置前的任何痕跡。Soft和Mixed沒有質的差別,通過Git Staging視圖操作可以根據(jù)自己的需求手工解決版本文件差異,繼而提交形成新的版本。 操作技巧nCheck outn作用:把WorkingDirectory切換到任意分支的任意提交時刻(而switch to只能是任意分支的HEAD)。n場景:查看某個分支的某個歷史版本n方法:在history視圖中選中目標提交條目,右鍵check out高級管理nTag(用于標記正式release或投產(chǎn))n選中history視圖中的某一條目即可創(chuàng)建tagn在git repositories視圖中刪除高級管理n管理遠程庫上的分支(通過Push)n在遠程庫上創(chuàng)建分支n首先要創(chuàng)建一個同名的本地分支,再通過Remotes的push節(jié)點configure pushn選advanced后,打開Push Ref Specification對話框加入映射關系。n加入映射后,回到

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論