工作區(working directory)
就是你在電腦裡能看到的目錄
版本庫(repository)
工作區有乙個隱藏目錄.git
,這個不算工作區,而是git的版本庫。
git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有git為我們自動建立的第乙個分支master
,以及指向master
的乙個指標叫head。
把檔案往git版本庫里新增的時候,是分兩步執行的:
第一步是用git add
把檔案新增進去,實際上就是把檔案修改新增到暫存區;
第二步是用git commit
提交更改,實際上就是把暫存區的所有內容提交到當前分支。
因為我們建立git版本庫時,git自動為我們建立了唯一乙個master
分支,所以,現在,git commit
就是往master
分支上提交更改。
$ git status
檢視工作區、暫存區狀態
執行 git diff 來檢視執行 git status 的結果的詳細資訊
$ git diff
$ git log
git log
可以檢視提交歷史,以便確定要回退到哪個版本
git reflog
檢視命令歷史,以便確定要回到未來的哪個版本
如果嫌輸出資訊太多,可以試試加上--pretty=oneline
引數:git log --pretty=oneline 或 git log --oneline
多屏顯示控制方式:空格向下翻頁 b 向上翻頁 q 退出
$ git reset --hard
在git中,用head
表示當前版本,上乙個版本就是head^
,上上乙個版本就是head^^
,往上100個版本可以寫成head~100
git reset head
可以把暫存區的修改撤銷掉(unstage),重新放回工作區
reset命令的三個引數
--soft 引數 僅在本地庫移動指標
--mixed 引數 在本地庫移動指標 重置暫存區
--hard 引數 在本地庫移動指標 重置暫存區 重置工作區
$ git checkout -- file
命令git checkout -- file
意思就是,把file
檔案在工作區的修改全部撤銷,這裡有兩種情況:
一種是file
自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是file
已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次git commit
或git add
時的狀態。
--
很重要,沒有--
,就變成了「切換到另乙個分支」的命令
$ git rm
命令git rm
用於刪除乙個檔案。如果乙個檔案已經被提交到版本庫,那麼你永遠不用擔心誤刪,但是要小心,你只能恢復檔案到最新版本,你會丟失最近一次提交後你修改的內容。
申明:本文只是學習過程中的乙個筆記。絕大部分內容**於網路。主要有:廖雪峰的官方**、菜鳥教程、尚矽谷官網,在此特別感謝。**引用,請註明出處。尊重別人的勞動成果是一種美德。
git學習筆記 實操
git版本回退 git log 該命令顯示從最近到最遠的提交日誌。每一次提交都有對應的 commit id 和 commit message git log pretty oneline 只顯示commit id 和commit message git config global user.name...
git學習筆記 git入門 git基本用法
git可以有效的處理專案版本管理,掌握git是很重要的,以下是我在學習的過程和一些體會 使用mkdir建立乙個專案目錄 進入目錄,建立git倉庫 輸出如上所示,使用 ls al 命令可以看到乙個名為 git 的目錄在該目錄下建立,這就表示乙個倉庫成功被初始化了 可以使用touch命令建立檔案,用vi...
Git學習筆記之Git的簡介(一)
git 是乙個開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的專案。git 是 linus torvalds 為了幫助管理 linux 核心開發而開發的乙個開放原始碼的版本控制軟體。git 與常用的版本控制工具 cvs,subversion 等不同,它採用了分布式版本庫的方式,不必伺服器端...