Git是什么?
Git是目前世界上最先進的分布式版本控制系統。
劃重點
1、Git跟蹤并管理的是修改,而非文件
2、commit只會提交暫存區里的內容,而工作區的修改內容不會被提交。
3、SSH支持的原生Git協議速度最快(比https速度快)
操作指令
- 基礎
- 新建Git倉庫
git init
- 添加Git管理的指定文件或文件夾
git add name.type
- 添加git倉庫同級的所有文件給git倉庫
git add .
- 提交給本地Git倉庫
git commit -m"修改的內容"
- 查看提交的版本
- 查看提交的版本(詳細)
git log
- 查看提交的版本(摘要)
git log --pretty=oneline
- 查看倉庫當前的狀態
git status
- 查看某個文件修改的內容
git diff name.type
- 查看某個文件在工作區和版本庫里面最新版本的區別
git diff HEAD -- name.type
- 撤銷修改
- 丟棄工作區的修改
git checkout -- name.type
- 丟棄暫存區的修改(放回到工作區,git reset :退回版本,HEAD:最新版本)
git reset HEAD name.type
- 如果commit后的當前版本想丟棄,就回到上個版本就好了。指令見
時光機穿梭
-->退回到上個版本
- 刪除工作區的文件
git rm name.type
- 時光機穿梭
- 退回到上個版本
git reset --hard HEAD^
- 從當前退回到第n個版本
git reset --hard HEAD-n
- 回到指定commit id(退回過去之后,可以通過該方式再回到未來,commit id 寫前幾位也是可以的,位數寫的少了容易找錯,越詳細越不會搞錯)
git reset --hard 5e41bb86db9e1facbe42fb0bd6336d1e6c4f06d7
- 打印執行過的Git指令歷史(假設回到了過去,然后終端窗口也關閉了,這個時候可通過這個命令找到會退回前的commit id)
git reflog
原理圖
- git add & commit
- git add
將工作區的內容添加至暫存區 -
git commit
將暫存區的內容添加至主分支
git add & commit 原理圖
- git add
相關名詞
- 工作區
工作區在電腦里能看到的目錄。Git工作區
指的是包含.git倉庫的那個文件夾。(例:fileA是一個文件夾,fileB是fileA里的一個文件夾,fileB里有個.git的倉庫,那么fileB就是Git工作區,注意,fileA可不是Git工作區。哪個文件夾里有.git倉庫,就是Git工作區
) - .git內的文件
- index 又稱為stage Git名詞為
暫存區
- master
主分支
由Git倉庫主動創建 - HEAD
指針
用來標識當前所在的分支 - config
倉庫配置文件
集合倉庫的配置
- index 又稱為stage Git名詞為