幫你短時間拿下Git,Git詳細教學(濃縮的都是精華)

2022-12-09 21:00:22

Git學習筆記

Git是一個開源的分散式版本控制系統,可以有效、高速地處理從很小到非常大的專案版本管理。

在團隊開發中git是必不可少的,它是目前為止最流行的版本控制工具

Git是免費、開源的,由Linux之父花了兩週時間寫出來的(人與人之間的差距怎麼這麼大!)

b站狂神:有道無術、術尚可求,有術無道、止於術!

集中式和分散式的區別

除了git還有svn之類的版本控制系統,它們主要區別在於一個是分散式,一個是集中式

分散式

代表:Git

分散式版本控制系統,每個人的電腦都相當於伺服器,當你拉取倉庫的程式碼後,你的電腦就是一個完整的版本庫,工作時不需要聯網,所有版本都在自己的本機裡,當你想把自己的程式碼提交到主倉庫時,只需要在聯網時合併推播到主倉庫就可以了。

集中式

代表:SVN

集中式版本控制系統,都有一個統一的版本號,放在一個統一的伺服器上,工作時把最新的版本的程式碼拉取到電腦上,程式碼完成後在把寫完的程式碼推播到伺服器上,由於所有的操作都需要伺服器的支援,對網路要求比較大,而且如果伺服器裡的資料出了問題,那麼所有的資料都會丟失,本機使用者端僅儲存當前版本的資訊。

Git安裝及設定

下載

git官網下載:https://git-scm.com/download/win(速度較慢,不推薦)

映象下載:https://registry.npmmirror.com/binary.html?path=git-for-windows/

安裝

下載對應版本後無腦安裝即可(更改安裝位置的注意一下安裝位置)

安裝完git後會在開始選單和右鍵資料夾下看到對應的git程式,這是因為在剛才安裝時候無腦下一步的結果,由於個人不喜歡右鍵選單項多出來東西,所以這裡介紹下怎麼刪除它

刪除右鍵選單項

  1. Win+R輸入regedit開啟登入檔

  2. 進入右鍵選單目錄:HKEY_CLASSES_ROOT\Directory\Background\shell

  3. 刪除下面兩個資料夾即可

    HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell
    HKEY_CLASSES_ROOT\Directory\Background\shell\git_gui
    

Git環境設定

在安裝完Git後,是需要一些全域性設定的

這裡不設定也可以,當遇到要求登陸許可權的遠端倉庫時會讓你在手動輸入使用者名稱、郵箱、以及密碼

Git設定

列出設定的所有命令:git config

設定使用者名稱和密碼:

git config --global user.name "your name"      // 設定全域性使用者名稱
git config --global user.email "your email"    // 設定郵箱

這裡的 --global 為全域性設定,如果要在特定的的專案中使用不同的名稱,那就不使用該引數,只為當前所在倉庫設定。

檢視所有設定:git config -l

Git相關的組態檔:

  1. 全域性組態檔:C:\Users\你的使用者名稱\.gitconfig
  2. 系統組態檔:你的安裝目錄\Git\etc\gitconfig

Git核心知識

三大區域

git在本地分為三個區域,分別為工作區、快取區和資源區(本地),其實還有一個遠端的一個倉庫區,但不在本地就不做過多解釋

工作區:平時放專案程式碼的地方,包括git已經管理的檔案區域和新增以及修改的檔案區域

快取區:用於臨時存放改動的程式碼,它本質上是一個檔案,把工作區的部分或者全部已經確認需要儲存的檔案提交至暫存區,先儲存一下,如果確認好了可以直接提交到本地倉庫中,如果暫時不能做決定可以暫時先放到暫存區,等待下一步操作。

資源區:又稱作版本庫或倉庫區,將某一個歷史節點的儲存檔案列表當做是一個版本,這裡面有你提交到所有版本的資料,其中的HEAD指標預設指向最新放入倉庫的版本

倉庫區:遠端的倉庫,受控程式碼的伺服器,可以是Gitee、GitHub

工作流程

git的工作流程:

  1. 在工具區中增加或修改檔案
  2. 將新的版本程式碼新增到快取區
  3. 將快取取得檔案提交到遠端倉庫

Git專案搭建

建立 Git 版本庫

首先,你需要新建一個存放版本庫的目錄,然後進入到該目錄所在路徑,然後執行:

# 在當前目錄新建一個Git程式碼庫
git init

如果在目錄中看到包含有.git的隱藏目錄,那就證明建立成功

克隆遠端版本庫

將遠端伺服器上的倉庫完全映象一份到本地上

# 克隆一個專案和它的所有版本資訊
git clone [url] # https://gitee.com/xuande-hk/xuande-hk.git

