git init //新建乙個空倉庫,倉庫就是當前目錄
git init [project-name] //在當前目錄新建乙個peoject-name倉庫,相當於在裡面新建了乙個資料夾
git log //顯示操作歷史記錄
git log --pretty=oneline //用一行來顯示操作歷史記錄
git reset --hard head^ //回退到上乙個版本
git reset --hard 版本號 //回退到指定版本
回退的關鍵是要找到版本號,如果一不小心關掉了電腦,通過git log命令無法列印出之前的操作記錄,但是可以通過
git reflog //顯示出操作記錄,從中找到版本號,然後再回退。
如果回退到了之前較舊的版本,又想回到較新的版本,也仍然可以用git reset --hard 版本號 實現,
所有版本穿梭的關鍵就是準備定位版本號。
工作區就是電腦裡能看到的目錄,工作區里有乙個隱藏資料夾.git,這是git的版本庫。
git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有git為我們自動建立的第乙個分支master,以及指向master的乙個指標叫head。
我們把檔案往git版本庫里新增的時候,是分兩步執行的:
第一步是用git add把檔案新增進去,實際上就是把檔案修改新增到暫存區(stage);
第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。
當add完以後,再通過git commit 一次性將所有修改提交到分支。這時再git status就會顯示nothing to commit (working directory clean) 工作區乾淨。
核心:所有的修改在commit之前,一定要add,不然就不會提交到分支上
第一次修改 -> 第二次修改 ->git add -> git commit
第一次修改 -> git add -> 第二次修改 -> git add -> git commit //這兩種方式,最終得到的效果是一樣的
通常來說,在git commit以前一般都要git,add,否則我們想要commit的內容實際上並沒有被commit上去,但是git提供了乙個省略git add的辦法,那就是git commit -a -m '描述本次commit的內容' ,可以忽略add 直接commit ,-m 引數一般在任何情況下都不省略,因為提交描述是我們和他人合作的關鍵
git checkout -- filename
命令git checkout -- readme.txt意思就是,把readme.txt檔案在工作區的修改全部撤銷,這裡有兩種情況:
一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是readme.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次git commit或git add時的狀態。
場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。
場景2:當你不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset head file,就回到了場景1,第二步按場景1操作。
如果你刪除了乙個檔案1.txt
$ git status //git知道檔案已經被你刪除了,並會提示你,提供了以下兩種選擇
$ git checkout -- 1.txt //如果你是誤刪,通過這條指令可以將檔案恢復到工作區
$ rm 1.txt //如果你確定要刪除,通過這條指令可以將檔案從git版本庫中刪除
git checkout其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以「一鍵還原」。
命令git rm用於刪除乙個檔案。如果乙個檔案已經被提交到版本庫,那麼你永遠不用擔心誤刪,但是要小心,你只能恢復檔案到最新版本,你會丟失最近一次提交後你修改的內容。
git 命令列學習筆記
1.安裝完git配置使用者名稱和郵箱 git config global user.name john doe git config global user.email johndoe example.com 2.git config list 檢視所有配置資訊 初始化倉庫 git init 3.檔...
git命令列學習小結
git reset 回退版本命令 上乙個版本就是head 上上乙個版本就是head 當然往上100個版本寫100個 比較容易數不過來,所以寫成head 100 git reset命令既可以回退版本,也可以把暫存區的修改回退到工作區。當我們用head時,表示最新的版本。git resethead gi...
git 命令列 和 cmd命令列
設定全域性使用者名稱 git config global user.name 區域性把global換成local 檢視全域性 git config global list 檢視git的狀態 git status 初始化 git into 名字 新增乙個檔案 git add readme.txt 刪除...