詳解git基本操作和指令
基本操作
一、基本操作命令
- 建立進入空資料夾
- 右鍵 -> 點選 Git Bash Here 啟動命令列(MAC 在當前資料夾開啟終端)
git init
倉庫初始化- 建立一個初始化檔案 index.html
git add index.html
將檔案加入到暫存區git commit -m '註釋'
提交到倉庫 m 是 message 單詞的縮寫
二、.git 目錄
- hooks 目錄包含客戶端或服務端的鉤子指令碼,在特定操作下自動執行。
- info 包含一個全域性性排除檔案,可以配置檔案忽略
- logs 儲存日誌資訊
- objects 目錄儲存所有資料內容,本地的版本庫存放位置
- refs 目錄儲存指向資料的提交物件的指標(分支)
- config 檔案包含專案特有的配置選項
- description 用來顯示對倉庫的描述資訊
- HEAD 檔案指示目前被檢出的分支
- index 暫存區資料
- 切記: 不要手動去修改 .git 資料夾中的內容*
三、版本庫的三個區域
- 工作區(程式碼編輯區):代表本地開發程式碼的地方
- 暫存區(修改待提交區) :代表本地倉庫暫時保管程式碼的地址
- 倉庫區(程式碼儲存區):代表程式碼進入本地版本控制
常用命令
一、常用命令
git status
版本狀態檢視
紅色:說明檔案位於工作區
綠色:說明檔案位於暫存區
沒有體現,說明位於版本區
git add -A
新增所有新檔案到暫存區(或者git add .
git add *
)
使用git restore
可以丟棄工作區的改動
git commit -m '註釋 '
提交修改並註釋
使用git restore --staged <檔案>
可以取消暫存
git diff
檢視工作區與暫存區的差異(不顯示刪除或新增檔案) 顯示做了哪些修改
//解讀結果 lipeihuadeMacBook-Pro% git diff //進行比較的是,index.html(即變動前)index.html(即變動後)。 diff --git a/index.html b/index.html //表示兩個版本的git雜湊值 index 16158b4..61045cd 100644 //"---"表示變動前的版本 --- a/index.html //"+++"表示變動後的版本 +++ b/index.html //代表的意思是原始檔的1-2行與目標檔案的1-5行有差異,下面才是具體的差異資訊; @@ -1,2 +1,5 @@ //-紅色部分表示減少的部分,+綠色部分表示增加的部分 index.html -no 1 + + + +再次修改 //\ No newline at end of file 最後一行沒有換行 \ No newline at end of file
git diff --cached
檢視暫存區與倉庫的差異
二、歷史版本回滾
2.1檢視歷史版本
git log
預設不用任何引數的話,git log 會按提交時間列出所有的更新,最近的更新排在最上面。每次更新都有一個 SHA-1 校驗和、作者的名字 和 電子郵件地址、提交時間,最後縮排一個段落顯示提交說明。
git log --oneline
如果內容偏多, 需要使用方向鍵上下滾動, 按
q
退出每行顯示一個 commit顯示 commit 的 SHA 的前 7 個字元顯示 commit 的訊息
git log
命令有一個選項,可以用來更改倉庫資訊的顯示方式。該選項為--oneline
.
2.2根據版本號進行回滾
版本回退,只是本地的。不會影響git庫中的內容。
git reset --hard b815fd5a6ae655b521a31a9
進行版本回退時,不需要使用完整的雜湊字串,前七位即可
版本切換之前,要提交當前的程式碼狀態到倉庫
git reflog
如果在回退以後又想再次回到之前的版本,git reflog 可以檢視所有分支的所有操作記錄(包括commit和reset的操作),包括已經被刪除的commit記錄,git log則不能察看已經刪除了的commit記錄
2.3其他回滾(瞭解)
git reset --hard HEAD^ 回滾到上個版本 git reset --hard HEAD^^ 回滾到上上個版本 git reset --hard HEAD~100 回滾到100個版本之前
配置忽略檔案
一、倉庫中沒有提交該檔案
專案中有些檔案是不需要進入版本庫中,比如編輯器的配置。Git 中需要建立一個檔案 .gitignore,一般與 .gitignore 同級目錄。
# 忽略所有的 .idea 資料夾 .idea # 忽略所有以 .test 結尾的檔案 *.test # 忽略 node_modules 檔案和資料夾 /node_modules
二、倉庫中已經提交該檔案
對於已經加入到版本庫的檔案,可以在版本庫中刪除該檔案
git rm --cached .idea git rm --cached ./css/go.css
然後在 .gitignore 中配置忽略
.idea /css/go.css
add 和 commit 提交即可
分支
分支是 Git 重要的功能特性之一,開發人員可以在主開發線的基礎上分離出新的開發線。
建立分支
name 為分支的名稱
git branch name
檢視分支
git branch
切換分支
git checkout name
合併分支
git merge name
刪除分支
git branch -d name
切換並建立分支
git checkout -b name
注意: 每次在切換分支前 提交一下當前分支
衝突
當多個分支修改同一個檔案後,合併分支的時候就會產生衝突。衝突的解決非常簡單,將內容修改為最終想要的結果,然後繼續執行 git add 與 git commit 就可以了。
到此這篇關於詳解git基本操作和指令的文章就介紹到這了,更多相關git基本操作和指令內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!