我這裡克隆到是我靜態部落格地址,可以更該為別的地址

分支管理

一般情況下master主分支應當儲存最穩定的程式碼,工作時應當在新建的dev分支上工作,當釋出時把dev程式碼合併到主分支master上

Git基礎操作

檔案操作

檔案狀態

  1. 已暫存狀態(staged),表示對一個已修改檔案的當前版本做了標記,使之包含在下次提交的快照,git add.命令可以將檔案狀態改為staged

  2. 已修改狀態(modified),表示修改了檔案,但是還沒有儲存到資料庫中

  3. 已提交狀態(committed),表示資料已經安全的儲存在本地資料庫中

管理檔案命令

# 檢視指定檔案狀態
git status [filename]
# 檢視所有檔案狀態
git status

# 新增單個檔案到暫存區
git add [filename]
# 新增所有檔案到暫存區
git add .    

# 如果暫存區有檔案,則將其中的檔案提交到倉庫
git commit        
# 帶註釋提交,說明你增加或修改的內容
git commit -m 'your comments'

# 檢視版本庫中所有的改動
git diff    
# 檢視具體檔案的改動
git diff Readme.md       

# 顯示所有提交的歷史記錄
git log     
# 單行顯示提交歷史記錄的內容
git log --pretty=oneline  

# 回退到上一個提交版本
git reset --hard HEAD^  
# 回退到上上一個提交版本
git reset --hard HEAD^^      
# 回退到未來的某個版本
git reflog
# 會退到 commit_id 指定的提交版本
git reset --hard 'commit_id'    

# 如果指定檔案在工作區,則丟棄其修改
git checkout -- [filename]   
# 丟棄當前目錄下所有工作區中檔案的修改
git checkout -- . 

# 刪除已經被提交過的檔案
git rm [filename] 

分支操作

分支是版本控制系統中很重要的一個概念,在 Git 中新建、合併等分支的操作非常輕量便捷,因此我們會很經常的用到。

# 檢視本地分支資訊
git branch         
# 檢視相對詳細的本地分支資訊
git branch -v     
# 檢視包括遠端倉庫在內的分支資訊
git branch -av     

# 新建一個名稱為 dev 的分支
git branch dev 
# 新建完 dev 分支以後,通過該命令切換到 dev 分支
git checkout dev 
# 新建 dev 分支,並切換到該分支上
git checkout -b dev 
# 切換回 master 分支
git checkout master   
# 合併指定分支到當前分支
git merge [branch] 

# 刪除 dev 分支
git branch -d dev 

遠端倉庫

上面的所有命令都是針對本地倉庫的操作。但是當我們多個人來共同作業時,會將程式碼釋出到一個統一的遠端倉庫,當多個人在本地操作完成以後,會推播到遠端倉庫。其他人共同作業時,需要先同步遠端倉庫的內容,再推播自己的修改。

# git clone 後面的倉庫地址,可以支援多種協定,如 https, ssh 等。
git clone https://github.com/git/git.git
# 為本地倉庫新增遠端倉庫
git remote add origin your_remote_git_repo 

# 第一次推播時使用,可以簡化後面的推播或者拉取命令使用
git push -u origin master 
# 將本地 master 分支推播到 origin 遠端分支
git push origin master    

# 拉取遠端倉庫內容,但不會自動合併
git fetch origin master  
# 拉取遠端倉庫內容,自動合併
git pull origin master

# 檢視遠端倉庫資訊
git remote [-v]
# 建立本地分支和遠端分支的關聯
git branch --set-upstream 'local_branch' origin/remote_branch
# 修改本地倉庫對應的遠端倉庫地址
git remote set-url origin [url]

標籤管理

在專案開發過程中,當一個版本釋出完成時,是需要對程式碼打上標籤,便於後續檢索。獲處於其他的原因,需要對某個提交打上特定的標籤。

# 建立標籤
git tag -a 'tagname' -m 'comment' 'commit_id'
# 檢視本地倉庫中的所有標籤
git tag 
# 檢視具體標籤資訊
git show tagname
# 刪除本地標籤
git tag -d tagname

# 推播標籤到遠端倉庫
git push origin tagname
# 推播所有標籤到遠端倉庫
git push origin --tags
# 刪除遠端標籤
git push origin --delete tagname

Git其他操作

繫結IDEA

IDEA版本2021.3.2

git版本:2.36.0

作業系統:win10

開啟idea,找到vcs,建立倉庫

建立以後vcs會變成git,點選git後找到管理遠端

新增遠端倉庫的地址(沒有的話去gitee或者github建一個倉庫)

之後點選提交就可以了(需要輸入提交資訊)

注:控制檯輸入命令也可以實現