Git版本控制工具詳解

如何區分開發環境和生產環境呢

答案就是寫不同的配置文件,開發的設置成開發需要的,生產的設置成生產需要的,共同放到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^

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84033.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84033.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84033.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

反向傳播的核心是什么:計算損失函數對可訓練參數的梯度=== 損失函數能通過計算圖連接到可訓練參數

反向傳播的核心是什么:計算損失函數對可訓練參數的梯度 損失函數能通過計算圖連接到可訓練參數 在深度學習中,反向傳播的核心是計算損失函數對可訓練參數的梯度,從而更新這些參數。對于LLM(大型語言模型)而言,是否需要“LLM輸出的參數”才能進行反向傳播 一、反向傳播…

KINGCMS被入侵

現象會強制跳轉到 一個異常網站,請掉截圖代碼. 代碼中包含經過混淆處理的JavaScript,它使用了一種技術來隱藏其真實功能。代碼中使用了eval函數來執行動態生成的代碼,這是一種常見的技術,惡意腳本經常使用它來隱藏其真實目的。 這段腳本會檢…

深入探索串的高級操作:從算法到 LeetCode 實戰

串是編程中最常用的數據結構之一,從簡單的文本處理到復雜的文本匹配算法,串的應用無處不在。在掌握了串的基本概念、存儲結構以及KMP算法之后,現在讓我們深入探索串的更多高級操作,例如求子串、串的替換等,并通過LeetC…

在rocky linux 9.5上在線安裝 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …

OneNet + openssl + MTLL

1.OneNet 使用的教程 1.在網絡上搜索onenet,注冊并且登錄賬號。 2.產品服務-----物聯網服務平臺立即體驗 3.在底下找到立即體驗進去 4.產品開發------創建產品 5.關鍵是選擇MQTT,其他的內容自己填寫 6.這里產品以及開發完成,接下來就是添加設…

【Fiddler工具判斷前后端Bug】

Fiddler工具判斷前后端Bug的方法 使用Fiddler抓包工具可以高效定位問題是出在前端還是后端,主要通過分析請求和響應的內容、狀態碼、數據格式等關鍵信息。 分析請求是否成功發送 檢查請求是否從客戶端正確發出,觀察Fiddler抓取的請求列表。若請求未出…

【論文閱讀筆記】《A survey on deep learning approaches for text-to-SQL》

