git版本控制入門

一. 爲何要用版本控制系統

1. 更方便的存儲版本git

2. 恢復以前的版本github

3. 更方便的進行對比正則表達式

4. 協同合做緩存

二. git.exe安裝

三. 簡單配置

沒有進行配置會出現警示信息,經過命令配置bash

git config --global user.name "cnhkzyy"               #配置用戶名
git config --global user.email "1069966476@qq.com"    #配置聯繫郵箱

查詢最小用戶配置分佈式

git config --global --list

 

四. 創建git倉庫

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配置優先級

git config --local     local只對倉庫有效。缺省等同於local

git config --global   global對登陸用戶全部倉庫有效

git config --system  system對系統的全部用戶有效

 

優先級:local > global > system

六. git版本提交

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歷史版本查看

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 查看大致的統計信息

九. 忽略文件gitignore

# 註釋

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沒有內容

十一. rm刪除文件

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 提交一下

 

 

十二. mv移動文件

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

 

十五. checkout 檢出

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

 

十七. github的使用

十八. git遠程地址

git remote 查看遠程地址

git remote -v

git remote add 名稱  遠程url

(1) 添加遠程地址

 

十九. 遠程push和pull

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,能夠克隆遠程項目到本地

相關文章
相關標籤/搜索