版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、EGIT配置使用說明文檔1.配置你的MYECLIPSE,生成公鑰和私鑰文件22.設(shè)置MYECLIPSE的SSH33.配置個人信息,最重要的是和user.email34.第一次從服務(wù)器的版本庫里取代碼到本地倉庫中55.提交修改到本地倉庫8單個文件的修改的提交8多個文件修改的提交9改變前一個提交(commit)的文件內(nèi)容變更以及Commit Message106.查看歷史記錄107.推送到遠程倉庫118.解決推送沖突15沖突15合并189回滾22回滾變更22版本回滾23文件回滾30回滾到已push版本的解決方式3410.分支和合并34創(chuàng)建分支34分支改名36刪除分支37合并分支3
2、8推送本地新的分支到遠程倉庫39解決分支推送沖突的流程4111.標(biāo)簽功能41從Package Explorer建立標(biāo)簽(Tag)41從History視窗建立標(biāo)簽(Tag)43改變標(biāo)簽(Tag)的位置4512git merge vs git cherry-pick(挑選合并)47git merge是用來合并兩個分支的47git cherry-pick可以選擇某一個分支中的一個或幾個commit(s)來進行合并4713git reflog 和git log的區(qū)別,外加git cherry-pick的一種用法4814、EGIT的常用的幾個命令48查看某一個人的所有修改歷史48查看一個文檔的所有修改歷
3、史50其他:501. 配置你的MYECLIPSE,生成公鑰和私鑰文件1) 打開windowpreferences2) 找到GenaralNetwork ConnectionsSSH3) 切換到 Key Management頁面:4) 點5) 會生成一串代碼如下:6) 生成公鑰文件:l 新建一記事本,將生成的SSH拷貝到記事本中去,并保存l 如位置是:d:我的文檔sshl 文件名格式為user.pub如wangl.pub7) 生成私鑰文件:l 點l 保存私鑰文件,如位置是:d:我的文檔sshl 私鑰文件名為user.ppk如wangl.ppk8) 將你的公鑰文件傳給配置管理員注意:公鑰文件和私鑰
4、文件要保存在同一個目錄中。2. 設(shè)置MYECLIPSE的SSH1) 打開windowpreferences2) 找到GenaralNetwork ConnectionsSSH3) 設(shè)置公鑰文件和私鑰文件的目錄SSH2 HOME和文件名4) 其中SSH2 HOME是你公鑰文件和私鑰文件的目錄5) 然后點,將公鑰文件和私鑰文件加進來6) 點進行保存3. 配置個人信息,最重要的是和user.email1) 打開windowpreferences2) Team > Git > Configuration3) 設(shè)置Add Entry點OK4) 設(shè)置user
5、.enailAdd Entry點OK點Apply4. 第一次從服務(wù)器的版本庫里取代碼到本地倉庫中1) File >Import>Git>Project from Git 2) 點next> URI> next3) URI: ssh:/gitrdccmsvr02/NSGESOA4) Password填secure5) 點next6) 若第一次從服務(wù)器上的版本庫里取版本,會彈出如下對話框:7) 點yes8) 彈出如下對話框:9) 選擇要開發(fā)的分支項目,如勾選第一 項(不可全勾選)10) 點next>next11) 彈出如下對話框:選擇Import existin
6、g project備注:如果project出不來,只要點BACK按扭,再點NEXT按扭就會出來了12) 點Next13) 點Finish,則取代碼完成5. 提交修改到本地倉庫單個文件的修改的提交1) 例如修改了WebRoot/about.html,要提交到本地倉庫2) 則右鍵選擇該文件>team>commit3) 彈出的對話框中自動勾選了剛才選中的about.html4) 填寫Commit message5) 點commit 6) about.html文件的修改就提交到了本地倉庫多個文件修改的提交1) 右鍵選擇當(dāng)前的project >team>commit2) 在彈出的
7、對話框中勾選需要提交的文件3) 填寫Commit message 4) 點commit ,需要提交的文件就提交到了本地倉庫改變前一個提交(commit)的文件內(nèi)容變更以及Commit Message1) 可以改變前一個提交(commit)的文件內(nèi)容變更以及Commit Message。(只能改變未發(fā)布(push)前的提交)2) 如提交當(dāng)前修改的內(nèi)容的時候若想修改上一個提交的Commit Message和文件變更,只需要按下這個按扭3) 重新輸入Commit Message,點Commit即修改成功。6. 查看歷史記錄1) Team -> Show in history可以查看版本歷史提交
8、記錄2) 顯示的內(nèi)容如下:3) 若想選中修改的文件,進行對比查看,需要選擇對比模式,如下:4) 顯示的對比模式如下:7. 推送到遠程倉庫1) 右鍵選擇當(dāng)前的Project, Team -> remote -> Push2) 選擇遠端倉庫,點Next3) 選擇要推送的分支4) 如master 分支5) 選擇目的分支6) 點7) 點Next,顯示推送的內(nèi)容8) 點Finish,顯示推送的結(jié)果9) 點OK,推送成功8. 解決推送沖突沖突如果在向服務(wù)器上的版本庫進行代碼提交(push)操作的時候出現(xiàn)了沖突,會PUSH失敗,這個時候,你就需要先將版本庫上的最新代碼取到本地,然后與你自己修改的
9、內(nèi)容進行合并,之后才提交,具體步驟為:1) PUSH的時候出現(xiàn)沖突,導(dǎo)致push失敗,提示如下:2) 使用Pull將遠端版本庫的變更更新到本地3) 在當(dāng)前的project點右鍵選擇Team Pull4) Pull的過程5) Pull的結(jié)果6) 在Pull之后,會看到在當(dāng)前的project中出現(xiàn)沖突標(biāo)志,且在Hello.java文件中也出現(xiàn)了沖突標(biāo)志。合并1) 可以通過直接修改文件來解決沖突l 修改當(dāng)前的沖突文件Hello.java,最后合并的文件中要去除<<<<<<< HEAD、=、'>>>>>>> b
10、ranch 'master' of ssh:/gitrdccmsvr02/javahello'l 如修改后的文件內(nèi)容為:l 然后將解決沖突后的文件保存l 進行Add to Indexl 然后commit,l 如果commit成功,則可以成功push到版本庫,如不能commit成功,說明沖突沒有成功解決。2) 使用Merge工具來解決沖突l 在這里我們選擇使用Merge工具l 在當(dāng)前project點右鍵選擇Team Merge Tooll 若選擇的是Use the workspace version of conflicting files (pre-merged by
11、Git)則顯示的文件中有包含沖突標(biāo)志l 顯示如下l 在這里選擇Use HEAD (the last local version) of conflicting files l 顯示如下l 紅框的按扭說明如下: l 使用合并工具來解決沖突的文件,則會以右邊的結(jié)果作為修改的目標(biāo),如您不想如此,則要使用手動修改的方式,在這里我們以右邊的文件為修改結(jié)果:l 先點l 再點l 結(jié)果如下:l 之后保存該文件,然后進行 add to indexl 之后commit, 在這里會自動生成Commit Messagel 按Commit按扭提交。l 將用戶端版本庫的變更發(fā)布(Push)到遠端版本庫后顯示的Push結(jié)果
12、。9回滾回滾變更在前面我們已經(jīng)知道如何將變更提交,如果我們想要將已提交到用戶端版本庫的變更回滾到前一版本或是回滾到某一個版本,Git也有提供回滾的功能 。如果您的用戶端版本庫是從遠端版本庫仿制(Clone),則回滾的版本只能回滾到尚未發(fā)布(Push)的版本(或是已push的最后一版),雖然您在自己的用戶端可以將您的版本回滾到已經(jīng)發(fā)布(Push)的版本,但在之后的發(fā)布皆會失敗,如圖:注1:為Git的版本號碼是一組40字元的代碼(如:9f54417c8ae0ab95014eab906099b8089a6da2a1),為了方便說明,在此以"第n版"代表每一次的變更。 注2:在版本
13、間的箭頭方向,有箭頭的部分代表著后面版本的parent,例如:第1版是第2版的parent、第4版是第5版的parent。 說明:目前最新版本是在第5版,您目前可以選擇要回滾到第4版或第3版,上圖的上半部是回滾到第4版,回滾到第4版后原本的第5版就會消除,如您有產(chǎn)生新的變更就會有新的第5版、第6版,假如目前最新版本是第6版,在第6版時push就可以成功。而上圖下半部的部分是回滾到第2版,后面產(chǎn)生的第3版、第4版、第5版就會消失,如您產(chǎn)生新的變更就會有新的版本第3版、第4版產(chǎn)生,但這時如果您push則會失敗。 會有push錯誤的原因是:目前在遠端版本庫的最新版本是第3版,而您將版本回滾到第2版后
14、再產(chǎn)生新的第3版,這時在你用戶端的第3版和遠端版本庫的第3版的版本號碼是不一樣的,所以就會在push的時候產(chǎn)生錯誤。因此,如在使用回滾版本時必須注意不能回滾到已Push最后一版的前面版本。 在接下來所有情境中的History,您會看到第n版的歷史變更(例如:第1版、第2版),這是為了方便說明各個版本的回滾例子而產(chǎn)生的變更。版本回滾EGit的版本回滾功能只能從Eclipse的History視窗來回滾,如您選擇回滾的版本是目前最新的版本(HEAD),或是直接在項目上選擇Reset選項,則只是將未提交的變更文件回滾,此部分會在下方的文件回滾詳細(xì)介紹。 在EGit的回滾版本功能與使用Git Reset
15、指令一樣,而回滾的方式又分為Soft、Mixed、Hard三種: Ø Soft:回滾到前面版本,保留文件變更內(nèi)容,且將已變更的所有文件加到準(zhǔn)備區(qū)。 Ø Mixed:回滾到前面版本,保留所有已變更文件的變更內(nèi)容。Ø Hard:回滾到前面版本,不保留所有已變更文件的變更內(nèi)容。 以下就來介紹如何操作回滾功能:l 在項目點右右鍵選擇Team Show in Historyl 選擇Show in History就會顯示如下畫面,現(xiàn)在可以看到目前的HEAD的版本(我們稱為第18版)。l 如果使用Reset的soft選項: l 我們選擇回滾到前一個版本(我們稱為第17版),在使
16、用Reset前我們先看一下當(dāng)前版的History:l 回滾到前一個版本(我們稱為第17版):我們在前一個版(17版)點右鍵選擇Reset Soft。l 使用Reset(Soft)指令后,您會看到之前的版本不見了,而目前的HEAD為:l 而在Package Explorer的HelloWorld.java文件圖示變?yōu)?,表示已?8版的變更保留下來并加到準(zhǔn)備區(qū)中。l 如果您使用Reset的Mixed選項: l 目前最新版本(HEAD)是第17版,我們選擇回滾到第14版,回滾前我們先看第16版和第15版的Historyl 第16版的Historyl 第15版的Historyl 我們選擇回滾到第14版
17、,所以我們在第15版點右鍵選擇Reset Mixed。l 使用Reset(Mixed)指令后,您會看到History的第17版、第16版、第15版不見了,而目前的HEAD是第14版。l 而在Package Explorer的HelloWorld.java和World.java文件圖示變?yōu)?,表示已?7版、第16版、第15版的變更保留下來但還沒有加到準(zhǔn)備區(qū)中。l 如果您使用Reset的Hard選項: l 目前最新版本(HEAD)是第14版,我們選擇回滾到第12版, l 我們選擇回滾到第12版,所以我們在第12版點右鍵選擇Reset Hard。l 使用Hard選項會將在第13版到第14版的變更全部
18、消除,所以會跳出此訊息詢問您是否要以第12版來覆蓋第13版到第14版的變更,也就是說第13版到第14版的變更完全都不會保留。l 按下Yes按鈕后,您會看到History的第14版、第13版不見了,而目前的HEAD是第12版。l 而在Package Explorer的所有文件圖示依然是l 表示第14版到第13版的變更都沒有保留,因此所有文件都沒有變更。文件回滾在Package Explorer的項目上或是在History的最新版本(HEAD)上使用Reset指令就可以將已變更的文件回滾,而此時使用的Reset選項只有Mixed、Hard有作用,而Soft選項不會有作用。 Ø Mixed
19、:可以將已加入Stanging Area的文件取消,并保留變更。 Ø Hard:不保留文件變更直接回滾文件。接下來是使用Reset來回滾文件的操作方式: l 假設(shè)目前的HelloWorld.java文件內(nèi)容如下:l 我們將文件內(nèi)容改為如下:l 并使用Add選項,將文件加到準(zhǔn)備區(qū),則您會看到在HelloWorld.java文件前的圖示為,表示此文件有修改且已加到Stanging Area中。l 我們可以在項目點右鍵選擇Team Reset.。l 選擇Mixed選項,按下Reset按鈕。l 或是在History的最新版本(HEAD)點右鍵選擇Reset Mixed。l 則在Package
20、 Explorer的HelloWorld.java文件的圖示變?yōu)?,表示此文件有修改但尚未加到Stanging Area中。l 如果我們使用Hard選項,可以在項目點右鍵選擇Team Reset.,選擇Hard選項,按下Reset按鈕。l 或是在History的最新版本(HEAD)點右鍵選擇Reset Hard。l 使用Hard選項會將所有文件的變更全部消除,所以會跳出此訊息詢問您是否要以最新版本來覆蓋所有的變更,也就是說所有文件的變更完全都不會保留。l 按下Yes后,在Package Explorer的所有文件圖示變?yōu)?,表示已將所有的變更都消除,因此目前所有文件都沒有變更?;貪L到已push版本
21、的解決方式在前面介紹回滾變更的部分,我們有提到:如果您回滾到已push的版本,然后再新增變更之后,使用push則會失敗, 這是因為用戶端版本庫的版本樹已經(jīng)與遠端版本庫的版本樹不同步了. 和解決沖突一樣, 你必須使用Pull來與遠端版本庫做一次同步, 合并或是解決沖突后才能再重新Push。10.分支和合并創(chuàng)建分支在EGit中建立分支的方式有3種: Ø 在History視窗上建立分支 :Ø 在版本庫瀏覽視窗建立分支 :Ø 在項目上建立分支:下面分別介紹這三種方法1) 在History視窗上建立分支 :l 在HelloJava項目點右鍵選擇Team Show in Hi
22、story。l 在Eclipse下方顯示History視窗,在此視窗可以看到提交的歷史訊息、文件變更的內(nèi)容、變更文件清單。l 在History視窗上的master點右鍵,選擇Create Branch.。2) 在版本庫瀏覽視窗建立分支 :l Team Show in Repositories View。l 顯示內(nèi)容如下:l 在Branches點右鍵選擇Create Branch.。3) 在項目上建立分支:l 在HelloJava項目點右鍵選擇Team Branchl 在彈出的對話框中輸入分支名分支改名l Team Show in Repositories Viewl 展開BranchesLoc
23、al,可以看到目前的所有分支l 選中要改名的分支,右鍵Rename Branchl 顯示如下:l 輸入名稱即可刪除分支l Team Show in Repositories Viewl 展開BranchesLocal,可以看到目前的所有分支l 選中要刪除的分支,右鍵Delete Branch合并分支先切換分支到目的分支,如要將red分支的內(nèi)容合并到master分支l 先將red分支的變更add,然后commitl 切換到目的分支master分支l 在當(dāng)前的項目點右鍵選擇Team Branchl 選擇要合并的目的分支master按下Checkout按鈕。l 選擇將red分支合并到master分支
24、l 在當(dāng)前項目點右鍵選擇Team Merge.。 l 選擇red分支,點Merge備注:² 切換分支時,要注意您目前的分支的變更已經(jīng)已加到Staging Area且已經(jīng)commit² 進行分支的合并時,要確保兩個分支的變更都已經(jīng)已加到Staging Area且已經(jīng)commit² 分支的project名稱必須完全一樣分支的挑選合并功能如要將master分支feature 1的修改內(nèi)容合并到gzx分支l 切換到目的分支gzx分支l 在當(dāng)前的項目點右鍵選擇Team Show History注意要選擇,即Show all branchesl 選擇feature 1右鍵選c
25、herry-pickl 則會自動把master的feature 1的 commit合并到當(dāng)前的GZX分支中備注:² 分支的挑選合并的是以一次commit為單位的² 進行cherry-pick的時候,有時候會出現(xiàn)沖突,這個時候就需要解決掉沖突,然后進行add,之后再進行commit即可推送本地新的分支到遠程倉庫l 選中當(dāng)前的project,右鍵-Team-Remote-Pushl 選擇要推送的本地分支,如redl 點l 然后點Nextl 點Finish,可以看到推送的結(jié)果l 點OK,推送本地分支到遠程完成解決分支推送沖突的流程如果A修改了某一個分支,PUSH成功了B也修改了該
26、分支,進行PUSH無法成功,有沖突產(chǎn)生一般的做法是:B進行PULL,然后解決沖突,之后add、commit,push還有一種情況:B進行PULL,顯示無法解決沖突,那做法如下:1、先fecth from upstream(將遠程分支的修改取過來)2、從要獲取的遠程分支,新建一個本地分支3、進行分支合并操作,當(dāng)前分支是新分支,點merge,選擇舊的分支4、如有沖突,則解決沖突,如沒有,則能合并成功5、合并成功的內(nèi)容先保存,然后add、commit,push注意:push的時候,要選好對應(yīng)的分支,從哪個取下來的,就PUSH到哪個上面,不能新建分支名11.標(biāo)簽功能從Package Explorer建
27、立標(biāo)簽(Tag)l 選中當(dāng)前的項目,右鍵-Team-Advanced-tagl 顯示出建立標(biāo)簽的頁面,如下:l 輸入Tag名,選擇需要打標(biāo)簽的版本l 點OK,打標(biāo)簽成功從History視窗建立標(biāo)簽(Tag)l 選中當(dāng)前的項目,右鍵-Team-Show In Historyl 選中需要打標(biāo)簽的版本,右鍵-Create Tagl 顯示如下:l 輸入標(biāo)簽名和標(biāo)簽說明l 點OK,打標(biāo)簽成功改變標(biāo)簽(Tag)的位置l 先看看當(dāng)前的標(biāo)簽情況l 假如我們想移動標(biāo)簽的位置,如移動標(biāo)簽1.0.0的位置,具體操作如下:l 可以在當(dāng)前project上點右鍵選擇TeamAdvancedTag.或是在目標(biāo)版本上右鍵選擇
28、Create Tag.l 選擇1.0.0,勾選Force replace existing tag選項l 點OK,則標(biāo)簽1.0.0的位置已經(jīng)被成功移動備注:在目前的EGit并沒有支援刪除標(biāo)簽的功能,如果您想刪除標(biāo)簽,則請到您的Git版本庫路徑下使用下列指令來刪除標(biāo)簽: git tag -d tag_name12git merge vs git cherry-pick(挑選合并)git merge是用來合并兩個分支的# 將b分支合并到當(dāng)前分支git merge bgit cherry-pick可以選擇某一個分支中的一個或幾個commit(s)來進行合并例如:假設(shè)我們有個穩(wěn)定版本的分支,叫v2.0
29、,另外還有個開發(fā)版本的分支v3.0。我們不能直接把兩個分支合并,這樣會導(dǎo)致穩(wěn)定版本混亂,但是又想增加一個v3.0中的功能到v2.0中,這里就可以使用cherry-pick了。# 先在v3.0中查看要合并的commit的commit idgit log# 假設(shè)是 commit f79b0b1ffe445cab6e531260743fa4e08fb4048b# 切到v2.0中g(shù)it check v2.0# 合并commitgit cherry-pick f79b0b1ffe445cab6e531260743fa4e08fb4048b13git reflog 和git log的區(qū)別,外加git ch
30、erry-pick的一種用法git reflog 可以查看所有分支的所有操作記錄(包括(包括commit和reset的操作),包括已經(jīng)被刪除的commit記錄,git log則不能察看已經(jīng)刪除了的commit記錄具體一個例子,假設(shè)有三個commit, git st:commit3: add test3.ccommit2: add test2.ccommit1: add test1.c如果執(zhí)行g(shù)it reset -hard HEAD1則 刪除了commit3,如果發(fā)現(xiàn)刪除錯誤了,需要恢復(fù)commit3,這個時候就要使用git reflog HEAD0: HEAD1: updating
31、HEAD63ee781 HEAD1: commit: test3:q紅色加粗的即是被刪除了的 commit3,運行g(shù)it log則沒有這一行記錄可以使用git reset -hard 63ee781將紅色記錄刪除,則恢復(fù)了cmmit3,運行g(shù)it log后可以看到:commit3: add test3.ccommit2: add test2.ccommit1: add test1.c這里也可以使用另外一種方法來實現(xiàn):git cherry-pick 63ee78114、EGIT的常用的幾個命令查看某一個人的所有修改歷史 1) 使用EGIT:選中project, 右鍵,選擇show history
32、,在彈出的界面中可以在Find框輸入要查找的任何信息,如用戶名,即可以查找到該用戶所有的修改信息2) 使用TortoiseGit:選中project, 右鍵,選擇TortoiseGit, 選擇Show log;可以輸入時間段和人名進行搜索3) 使用GIT命令: 查看某個作者的提交歷史: $ git log -author=wangl其他:-since, -after 僅顯示指定時間之后的提交。-until, -before 僅顯示指定時間之前的提交。例如:$ git log -author=gitster -since="2008-10-01" -before="2008-11-01" -no-merges - t/查看一個文檔的所有修改歷史1) 使用EGIT:選中這個文件,右鍵,選擇show history2) 使用TortoiseGit: 選中這個文件,右鍵,選擇TortoiseGit, 選擇Show log;3) 使用GIT命令: git log
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年新型鋁基軸瓦材料項目建議書
- 2024消防工程施工專業(yè)分包合同
- 燒堿生產(chǎn)工初中高級工理論試題專項測試卷
- 職業(yè)健康與防治考試復(fù)習(xí)試題附答案
- 2024年貴金屬釬、焊料合作協(xié)議書
- 光伏發(fā)電合同(2024年版)
- 樂器教育服務(wù)居間合同
- 房屋升級改造合同模板(2024版)
- 公司用人勞務(wù)協(xié)議書(2024版)
- 2023年錫林郭勒烏拉蓋管理區(qū)招聘事業(yè)編制醫(yī)療衛(wèi)生專業(yè)技術(shù)人員筆試真題
- 網(wǎng)球教練求職簡歷模板免費下載
- 個人喜好調(diào)查問卷
- 引發(fā)劑I分解(課堂PPT)
- 機電工程預(yù)留預(yù)埋質(zhì)量檢查表
- 設(shè)備對中技術(shù)PPT課件
- 分析工具(世紀(jì)大橋標(biāo)準(zhǔn)答案)
- 監(jiān)理取費標(biāo)準(zhǔn)670號文
- YS-T282-2000_鋁中間合金錠
- 第2章推銷自己PPT課件
- 學(xué)前教育-小班幼兒規(guī)則意識養(yǎng)成的現(xiàn)狀、問題及對策研究
- 一年級上學(xué)期看圖補充音節(jié)(總4頁)
評論
0/150
提交評論