工作區--》暫存區--》本地倉庫--》遠端git倉庫
(個人理解,不對之處望指正)
Reset操作
假設我在工作區中 建立了一個新的檔案 newFile.text,並提交到了本地倉庫中
操作方式1:(分支最新提交記錄)
選擇項目 滑鼠右鍵--team--reset--Remote Tracking 選擇遠端git倉庫 分支的最新版本
--Reset type下有三個選項
Soft:工作區檔案的修改不變,提交記錄被重設(檔案存在於暫存區中;當提交記錄commit寫錯時,可以選擇這個方式來重新填寫commit記錄);newFile.text檔案的狀態是 加號 +
Mixed:工作區檔案的修改不變,提交記錄被重設(檔案存在於工作區,需要重新提交;當提交記錄commit中有幾個檔案並不想上傳,可以選擇這個方式,來重新選擇上傳的檔案);newFile.text檔案的狀態是 問號 。
Hard:工作區檔案的修改被刪除,使用分支最新版本(遠端git伺服器裡面的最新代碼,覆蓋本地的代碼);newFile.text被刪除了
--點擊Reset執行 操作方式2:(當前分支的任意提交記錄)
項目右鍵--team--show in history --選擇commit記錄 滑鼠右鍵--Reset
效果同方式1
Soft、Mixed 操作都會使得head記錄改變(head代表當前工作空間所指向commit的記錄)
Hard 如果檔案只在工作區(標誌為問號),則不會發生改變,反之則被覆寫
Revert commit操作
選擇項目--team--Show in History--選擇版本右擊--Revert commit--提交
撤銷操作會自動產生一條提交記錄
以下為個人理解:
Reset --Hard(謹慎使用):暫存區、本地倉庫的修改,會被刪除commit記錄、檔案;
已經提交到遠端git倉庫的,會提示你pull最新的代碼,如果有提交修改記錄到本地倉庫,自動先pull代碼再合并)
(比如我重設到某個版本,進行代碼測試,看看之前的版本代碼的效果)
Rever commit:操作的記錄會儲存,自動產生commit記錄,撤銷是針對操作commit記錄生效(比如我剛剛提交的一份代碼有問題,要刪除掉剛提交的代碼)
舉個例子:
假如有提交記錄是 從1遞增到5:1,2,3,4,5
操作第3條記錄
reset --Hard 的效果是:1,2,3 (3後面的記錄沒了)
revert commit的效果是:1,2,4,5(3這一條記錄沒了)
清除本地git修改
項目右鍵--team--Advanced--clean...(清除分支的修改)
項目右鍵--team--stashes--stash Changes:儲存本次修改(僅限於未提交)
項目右鍵--team--show in history 會看到完整的提交記錄
項目右鍵--team--show in history -- modify :可以修改注釋
eclipse,git控制項匯入Maven項目:import--Git--Projects from Git--Existing Local repository(匯入一個存在的本地庫)--Next 選擇項目--nex--三個選擇:
Import existing Eclipse Projects(會自動匯入成項目,一般選這個),
Import using the New Project Wizard(使用項目嚮導可重新設定項目),
Import as general project(類似於檔案夾層次,可以手動選擇轉換成項目)