1. 更方便的存儲版本git
2. 恢復以前的版本github
3. 更方便的進行對比正則表達式
4. 協同合做緩存
沒有進行配置會出現警示信息,經過命令配置bash
git config --global user.name "cnhkzyy" #配置用戶名 git config --global user.email "1069966476@qq.com" #配置聯繫郵箱
查詢最小用戶配置分佈式
git config --global --list
1. 已有目錄的時候測試
cd file_folder
git init
(1) 已有一個目錄,測試報告fetch
(2) 進入測試報告目錄,點擊"Git Bash Here"url
(3) 執行"git init",能夠看到測試報告目錄下出現了一個.git目錄spa
這裏面存儲了版本控制信息
2. 沒有目錄的時候
cd file_folder
git init projectsname #從新命名一個新的目錄
在 測試git 目錄下,執行git init demo,會生成一個demo的新目錄,demo目錄下的.git目錄,保存着版本信息,demo下沒有項目內容,咱們能夠添加項目內容
git config --local local只對倉庫有效。缺省等同於local
git config --global global對登陸用戶全部倉庫有效
git config --system system對系統的全部用戶有效
優先級:local > global > system
git add file #執行完會把文件存到臨時空間
git add . #添加該目錄下的全部文件
git commit -m "版本信息" #正式提交到git倉庫
(1) 在demo目錄下新建一個測試報告.txt文件,文件內容爲"test"
(2) 把文件添加到暫存區
(3) 提交
(4) 查看提交
(1) 在本地新建一個readme.txt文件,文件內容爲"歡迎來到git世界"
git status
git status -s 能夠用簡短的信息進行闡述
git status --short
(1) 往readme.txt裏更新一段文字:"git是一個分佈式的版本控制系統"
(2) git status,能夠看到文件被更新,但沒有被提交,readme.txt爲紅色
(3) 使用git add readme.txt提交到暫存區後,再次使用git status查看,發現,readme.txt變爲綠色
(4) 使用git status -s 查看更簡短的信息,發現只有一個綠色的M,M表示修改已被提交到暫存區
(5) 新添加一個文件,new_file.txt,使用 git status -s 查看,發現前面有個紅色的??,??表示新添加的文件,尚未提交到暫存區
(6) 使用git add new_file.txt,將new_file.txt提交到暫存區,而後使用 git status -s 命令查看,發現前面有個綠色的A,A表示新添加的文件
(7) 正式提交到倉庫,git commit -m "註釋",這裏我打的有點問題,一不當心跟成了文件名。而後使用git status -s 查看,發現沒有內容了
git log 最簡單的使用
git log --pretty=oneline 只顯示一行
git log -p 顯示版本之間的差別
git log -5 顯示最近5個版本
git log -5 -p 顯示最近5個版本及他們之間的差別
git log --stat 查看大致的統計信息
(1) git log查看最新三次提交的日誌(時間順序倒序)
(2) git log --pretty=oneline,顯示簡短的提交信息
(3) git log -p 查看版本之間的差別
(4) git log -2 查看最近提交的兩個版本
(5) git log -2 -p
(6) git log --stat 查看大致的統計信息
# 註釋
glob 模式匹配,比較相似正則表達式匹配
* 星號,匹配0或者任意字符
[abc] 任何一個在括號內的字符
? 匹配一個任意字符
/ 結束指定目錄
! 取反
(1) 藉助vscode,新建下面幾個文件和目錄
(2) 編輯.gitignore文件,寫入如下內容
(3) 全部更改暫存,而後提交,發現demo.pyc也提交了,有點詭異
git diff 在未提交到緩存區以前,比對版本之間的差別
git diff 老版本 新版本
git diff --staged 已經添加到暫存區的差別
git commit -a -m "註釋" 添加並提交修改到git倉庫
(1) 在未修改文件以前,git diff 發現無內容,在demo.py中新增 import time,而後執行 git diff,發現有內容了
(2) 在使用了 git add . 命令暫存以後,再使用 git diff,發現沒內容了
(3) 修改demo.py,新增內容"time.sleep(2)",使用git commit -a -m "time sleep"能夠一步到位,將修改內容添加到git倉庫
(1) git diff 老版本commit哈希值 新版本commit哈希值 ,哈希值能夠是一部分。若是想對比老版本和新版本的差別,git diff 新版本 老版本便可
(2) 在demo.py文件中加入一行 print("Hello World!"),而後git add . ,這時候使用 git diff --staged,發現了提交到暫存區後的差別
(3) 使用git commit 提交到git 倉庫後,發現git diff --staged沒有內容
git restore --file 暫存以前:不將文件添加到暫存,老的git版本是git checkout -- <file>
git restore --staged <file> 暫存以後:刪除文件的暫存,老的git版本是git reset HEAD <file>
git rm file 添加到git倉庫以後:刪除文件,本地和版本控制系統都刪了
git rm --cached file 添加到git倉庫以後:刪除文件,版本控制系統刪了,本地還存在,若是想從新提交可使用 git add和git commit
git rm *.pyc
(1) 在demp.py中新增一行代碼,執行 git status
(2) 執行git checkout -- demo.py後發現那一行消失了
(3) 從新加入一行print("Hey"),提交到暫存區,再從暫存區刪除,最後使用git status查看狀態
(4) git rm 測試報告.txt,發現刪除了本地沒有了,git rm --cached new_file.txt,發現刪除了本地仍然存在
(5) git rm .*pyc,刪除全部的.pyc文件
(6) 刪除後要git commit 提交一下
git mv 老文件名 新文件名
等價:
mv 老文件名 新文件名
git rm 老文件名
git add 新文件名
(1) 先建立一個doc目錄,將readme.txt移動到doc下,並更名字爲read.txt,最後提交到git倉庫
(2) 將demo.py移動到doc/下,新的路徑爲doc/demo.py
刪除舊的demo.py
將新的doc/demo.py添加到暫存區
提交到git倉庫
git commit --amend 有時候提交過一次記錄只有,又修改了一次,僅僅是改動一些較少的內容,可使用git commit --amend
(1) 新增了一條代碼,這時候使用git commit -amend -a提交到git倉庫
(2) 可使用git diff 老版本 新版本 查看新老版本的差別
放在生產環境的版本,須要迭代,通常須要打標籤
git tag -a tagname -m "提交信息" 附錄標籤
git tag tagname 輕量標籤
git show tagname
git tag 顯示全部的標籤
git tag -a tagname 補錄標籤
git tag -l "v1.8*" 匹配全部以v1.8開頭的標籤
git tag -d tagname 刪除某個標籤
(1) 打附錄標籤
(2) 查看標籤
(3) 打輕量標籤
(4) 查看輕量標籤
(1) 顯示全部的標籤
(2) 匹配全部以v開頭的標籤
(3) 使用git log,查看全部提交記錄,想把Hello World這個提交打個標籤,使用git tag -a v0.0.0 ed3350
(4) 刪除某一標籤qingliangv1
git checkout 版本號
git reflog 查看全部的日誌
git checkout 標籤名
(1) git checkout 版本號 檢出到某一版本,此時使用git log,只能查看當前版本以後的記錄
(2) 要想查看全部記錄(包括以前的)使用 git reflog
(3) 根據標籤名檢出
git config --global alias.st 'status' 給status起別名st
git config --global alias.last 'log -1 HEAD' 給查案最後一行記錄起別名 git last
git config --global alias.logol 'log --pretty=oneline' 給一行顯示全部記錄起別名git logol (未生效)
(1) 給git status設置別名 git st
(2) 給查看最後一條記錄,起別名git last
git remote 查看遠程地址
git remote -v
git remote add 名稱 遠程url
(1) 添加遠程地址
git remote show 遠程名字
git push 遠程名字 master(分支名稱)
git fetch 遠程名字
git pull 遠程名字
(1) git remote show git_study
(2) git push 倉庫名 分支名
(3) 在github項目下建立一個新的文件test_fetch,git fetch 遠程名字,git fetcn經過用在多個分支的狀況,它會手動進行分支的合併,在只有一個分支的狀況下,建議使用git pull,git pull會自動合併
剛剛新的文件沒有顯示在本地,是由於沒有合併
本地也有了
git remote rename 舊名字 新名字
git remote rm 遠程名字
(1) 修改遠程名字爲study
(2) 刪除遠程倉庫
(3) 從新添加遠程倉庫
git clone url
(1) 在本地新建一個new_project的目錄,在裏面打開git bash,而後使用git clone 項目url,能夠克隆遠程項目到本地