git基礎(chǔ)

一、身份配置

身份配置的意義在于記錄開發(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í)際操作:

image.png

二、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
image.png

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è)命令

image.png

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ò)

image.png

需要用git命令添加

image.png

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

比如不想讓git管理文件1.txt


image.png

修改前:


image.png

在.gitignore添加1.txt后:


image.png

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

在.gitignore添加.gitignore后:


image.png

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


image.png

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ū)
image.png

注意:
(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è)空格 
image.png

注意:將文件從暫存區(qū)取出,并替換工作區(qū)文件

(2)一個(gè)文件已經(jīng)添加到暫存區(qū),并且該文件沒有被修改過,可以從暫存區(qū)取出

git reset HEAD 文件路徑/文件名
image.png

注意:只是將文件從暫存區(qū)中取出,但是并不用

6、將暫存區(qū)的內(nèi)容放入本地主倉庫(提交文件)

將暫存區(qū)被標(biāo)記成綠色的文件,全部提交到本地倉庫存儲(chǔ)
每一次提交到本地倉庫都必須輸入備注信息

(1)git commit -m 備注的信息

git commit -m 備注的信息
image.png

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

image.png

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

image.png

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


image.png

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


image.png

7、刪除本地倉庫中保存的文件

(1)第一種方法:

git rm xxx
git commit -m

(2)第二種方法:

rm xxx
git add xxx
git commit -m

8、查看日志記錄

(1)查看提交日志詳細(xì)信息

git log
image.png

(2)查看提交日志簡略顯示

git log --oneline
image.png

(3)查看歷史記錄

這些歷史記錄包括:每一次提交的信息;以及每一次版本回滾的操作

git reflog
image.png

9、版本回退(時(shí)光倒流)

通過查看提交歷史中的某個(gè)版本的commit 的唯一標(biāo)記值可以回到之前某一次的提交
將文件從本地主倉庫中恢復(fù),取出來的文件替換工作區(qū)的文件

(1)回到以前的“第2次修改#”版本

git reset --hard 提交的版本號(hào)(可以只寫前幾位)
image.png

操作前:


image.png

操作后:


image.png

(2)再次回到“第4次更新”版本

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

image.png

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

image.png

10、比較文件差異

(1) git diff

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

(2) git diff --cached

將暫存區(qū)的文件和工作區(qū)的文件進(jìn)行對(duì)比

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容