




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、GIT使用培訓譚宗威2014-07-29歡迎 版本管理的作用1 常用版本管理介紹2 版本管理的工作模式3 Git介紹 4 Git日常工作模式5今天的內(nèi)容概述 學習目標 版本管理的作用 掌握日常的操作 團隊協(xié)作版本管理的作用為什么要版本管理?為什么要版本管理?文件管理歷史追蹤沖突管理版本發(fā)布團隊協(xié)作常用版本管理介紹常見的版本管理軟件簡簡 稱稱全全 名名CVSConcurrent Versions SystemVSSMicorosoft Visual SourceSafeSVNSubversionGitTFSTeam Foundation ServerMercurialClearCaseIBM R
2、ational ClearCasePerforce版本管理的工作模式靈活性健壯性單機版(文件系統(tǒng),RCS)分布式(Git、Mercurial)發(fā)展過程集中式(CVS,SVN)本地本地計算機計算機版本庫本地版本管理本地版本管理u版本庫:個人電腦/服務器uRCS: Revision Control System 可追蹤修改歷史u問題:如何協(xié)作?Version 3Version 2Version 1file檢出計算機計算機Afile檢出版本服務器版本服務器版本庫集中式集中式版本管理版本管理u版本庫:版本服務器uVCS: Version Control System 又稱CVCS(Central VC
3、S) 有SVN、CVS、firefly等產(chǎn)品u問題: 服務器會停 網(wǎng)絡(luò)會不通Version 3Version 2Version 1計算機計算機Bfile檢出版本版本服務器服務器版本庫分布分布式版本管理式版本管理u版本庫 版本服務器 個人計算機uVCS: 又稱DVCS(Distributed VCS) 有GIT、HG、bazaar等產(chǎn)品u問題: 亂成一團? 分支管理機制Version 3Version 2Version 1計算機計算機A版本庫Version 3Version 2Version 1計算機計算機B版本庫Version 3Version 2Version 1file檢出file檢出協(xié)作
4、模式 鎖定模型 沖突合并模型常用術(shù)語分支(Branch): 在一個時間點,復制一份處于版本控制之下的文件,從這之后,這兩份拷貝就可以獨立的互不干擾的進行各自開發(fā)。取出(Check-out): 一次“取出”,就是在本地創(chuàng)建一份倉庫的工作拷貝。提交(Commit): 一次“提交”,將本地的修改寫回到倉庫或合并到倉庫。沖突(Conflict): 當開發(fā)者們同時提交對同一文件的修改,而且版本系統(tǒng)不能把它們合并到一起,就會引起沖突,就需要人工來進行合并。合并(Merge): 合并就是把所有對文件的修改統(tǒng)一到文件里倉庫(Repository): 倉庫就是當前的和歷史的處于版本控制之下的文件所在的地方,通常
5、在服務器端。 工作版本(Working copy):從檔案庫中取出一個本地端的復制,所有在檔案庫中的檔案更動,都是從一個工作版本中修改而來的,這也是這名稱的由來。GIT介紹Git的誕生 2002年以前 Linus個人以diff方式管理 2002年至2005年 BitMover公司的BitKeeper 2005年以后 Linus兩個月開發(fā)出GitGit的發(fā)展 大部份開源軟件 G G C CGITGIT設(shè)計目標設(shè)計目標滿足大滿足大規(guī)模項規(guī)模項目需要目需要快速快速簡單簡單完全完全分布分布高效高效存儲存儲版本版本服務器服務器版本庫GITGIT工作模式工作模式u版本庫初始化 個人計算機從版本服務器同步u
6、操作 90%以上的操作在個人計算機 添加文件 修改文件 提交變更 查看版本歷史等u版本庫同步 將本地修改傳送 到版本服務器Version 3Version 2Version 1計算機計算機A版本庫Version 3Version 2Version 1計算機計算機B版本庫Version 3Version 2Version 1file檢出file檢出GITGIT文件存儲文件存儲第二部分第二部分GIT GIT 基礎(chǔ)基礎(chǔ)版本庫結(jié)構(gòu)版本庫結(jié)構(gòu)TortoisegitTortoisegit設(shè)置設(shè)置創(chuàng)建版本庫創(chuàng)建版本庫l 版本庫:repositoryl 創(chuàng)建方法創(chuàng)建方法p 執(zhí)行g(shù)it initl 示例示例p
7、工作目錄:E:RepositoriesGITRCMSDemop 在工作目錄中點擊鼠標右鍵l .git目錄目錄p 版本庫:暫存區(qū)和對象庫第一個提交第一個提交l 創(chuàng)建文件Readme.txtl 使用git add命令添加Readme.txtl 使用git commit提交Readme.txt修改文件修改文件l 修改Readme.txtl 使用git add命令添加Readme.txtl 使用git commit提交Readme.txt克隆版本庫克隆版本庫l 示例l 版本服務器:gitserverl 版本服務器用戶:gitusrl 版本庫:RCMSDocl 本地目錄:F:git文件狀態(tài)文件狀態(tài)a a
8、工作工作區(qū)區(qū)版本庫版本庫版本管理版本管理l 工作區(qū)p 工作目錄:.git文件夾所處目錄l 文件狀態(tài)文件狀態(tài)p 未跟蹤:處于工作目錄,但未被版本庫管理的文件p 已跟蹤:已被版本庫管理的文件,可能存在于工作目錄,也可能不存在于工作目錄中GITGIT文件狀態(tài)文件狀態(tài)工作工作區(qū)區(qū)暫存區(qū)暫存區(qū)對象庫對象庫修改文件修改文件暫存文件暫存文件提交提交文件文件檢出文件檢出文件l GIT文件p 已被版本庫管理的文件l 已修改已修改p 在工作目錄修改GIT文件l 已暫存已暫存p 對已修改的文件執(zhí)行g(shù)it暫存操作,將文件存入了暫存區(qū)l 已提交已提交p 將已暫存的文件執(zhí)行g(shù)it提交操作,將文件存入對象庫本地計算機本地計
9、算機版本庫Version mVersion Version 1file本地版本庫與服務器版本庫(一)本地版本庫與服務器版本庫(一)版本版本服務器服務器版本庫Version 3Version 2Version 1本地計算機本地計算機版本庫Version 3Version 2Version 1file檢出git add、commitgit pushgit pull版本版本服務器服務器版本庫Version mVersion Version 1遠程協(xié)作(一)遠程協(xié)作(一)l 創(chuàng)建文件Readme.txtl 使用git add命令添加Readme.txtl 使用git commit提交Readme.tx
10、t至本地版本庫xtl 使用git push保存Readme.txt到服務器版版本版本服務器服務器版本庫Version xVersion Version 1本地計算機本地計算機版本庫Version mVersion Version 1本地版本庫與服務器版本庫(二)本地版本庫與服務器版本庫(二)版本版本服務器服務器版本庫Version 3Version 2Version 1本地計算機本地計算機版本庫Version 3Version 2Version 1git add、commitgit pushgit pull版本版本服務器服務器版本庫Version nVersion Version 1git p
11、ushgit pull本地計算機本地計算機版本庫Version xVersion Version 1遠程協(xié)作(二)遠程協(xié)作(二)l 修改Readme.txtl 使用git add命令添加Readme.txtl 使用git commit提交Readme.txtl 使用git pull獲取服務器版本庫更新l 使用git push將Readme.txt保存至版本服務器GITGIT常用命令常用命令l 獲得版本庫p git initp git clonel 版本管理版本管理p git addp git rmp git commitl 遠程協(xié)作遠程協(xié)作p git pullp git pushl 查看信息查
12、看信息p git helpp git logp git diff第三部分第三部分GIT GIT 進階進階再談暫存區(qū)和對象庫再談暫存區(qū)和對象庫l 暫存區(qū)p 一個文件:.git/indexl 對象庫對象庫p 一個目錄:.git/objectsp 存放版本庫的各種對象對象對象l 對象對象p 每個對象都是一個文件p 每個對象都用40位的SHA-1值標識:6ff87c4664981e4397625791c8ea3bbb5f2279a3p 前兩位作為目錄名,后38位作為文件名l 對象組成對象組成p 類型:blob、tree、commit和tagp 內(nèi)容:對象文件的內(nèi)容p 大小:內(nèi)容的大小對象類型對象類型l
13、 blobp 是一個文件p 存儲文件的內(nèi)容l treep 是一個文件p 類似一個目錄p 包含其它tree和blobl commitp 是一個文件p 包含時間、作者、一個tree的標識、父commit的標識l tagp 是一個文件p 包含一個commit的標識案例案例blobblobtreetreecommitcommit對象模型對象模型gitgit statusstatusl 工作區(qū)相比暫存區(qū)工作區(qū)相比暫存區(qū)p 新增文件p 修改文件p 刪除文件p 一致(git add)l 暫存區(qū)相比對象庫暫存區(qū)相比對象庫p 新增文件(git add)p 修改文件(git add)p 刪除文件(git rm)p
14、 一致(git commit)l 暫存區(qū)僅保留對象庫當前暫存區(qū)僅保留對象庫當前分支的快照,分支的快照,git commit將將會替換當前快照,使得暫會替換當前快照,使得暫存區(qū)與對象庫的當前分支存區(qū)與對象庫的當前分支最新更新一致最新更新一致gitgit rmrmGIT通常只會增加內(nèi)容,不用擔心丟通常只會增加內(nèi)容,不用擔心丟失曾經(jīng)有的數(shù)據(jù)失曾經(jīng)有的數(shù)據(jù)GIT也支持徹底清除確認無效的數(shù)據(jù)也支持徹底清除確認無效的數(shù)據(jù),屬于更高級的內(nèi)容,屬于更高級的內(nèi)容第四部分第四部分分支管理分支管理分支分支l 概念概念p 一個commit對象鏈:一條工作記錄線mastermasterl 主分支主分支p 默認分支p 主
15、體功能開發(fā)l 綜合信息綜合信息p 一個文件:.git/refs/heads/masterp 文件內(nèi)容:commit對象的SHA-1值HEADHEADl 當前當前commit對象引用對象引用p 一個文件:.git/HEADp 文件內(nèi)容:分支引用(ref: refs/heads/master)commit對象的SHA-1值(4c9f4)再談分支再談分支l 概念概念p 一個文件:位于.git/refs/heads目錄下p 文件內(nèi)容:commit對象的SHA-1值l 分支管理分支管理p 創(chuàng)建分支:git branch p 刪除分支:git branch d 在分支上工作在分支上工作l 切換到分支切換到
16、分支p git checkout 用分支對應的快照更新暫存區(qū)和工作區(qū)分支合并分支合并l git merge 沖突沖突l 沖突:沖突:修改了兩個待合并分支里同一個文件的同一部分(比如同一行)沖突產(chǎn)生沖突產(chǎn)生沖突解決沖突解決第五部分第五部分團隊協(xié)作團隊協(xié)作遠程版本庫遠程版本庫l 管理管理p git clone :生成一個叫orgin的遠程版本庫p git remote v:查看遠程版本庫信息p git remote add :指定版本庫名字l 路徑路徑p .git/refs/remotes/遠程分支遠程分支l 路徑路徑p .git/refs/remotes/l 訪問方式訪問方式p /:origin
17、/masterl 跟蹤分支(跟蹤分支(tracking branch)p git checkout /p git checkout b /從遠程版本庫抓取數(shù)據(jù)從遠程版本庫抓取數(shù)據(jù)l git fetch remote repo namep git fetch = git fetch originp 從遠程倉庫中拉取本地倉庫中還沒有的數(shù)據(jù)(所有分支)p 需要執(zhí)行g(shù)it checkout跟蹤遠程分支,從而產(chǎn)生本地分支再談再談克隆克隆版本庫版本庫l git clone p git init p git remote add origin p git fetch originp git checkout origin/master推送數(shù)據(jù)給遠程版本庫推送數(shù)據(jù)給遠程版本庫l git push remote repo name branch namep 將本地分支推送給的分支l git pushp 如果當前分支為跟蹤分支,則推送至其跟蹤的遠程分支
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 優(yōu)化辦公流程管理規(guī)章制度
- 2025年巴彥淖爾貨運從業(yè)資格證考試卷
- 2025年江蘇貨運從業(yè)資格證模擬考試0題b2
- 人力資源企業(yè)勞動合同
- 2025年烏海貨運資格證考試有哪些項目
- 2025年宜昌貨運從業(yè)資格證模擬考試系統(tǒng)下載
- 2025年南京貨運從業(yè)資格考試技巧
- 動漫游戲創(chuàng)作與制作技術(shù)作業(yè)指導書
- 2025年南昌貨運從業(yè)資格證模擬考試題下載
- 2025年部編版語文小學三年級下冊口語與習作專項復習題
- 諾如病毒的護理
- 三年級下冊語文核心素養(yǎng)教案電子版
- 財務管理學(第10版)課件 第3章 財務分析
- 急性腦卒中知識考核試題及答案
- GB/T 44026-2024預制艙式鋰離子電池儲能系統(tǒng)技術(shù)規(guī)范
- 鄧稼先新版課件省公開課一等獎新名師比賽一等獎課件
- JT-T-883-2014營運車輛行駛危險預警系統(tǒng)技術(shù)要求和試驗方法
- 道閘施工方案
- 2024年全國國家版圖知識競賽題庫及答案(中小學組)
- 湘教版高中地理必修2全冊導學案
- 2024陜西西安事業(yè)單位歷年公開引進高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
評論
0/150
提交評論