本文旨在幫助大家簡單入門Git,木有什麼高深東西;)
用淺顯易懂的話語解釋各種常用git指令
Git簡介
什麼是Git?
Git(讀音為/gɪt/)是一個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。 -源于百度百科(2020.07.30)
Git來源:
Git是 Linus Torvalds 為了幫助管理 Linux 核心開發而開發的一個開放源碼的版本控制軟體。
Git工作流程
我jio(覺)得了解Git的工作流程将有利于我們對Git的學習和認識
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL1EjN3ETN1IjMxMzNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
簡單的畫了,大家看看就好,記住其中緩存區和HEAD倉庫(後文有寫成版本庫,大家先這麼了解吧) 緩存區後文會經常提到。
Git基本使用
-
常用指令
這裡先列出幾個常用指令友善大家查詢(小白可以先跳過看下面解釋說明)
指令 | 作用 |
---|---|
git init | 建立新的git倉庫 |
git clone xxx | 克隆git倉庫(xxx為倉庫位址,可以是網絡連接配接,後面會有解釋) |
git add (filename) | 将檔案添加到緩存區 |
git commit -m “info” | 将檔案送出到本地倉庫 |
git status | 檢視在你上次送出之後是否有修改 |
git branch (branchname) | 建立分支 |
git checkout (branchname) | 切換分支 |
git branch | 列出本地倉庫目前所有分支 |
git branch -d (branchname) | 删除分支 |
git push origin xxx | 将本地倉庫分支送出到遠端倉庫 xxx為分支名 |
git pull | 将更新你的本地倉庫至最新改動,拉取代碼 |
git reset --hard commitid | 回退到任意版本(commitid可使用下面git log查詢到) |
git checkout – filename | |
git rm filename | 删除版本庫(倉庫)中檔案 |
git log | 送出日志(我們可以用 --oneline 選項來檢視曆史記錄的簡潔的版本) |
… | 更多指令大家可以自己探索,這裡簡單舉例一些(主要原因部落客敲不下去了:)) |
-
基本操作
下面所有指令均在git bash(git預設安裝後在開始菜單裡面會有)中運作(Linux直接在指令行運作即可)
建立一個倉庫
首先建立一個檔案夾,這個檔案夾位址就是你本地倉庫的位址了。
git使用 git init來初始化一個倉庫
這樣初始化後檔案夾下會出現一個.git的檔案夾(部分人可能執行上面步驟後卻發現沒有.git檔案夾原因是因為.git是一個隐藏檔案夾,可以使用dir這個指令來查詢) 這個目錄是用來跟蹤版本管理的,是以沒事不要改動裡面的檔案,否則會破壞git倉庫。
添加檔案 and 送出檔案到倉庫
首先我們這裡需要明白一件事,git隻可以跟蹤文本檔案(代碼),它可以告訴你文本檔案每次的改動,但是無法跟蹤圖檔、視訊這些二進制的檔案,雖然可以使用git類版本控制工具管理,但是它無法告訴你每次二進制檔案的變動地方。
- 我們先在test這個檔案夾下建立一個文本檔案名為“README.txt”
- 使用
來将檔案送出到緩存區,具體如下圖git add
執行後如果會空出一行且沒有任何提示說明添加成功Git基本使用指南及簡單說明Git簡介Git工作流程Git基本使用 - 使用
來将緩存區的檔案送出到倉庫如下圖git commit
其中-m 後的内容為送出備注(注意:内容需要使用’'單引号)Git基本使用指南及簡單說明Git簡介Git工作流程Git基本使用 - 下面我們可以用
來查詢是否還有其它檔案沒有送出git status
Git基本使用指南及簡單說明Git簡介Git工作流程Git基本使用 我們可以看到提示沒有檔案沒有送出到倉庫了
如果下面有出現檔案名為綠色 說明該檔案已經送出到了緩存但并未送出到倉庫可以使用
git commit
來送出
如果有檔案名為紅色說明該檔案有改動但未送出到緩存區,可以使用
送出到緩存區(重複上面步驟)git add
Git基本使用指南及簡單說明Git簡介Git工作流程Git基本使用 - 使用
來看看檔案到底進行了那些操作git diff
其中git diff 後面添加需要查詢的檔案名,會對目前未添加至倉庫的檔案和倉庫中已有檔案進行對比。Git基本使用指南及簡單說明Git簡介Git工作流程Git基本使用
回退曆史版本
方法一:
當我們送出過很多次代碼時,要檢視送出曆史時,我們可以用
git log
來查詢曆史送出記錄
如果記錄很多的時候看起來可能會很亂,是以可以在git log 後加–pretty=oneline
git log --pretty=oneline
這樣記錄就會從最近的送出到最舊的一次送出排列。
現在我們擷取到了送出曆史記錄,那要怎樣回退到曆史的版本呢?
我們可以使用
git reset --hard commitid
其中commitid就是上圖後面的那段字元串
方法二:
這裡我們介紹下
git reset --hard HEAD
可以退回到指定版本,那又要怎麼查詢版本呢?
可以通過
git reflog
指令來查詢
查詢到了版本号後,我們就可以使用
git reset --hard HEAD
(HEAD換成你需要的版本号)指令來指定退回到某個版本 這樣有點麻煩,當然如果你記得你送出過次數,也可以
git reset --hard HEAD^
這樣即可退回到上一個版本。
那如果退回到上上個版本呢?
當然我們可以用
git reset --hard HEAD^^
以此類推,那如果有100個曆史版本有怎麼辦呢?這時,我們就可以這樣
git reset --hard HEAD~100
撤銷與删除檔案
如果你有堅持看到這裡,你會發現,我們一直說到這裡都在說怎麼添加檔案,卻從未說過怎麼撤銷操作,這裡我們将介紹一下如果撤銷與删除,畢竟
人非聖賢孰能無過
當你無意犯了一個錯誤,但在送出到倉庫前發現了這個問題且使用git status發現還沒有commit到倉庫,這時就可以使用
git reset HEAD filename
把在緩存區的檔案撤銷
一般有時候開發者會删除一些不需要在使用的檔案時,在删除後,當你在使用 git status時,git發現工作區和倉庫檔案不一緻時,就會有提示,這時候可以使用
git rm
即可從版本庫中删除該檔案然後在git commit即可
當然在你誤删檔案且未使用’git rm’指令的時候也可以使用
git checkout -- filename
來恢複到版本庫中最後一次送出的版本
倉庫分支管理
在我們初始化倉庫的時候我們會發現倉庫路徑後面會出現一個(master),這說明,在我們建立倉庫中預設分支為master分支,那我們可不可以自己建立一個分支呢?
答案是可以的,下面先給大家介紹幾個關于分支的指令吧。
git checkout -b branchname 建立并切換到該分支
git branch branchname 建立分支
git checkout branchname 切換到分支
git branch 檢視目前分支
git merge branchname 合并分支到master分支
git branch -d branchname 删除分支
這裡應該還是挺簡單的,就簡單示範一下吧,不過多解釋了。
拉取(克隆)和送出倉庫
這裡先簡單提下吧,後面應該會寫一篇git與GitHub或gitee的使用(先給自己挖一個坑)
git clone xxx xxx為遠端倉庫位址
git remote add origin xxx 關聯遠端倉庫 xxx為遠端庫位址
git push 将我們的倉庫推送到遠端倉庫
如果有什麼問題歡迎大家指正!
本文僅簡單介紹了一些git操作,還有更多大家就自己摸索了吧。
在寫這篇文章的時候發現自己很多指令忘了。
雖然現在有很多工具都有內建git插件,可視化界面,可我覺得這種最純粹的方式也應該是不能遺忘的。