文章目錄 一、論文基本信息1. 文章標題2. 所屬刊物/會議3. 發表年份4. 作者列表5. 發表單位 二、摘要三、解決問題四、創新點五、自己的見解和感想六、研究背景七、研究方法(模型、實驗數據、評估指標)八、總結(做了什么、得到了什么、有什么…

【強連通分量 縮點 最長路 拓撲排序】P2656 采蘑菇|普及+

本文涉及知識點 C圖論 強連通分量 縮點 最長路 拓撲排序 P2656 采蘑菇 題目描述 小胖和 ZYR 要去 ESQMS 森林采蘑菇。 ESQMS 森林間有 N N N 個小樹叢, M M M 條小徑,每條小徑都是單向的,連接兩個小樹叢,上面都有一定數量的…

Dubbo Logback 遠程調用攜帶traceid

背景 A項目有調用B項目的服務&#xff0c;A項目使用 logback 且有 MDC 方式做 traceid&#xff0c;調用B項目的時候&#xff0c;traceid 沒傳遞過期&#xff0c;導致有時候不好排查問題和鏈路追蹤 準備工作 因為使用的是 alibaba 的 dubbo 所以需要加入單獨的包 <depend…

nodejs:用 nodemailer 發送一封帶有附件的郵件

我們將使用 nodemailer 庫來發送帶有附件的郵件。 首先&#xff0c;確保已經安裝了nodemailer。如果沒有安裝&#xff0c;可以通過 npm install nodemailer 來安裝。 cnpm install nodemailer --save dependencies: – nodemailer ^7.0.3 步驟&#xff1a; 引入nodemailer模…

Scade 語言概念 - 方程(equation)

在 Scade 6 程序中自定義算子(Operator)的定義、或數據流定義(data_def)的內容中&#xff0c;包含一種基本的語言結構&#xff1a;方程(equation)(注1)。在本篇中&#xff0c;將敘述 Scade 語言方程的文法形式&#xff0c;以及作用。 注1: 對 Scade 中的 equation, 或 equation…

STM32開發,創建線程棧空間大小判斷

1. 使用RTOS提供的API函數&#xff08;以FreeRTOS為例&#xff09; 函數原型&#xff1a;UBaseType_t uxTaskGetStackHighWaterMark(TaskHandle_t xTask)功能&#xff1a;獲取指定任務堆棧中剩余的最小空間&#xff08;以字為單位&#xff0c;非字節&#xff09;。使用步驟&am…

thinkphp8.1 調用巨量廣告API接口,刷新token

1、在mysql中建立表sys_token; CREATE TABLE sys_token (id int UNSIGNED NOT NULL,access_token varchar(50) COLLATE utf8mb4_general_ci NOT NULL,expires_in datetime NOT NULL,refresh_token varchar(50) COLLATE utf8mb4_general_ci NOT NULL,refresh_token_expires_in …

【leetcode】遞歸,回溯思想 + 巧妙解法-解決“N皇后”,以及“解數獨”題目

&#x1f4da;?前言 &#x1f31f; 本期內容亮點&#xff1a;我們將深入解析力扣&#xff08;LeetCode&#xff09;上的幾道經典算法題&#xff0c;涵蓋不同難度和題型&#xff0c;幫助大家掌握解題思路和代碼實現技巧。無論是準備面試還是提升算法能力&#xff0c;這些題解都…

【iOS安全】iPhone X iOS 16.7.11 (20H360) WinRa1n 越獄教程

前言 越獄iPhone之后&#xff0c;一定記得安裝一下用于屏蔽更新的描述文件&#xff08;可使用愛思助手&#xff09; 因為即便關閉了自動更新&#xff0c;iPhone仍會在某些時候自動更新系統&#xff0c;導致越獄失效&#xff1b;更為嚴重的是&#xff0c;更新后的iOS版本可能是…

??高頻通信與航天電子的材料革命:獵板PCB高端壓合基材技術解析??

—聚酰亞胺/陶瓷基板在5G與航天場景的產業化應用?? ??一、極端環境材料體系&#xff1a;突破溫域與頻率極限?? ??聚酰亞胺基板&#xff08;PI&#xff09;的航天級穩定性?? 獵板在衛星通信PCB中采用真空層壓工藝處理聚酰亞胺基材&#xff08;Dk≈10.2&#xff09;&a…

pikachu靶場通關筆記13 XSS關卡09-XSS之href輸出

目錄 一、href 1、常見取值類型 2、使用示例 3、安全風險 二、源碼分析 1、進入靶場 2、代碼審計 3、滲透思路 三、滲透實戰 1、注入payload1 2、注入payload2 3、注入payload3 本系列為通過《pikachu靶場通關筆記》的XSS關卡(共10關&#xff09;滲透集合&#xff…

day26-計算機網絡-4

1. tcp的11種狀態 ss -ant -a 表示看所有狀態 -n 表示不將ip解析為主機名 -t 表示tcp 1.1. closed狀態&#xff08;客戶端、服務端&#xff09; 客戶端發起建立連接前的狀態服務端啟動服務前的狀態 1.2. listen狀態&#xff08;服務端&#xff09; 服務端軟件運行的時候狀…

基于autodl部署Cross-Modal-Re-ID-baseline

https://arxiv.org/abs/2001.04193 https://github.com/mangye16/Cross-Modal-Re-ID-baseline/tree/master?tabreadme-ov-file# 需要SYSU-MM01.zip pip install numpy pandas scipy scikit-learn pillow tqdm把SYSU-MM01放到…/Datasets/SYSU-MM01/ori_data下 先運行pytho…

線程安全集合

前置閱讀&#xff1a; 數據結構等算法概念 樹堆排序 鎖相關概念&#xff1a; 鎖概念鎖實現 隊列 Queue 與 Deque 的區別 Queue 是單端隊列&#xff0c;只能從一端插入元素&#xff0c;另一端刪除元素&#xff0c;實現上一般遵循 先進先出&#xff08;FIFO&#xff09; 規則…