一、身份配置
身份配置的意義在于記錄開發(fā)者信息,以便在版本控制記錄開發(fā)者的操作行為。
1、查看身份
// 查看昵稱
git config user.name
// 查看郵箱地址
git config user.email
2、設(shè)置身份
// 設(shè)置當(dāng)前倉庫
git config user.name "昵稱"
git config user.email "郵箱地址"
// 設(shè)置本機(jī)所有倉庫
git config --global user.name "昵稱"
git config --global user.email "郵箱地址"
其中--global的作用是配置當(dāng)前用戶所有倉庫,這樣的情況下配置1次,它會(huì)全局共享,之后在其他倉庫使用時(shí)不需要在配置了。
3、修改身份
// 修改昵稱
git config --global --replace-all user.name "昵稱"
// 修改郵箱地址
git config --global --replace-all user.email "郵箱地址"
實(shí)際操作:

二、git本地倉庫操作
1、初始化倉庫
想要利用git進(jìn)行版本控制,需要將現(xiàn)有項(xiàng)目初始化為一個(gè)倉庫,或者將一個(gè)已有的使用git進(jìn)行版本控制的倉庫克隆到本地。
git init會(huì)在當(dāng)前項(xiàng)目目錄中創(chuàng)建一個(gè)名為.git的隱藏目錄,這個(gè)目錄包含了暫存區(qū)和倉庫兩個(gè)區(qū)域,有了這個(gè)隱藏目錄就可以使用git來管理項(xiàng)目了,通過ls -al可以查看。
git init

2、查看文件狀態(tài)
初始化倉庫后便可以進(jìn)行開發(fā)了,進(jìn)入到剛剛創(chuàng)建好并初始為倉庫的目錄,添加我們開發(fā)需要的文件
通過git status可以檢測當(dāng)前倉庫文件的狀態(tài),
注意:
會(huì)忽略掉空目錄
如果當(dāng)前目錄下面的指定文件夾下面也有一些未追蹤的文件,也會(huì)提示該文件夾有相關(guān)內(nèi)容
Untracked files:以下都是未追蹤的文件
Changes to be committed:以下都是位于暫存區(qū)的文件
modified:表示這是一個(gè)已修改的文件
Git中文件的幾種狀態(tài):
(1)未標(biāo)記(未追蹤)
在git管理的目錄中,創(chuàng)建文件、修改文件、刪除文件這些操作都不會(huì)被記錄,要想文件被記錄必須通過某個(gè)命令

Untracked files:里面都是未追蹤的文件
(2)已提交
該文件已經(jīng)被git管理起來,接下來對(duì)該文件進(jìn)行相關(guān)操作就可以實(shí)現(xiàn)版本控制的效果
(3)已修改
某個(gè)文件已經(jīng)被提交到暫存區(qū)過了,如果對(duì)文件進(jìn)行修改,該文件的狀態(tài)就是已修改
image.png
modified:表示這是一個(gè)已修改的文件
(4)已暫存
某個(gè)文件已經(jīng)被提交到暫存區(qū)了,并且沒有修改,修改了就是已修改狀態(tài)
3、設(shè)置文件不讓git管理
(1)在.git所在目錄(和.git平級(jí),而不是在.git里面)添加一個(gè)文件,叫 .gitignore
無法在文件夾中直接添加,會(huì)報(bào)錯(cuò)

需要用git命令添加

(2)打開.gitignore進(jìn)行編輯,一行一行的添加不需要git管理的文件
比如不想讓git管理文件1.txt

修改前:

在.gitignore添加1.txt后:

因?yàn)?gitignore是為了1.txt不讓git管理而添加的,也不想讓git管理.gitignore,所以要加上.gitignore
在.gitignore添加.gitignore后:

在.gitignore添加如下內(nèi)容:

git不會(huì)管理1.txt、.gitignore、css文件夾下的2.txt
4、添加文件到暫存區(qū)
把已開發(fā)的部分暫存起來等待提交
git add 文件路徑/文件名
git add *
git add -A
“*”或-A代表提交本工作區(qū)內(nèi)的全部內(nèi)容
可以將一個(gè)未追蹤的文件放入暫存區(qū),也可以將一個(gè)已修改的文件放入暫存區(qū)

注意:
(1)可以表示添加文件
(2)可以表示修改文件
(3)可以表示刪除文件
綜上:git add表示把工作區(qū)內(nèi)的變化添加到暫存區(qū)
5、撤銷已經(jīng)添加到暫存區(qū)的文件
(1)一個(gè)文件已經(jīng)放入暫存區(qū),從暫存區(qū)恢復(fù)到修改前的狀態(tài)
工作區(qū)里已經(jīng)是修改的文件,希望從暫存區(qū)恢復(fù)該文件到修改前的狀態(tài)
git checkout -- 文件路徑/文件名
注意:-- 文件路徑/文件名 中間有個(gè)空格

注意:將文件從暫存區(qū)取出,并替換工作區(qū)文件
(2)一個(gè)文件已經(jīng)添加到暫存區(qū),并且該文件沒有被修改過,可以從暫存區(qū)取出
git reset HEAD 文件路徑/文件名

注意:只是將文件從暫存區(qū)中取出,但是并不用
6、將暫存區(qū)的內(nèi)容放入本地主倉庫(提交文件)
將暫存區(qū)被標(biāo)記成綠色的文件,全部提交到本地倉庫存儲(chǔ)
每一次提交到本地倉庫都必須輸入備注信息
(1)git commit -m 備注的信息
git commit -m 備注的信息

(2)git commit+vi編輯器
如果不輸入備注信息會(huì)提示一個(gè)vi編輯器,在vi編輯器中提示輸入備注信息

git commit會(huì)自動(dòng)跳轉(zhuǎn)到vi編輯器:

輸入備注信息:如“第2次修改”

按esc退出輸入狀態(tài),輸入:w保存,輸入:q退出vi編輯器,得到:

7、刪除本地倉庫中保存的文件
(1)第一種方法:
git rm xxx
git commit -m
(2)第二種方法:
rm xxx
git add xxx
git commit -m
8、查看日志記錄
(1)查看提交日志詳細(xì)信息
git log

(2)查看提交日志簡略顯示
git log --oneline

(3)查看歷史記錄
這些歷史記錄包括:每一次提交的信息;以及每一次版本回滾的操作
git reflog

9、版本回退(時(shí)光倒流)
通過查看提交歷史中的某個(gè)版本的commit 的唯一標(biāo)記值可以回到之前某一次的提交
將文件從本地主倉庫中恢復(fù),取出來的文件替換工作區(qū)的文件
(1)回到以前的“第2次修改#”版本
git reset --hard 提交的版本號(hào)(可以只寫前幾位)

操作前:

操作后:

(2)再次回到“第4次更新”版本
先通過查看日志記錄git reflog,找到“第4次更新”版本的唯一標(biāo)記號(hào)
注意:此時(shí)通過git log找不到“第4次更新”版本的唯一標(biāo)記號(hào)

再通過git reset --hard 提交的版本號(hào)回到“第4次更新”版本

10、比較文件差異
(1) git diff
先比較工作目錄和暫存區(qū)的代碼比較
如果暫存區(qū)沒有文件,則將工作區(qū)和最近一次提交的代碼進(jìn)行對(duì)比
(2) git diff --cached
將暫存區(qū)的文件和工作區(qū)的文件進(jìn)行對(duì)比
