目錄
- 一、基本操作命令
- 二、.git 目錄
- 三、版本庫(kù)的三個(gè)區(qū)域
- 一、常用命令
- 二、歷史版本回滾
- 一、倉(cāng)庫(kù)中沒(méi)有提交該文件
- 二、倉(cāng)庫(kù)中已經(jīng)提交該文件
基本操作
一、基本操作命令
- 創(chuàng)建進(jìn)入空文件夾
- 右鍵 -> 點(diǎn)擊 Git Bash Here 啟動(dòng)命令行(MAC 在當(dāng)前文件夾打開(kāi)終端)
git init
倉(cāng)庫(kù)初始化
- 創(chuàng)建一個(gè)初始化文件 index.html
git add index.html
將文件加入到暫存區(qū)
git commit -m '注釋'
提交到倉(cāng)庫(kù) m 是 message 單詞的縮寫
二、.git 目錄
- hooks 目錄包含客戶端或服務(wù)端的鉤子腳本,在特定操作下自動(dòng)執(zhí)行。
- info 包含一個(gè)全局性排除文件,可以配置文件忽略
- logs 保存日志信息
- objects 目錄存儲(chǔ)所有數(shù)據(jù)內(nèi)容,本地的版本庫(kù)存放位置
- refs 目錄存儲(chǔ)指向數(shù)據(jù)的提交對(duì)象的指針(分支)
- config 文件包含項(xiàng)目特有的配置選項(xiàng)
- description 用來(lái)顯示對(duì)倉(cāng)庫(kù)的描述信息
- HEAD 文件指示目前被檢出的分支
- index 暫存區(qū)數(shù)據(jù)
- 切記: 不要手動(dòng)去修改 .git 文件夾中的內(nèi)容*
三、版本庫(kù)的三個(gè)區(qū)域
- 工作區(qū)(代碼編輯區(qū)):代表本地開(kāi)發(fā)代碼的地方
- 暫存區(qū)(修改待提交區(qū)) :代表本地倉(cāng)庫(kù)暫時(shí)保管代碼的地址
- 倉(cāng)庫(kù)區(qū)(代碼保存區(qū)):代表代碼進(jìn)入本地版本控制
常用命令
一、常用命令
git status
版本狀態(tài)查看
紅色:說(shuō)明文件位于工作區(qū)
綠色:說(shuō)明文件位于暫存區(qū)
沒(méi)有體現(xiàn),說(shuō)明位于版本區(qū)
git add -A
添加所有新文件到暫存區(qū)(或者git add .
git add *
)
使用git restore
可以丟棄工作區(qū)的改動(dòng)
git commit -m '注釋 '
提交修改并注釋
使用git restore --staged 文件>
可以取消暫存
git diff
查看工作區(qū)與暫存區(qū)的差異(不顯示刪除或新增文件) 顯示做了哪些修改
//解讀結(jié)果
lipeihuadeMacBook-Pro% git diff
//進(jìn)行比較的是,index.html(即變動(dòng)前)index.html(即變動(dòng)后)。
diff --git a/index.html b/index.html
//表示兩個(gè)版本的git哈希值
index 16158b4..61045cd 100644
//"---"表示變動(dòng)前的版本
--- a/index.html
//"+++"表示變動(dòng)后的版本
+++ b/index.html
//代表的意思是源文件的1-2行與目標(biāo)文件的1-5行有差異,下面才是具體的差異信息;
@@ -1,2 +1,5 @@
//-紅色部分表示減少的部分,+綠色部分表示增加的部分
index.html
-no 1
+
+
+
+再次修改
//\ No newline at end of file 最后一行沒(méi)有換行
\ No newline at end of file
git diff --cached
查看暫存區(qū)與倉(cāng)庫(kù)的差異
二、歷史版本回滾
2.1查看歷史版本
git log
默認(rèn)不用任何參數(shù)的話,git log 會(huì)按提交時(shí)間列出所有的更新,最近的更新排在最上面。每次更新都有一個(gè) SHA-1 校驗(yàn)和、作者的名字 和 電子郵件地址、提交時(shí)間,最后縮進(jìn)一個(gè)段落顯示提交說(shuō)明。
git log --oneline
如果內(nèi)容偏多, 需要使用方向鍵上下滾動(dòng), 按 q
退出
git log
命令有一個(gè)選項(xiàng),可以用來(lái)更改倉(cāng)庫(kù)信息的顯示方式。該選項(xiàng)為 --oneline
.
每行顯示一個(gè) commit顯示 commit 的 SHA 的前 7 個(gè)字符顯示 commit 的消息
2.2根據(jù)版本號(hào)進(jìn)行回滾
版本回退,只是本地的。不會(huì)影響git庫(kù)中的內(nèi)容。
git reset --hard b815fd5a6ae655b521a31a9
進(jìn)行版本回退時(shí),不需要使用完整的哈希字符串,前七位即可
版本切換之前,要提交當(dāng)前的代碼狀態(tài)到倉(cāng)庫(kù)
git reflog
如果在回退以后又想再次回到之前的版本,git reflog 可以查看所有分支的所有操作記錄(包括commit和reset的操作),包括已經(jīng)被刪除的commit記錄,git log則不能察看已經(jīng)刪除了的commit記錄
2.3其他回滾(了解)
git reset --hard HEAD^ 回滾到上個(gè)版本
git reset --hard HEAD^^ 回滾到上上個(gè)版本
git reset --hard HEAD~100 回滾到100個(gè)版本之前
配置忽略文件
一、倉(cāng)庫(kù)中沒(méi)有提交該文件
項(xiàng)目中有些文件是不需要進(jìn)入版本庫(kù)中,比如編輯器的配置。Git 中需要?jiǎng)?chuàng)建一個(gè)文件 .gitignore,一般與 .gitignore 同級(jí)目錄。
# 忽略所有的 .idea 文件夾
.idea
# 忽略所有以 .test 結(jié)尾的文件
*.test
# 忽略 node_modules 文件和文件夾
/node_modules
二、倉(cāng)庫(kù)中已經(jīng)提交該文件
對(duì)于已經(jīng)加入到版本庫(kù)的文件,可以在版本庫(kù)中刪除該文件
git rm --cached .idea
git rm --cached ./css/go.css
然后在 .gitignore 中配置忽略
add 和 commit 提交即可
分支
分支是 Git 重要的功能特性之一,開(kāi)發(fā)人員可以在主開(kāi)發(fā)線的基礎(chǔ)上分離出新的開(kāi)發(fā)線。
創(chuàng)建分支
name 為分支的名稱
git branch name
查看分支
git branch
切換分支
git checkout name
合并分支
git merge name
刪除分支
git branch -d name
切換并創(chuàng)建分支
git checkout -b name
注意: 每次在切換分支前 提交一下當(dāng)前分支
沖突
當(dāng)多個(gè)分支修改同一個(gè)文件后,合并分支的時(shí)候就會(huì)產(chǎn)生沖突。沖突的解決非常簡(jiǎn)單,將內(nèi)容修改為最終想要的結(jié)果,然后繼續(xù)執(zhí)行 git add 與 git commit 就可以了。
到此這篇關(guān)于詳解git基本操作和指令的文章就介紹到這了,更多相關(guān)git基本操作和指令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Git本地倉(cāng)庫(kù)基本操作及技巧
- Git 的基本操作、開(kāi)發(fā)流程、實(shí)用技巧總結(jié)(陳彥貝)
- GIt的基本操作詳解
- Git 教程之基本操作詳解
- Github代碼常用指令(小結(jié))