如何區分開發環境和生產環境呢
答案就是寫不同的配置文件,開發的設置成開發需要的,生產的設置成生產需要的,共同放到config這個配置文件夾下面,開發和生成的時候分別加載不同的配置文件
方式二就是使用相同的一個入口配置文件,通過設置參數來區分:
入口文件的解析
?我們之前編寫入口文件的規則是:./src/index.js,如果我們的配置文件所在的位置變成了config目錄,是否應該變成../src/index.js呢?
如果這樣寫會發現是報錯的,依然需要寫成./src/index.js
因為入口文件是和另一個屬性有關的context
context的作用是用于解析入口和加載器(默認是當前路徑,推薦在配置中傳入一個值)
邂逅版本控制工具
使用版本控制可以解決很多問題:
?在沒有版本控制的時候人們通常使用文件備份的方式進行管理,在通過diff命令對比兩個文件的差異(小原始人)
此后經歷的版本控制工具的沿革就是CVS -> SVN -> Git
集中式和分布式的區別
CVS和SVN都是集中式版本控制系統
主要特點是單一的集中管理的服務器,保存所有的文件修訂的版本
協同開發人員通過客戶端連接到這臺服務器,取出最新的文件或者提交更新
?這種做法的好處是每個人都可以在一定程度上看到項目中的其他人在做什么
但是集中式版本控制也有 一個核心的問題:中央服務器不能出現故障
如果宕機一小時,那么在這一小時內,誰都無法提交更新,就無法協同工作
如果中心數據庫所在的磁盤發生損壞,又沒有做備份,那就完蛋了(所有數據都無了)
那么來看看分布式版本控制吧
git是分布式版本控制系統
客戶端并不只是提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來,包括完整的歷史記錄
這樣一來任何一處協同工作用的服務器發生故障,事后都可以用任何一個鏡像出來的本地倉庫恢復
每一次的克隆操作都是一次對代碼倉庫的完整備份
git的環境安裝搭建
git安裝后也會給我們安裝三個工具:Bash、CMD、GUI
Bash是Unix shell的一種,Linux和mac os都把他作為默認的shell
git bash是一個shell,是Windows下的命令行工具,可以執行Linux命令
git bash 是基于CMD的,在CMD的基礎上增添一些新的命令與功能
在使用的時候用Bash更方便
git CMD
CMD是Windows操作系統上的命令行解釋程序
當你在Windows上安裝git并且習慣使用命令行時,就可以使用cmd來運行git命令
git GUI
針對那些不喜歡黑屏編碼的人
它提供了圖形化界面運行git命令
安裝完后可以在VScode的終端選擇git bash
選擇默認配置文件選擇git_bash就可以了
終端長這樣
然后就還是那幾個老生常談的命令了
git init
git clone
?如果是新項目要創建git倉庫的話就git init
如果是老項目克隆別人的倉庫就是git clone
git add .
把改動提交到暫存區
git commit -m "提交信息"
使用git提交?
git log
這是打印提交信息
?
?文件狀態的劃分
現在我們的電腦上已有一個git倉庫,在實際開發時需要將某些文件交由這個git倉庫來管理
并且我們之后會修改文件的內容,當達成了某一個目標的時候,想要記錄下來這次的操作,就會把它提交到倉庫中
我們需要對文件來劃分不同的狀態已確定這個文件是否已經歸于git倉庫里
未跟蹤:默認情況下git倉庫下的文件沒有添加到git倉庫管理中,我們需要通過add命令來操作
已跟蹤:添加到git倉庫管理的文件處于已跟蹤狀態,git可以對其進行各種跟蹤管理
而已跟蹤的文件也可以進行細分的狀態劃分
staged:暫緩區中的文件狀態
Unmodified:commit命令可以將staged中的文件提交到git倉庫
Modified:修改了某個文件后會處于Modified狀態?
在工作時,可以選擇性的將這些修改過的文件放入暫存區
然后提交所有的修改,如此反復
檢測文件的狀態?- git status
git status可以檢查文件的狀態
Untracked files是未跟蹤的文件
未跟蹤的文件意味著Git在之前的提交中沒有這些文件
Git不會自動將其納入跟蹤范圍(除非告訴它需要跟蹤)
還可以查看更簡潔的狀態信息:
git status -s
git status --short
git忽略文件
一般來說總會有些文件無需納入git的管理,也不希望他們出現在未跟蹤文件列表
通常都是自動生成的文件,比如日志文件,或者編譯過程中創建的臨時文件等
可以創建一個名為.gitignore的文件
在實際的開發中這個文件通常不需要手動的創建,在必須的時候添加自己的忽略內容
自動創建的忽略文件包括一些不需要提交的文件、文件夾
包括本地環境變量文件和日志文件和編輯器自動生成的文件
文件更新提交 - git commit
每一次準備提交之前可以先用git status看一下,所需要的文件是不是已經暫存起來了
再運行提交命令 git commit
可以在commit命令后添加 -m 選項,將提交信息與命令放在同一行
Git的校驗和
Git中所有的數據在存儲前都計算校驗和,然后以校驗和來引用
Git用以計算校驗和的機制叫做SHA-1散列(hash,哈希)
這是一個由40個十六進制字符(0-9和a-f)組成的字符串,基于git中文件的內容或者目錄結構計算出來
查看提交的歷史 - git log
git log會按時間先后順序列出所有的提交,最近的更新排在最上面
這個命令會列出每一個提交的SHA-1校驗和、作者的名字和電子郵件地址、提交時間和提交說明
版本回退 - git reset
如果想要進行版本回退,我們需要先知道目前處于哪一個版本,Git通過HEAD指針記錄當前的版本
HEAD是當前分支引用的指針,它總是指向該分支上的最后一次提交
理解HEAD的最簡方式,就是將它看做該分支上的最后一次提交的快照
我們可以通過HEAD來改變git的目前版本指向
HEAD^是上一個版本,HEAD^^是上上個版本
如果上1000個版本,可以使用HEAD~1000
可以指定某一個commit id
命令示例:
git reset --hard HEAD^
?