Git回顧

參考視頻:【GeekHour】一小時Git教程

一句話定義:Git是一個免費開源的分布式版本控制系統。

版本控制系統可以分為兩種,1.集中式(SVN,CVS);2.分布式(git)

git的工作區域和文件狀態

git的工作區域
在這里插入圖片描述
git中文件也存在下面幾種狀態在這里插入圖片描述

添加和提交文件

git reset

默認是mixed。這三種模式實際上就是回退程度的區別。下圖可以解釋區別,其中工作區是本地實際的文件,暫存區是git add后的區域。
在這里插入圖片描述

當然,如果誤操作了git reset也沒關系,可以使用git reflog查看修改記錄,然后再使用git reset回退。

在這里插入圖片描述

git loggit reflog的區別

項目git loggit reflog
作用查看分支上的提交歷史查看 HEAD 或分支引用的變動歷史
內容顯示當前分支的提交(commit)記錄顯示 HEAD 或分支引用的所有變動(如 reset、rebase、commit)
記錄范圍只包含分支上可達的 commit包括被丟棄、回滾、rebase 覆蓋的 commit
保留時間只要 commit 沒有被垃圾回收就會一直在默認保留 90 天(可配置),之后會被 Git 回收
常用場景查看項目歷史、提交說明誤操作恢復(如找回 reset 丟失的提交)
可見性用戶面向,邏輯提交歷史Git 內部記錄,供恢復使用
示例命令git log --onelinegit reflog

git diff

比較工作區和暫存區之間的差異
在這里插入圖片描述
進行git add后,上面就無區別了。

比較工作區和版本庫之間的差異
git diff HEAD(對比當前工作區的文件和最新一次提交(HEAD)之間的差異)
在這里插入圖片描述

比較暫存區和版本庫之間的差異 : git diff --cached

比較兩個不同版本庫之間的差異
在這里插入圖片描述

HEAD~n表示前n個版本
在這里插入圖片描述

在這里插入圖片描述

git rm刪除文件

如果不用git rm,那正常的操作流程是,先rm刪掉文件,然后git add同步到暫存區。
上面流程可以用git rm,即同時刪除工作區和暫存區的文件。在這里插入圖片描述

gitignore

匹配規則例子:

在這里插入圖片描述
在這里插入圖片描述

SSH配置和遠程倉庫

SSH與HTTPS之辨析與實踐
在這里插入圖片描述
在這里插入圖片描述

關聯本地倉庫和遠程倉庫

git push -u 中的 -u --set-upstream的簡寫,作用是:

把當前分支和遠程分支綁定,以后你只需輸入 git push git pull就行,不用每次指定遠程和分支名。

當然,下面中遠程倉庫需要新建,然后就可以通過下面步驟把本地代碼同步到遠程倉庫了。
在這里插入圖片描述
比如:我想要把hhh分支上的推送到遠程的main,git push origin hhh:main

分支以及合并沖突

分支合并:mergerebase

merge
你在哪個分支執行 git merge,就是把“別的分支”合并到“你當前所在的分支”上。
比如下面,在main分支上使用merge dev,就把dev合并到當前的main上,此時會有產生一個新的提交(如下面的“merge")。
在這里插入圖片描述
rebase
把當前分支的提交“挪到”目標分支的最末尾,重新“重放”一遍,形成一條線性的提交歷史。
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

git pull 和 git fetch

git fetch 把遠程倉庫的更新拉到本地,但不影響你當前的代碼(不合并、不修改工作區)。

命令拉代碼自動合并修改工作區
git fetch???(不影響當前分支)
git pull???(直接合并)

git fetch 安全、可控,適合先看看有沒有沖突再決定怎么合并。

git pull 是 fetch + merge 的快捷方式,一鍵拉并合并。

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

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

相關文章

python打卡day20

特征降維------特征組合(以SVD為例) 知識點回顧: 奇異值的應用: 特征降維:對高維數據減小計算量、可視化數據重構:比如重構信號、重構圖像(可以實現有損壓縮,k 越小壓縮率越高&#…

GuPPy-v1.2.0安裝與使用-生信工具52

GuPPy:Python中用于光纖光度數據分析的免費開源工具 01 背景 Basecalling 是將原始測序信號轉換為堿基序列的過程,通俗地說,就是“把堿基識別出來”。這一過程在不同代測序技術中各不相同: 一代測序是通過解析峰圖實現&#xff1…

47. 全排列 II

題目 給定一個可包含重復數字的序列 nums ,按任意順序 返回所有不重復的全排列。 示例 1: 輸入:nums [1,1,2] 輸出: [[1,1,2],[1,2,1],[2,1,1]] 示例 2: 輸入:nums [1,2,3] 輸出:[[1,2,3…

ERP系統操作流程,如何快速搭建流程體系

ERP流程圖,如何搭建和建立,ERP系統操作流程,ERP系統操作流程圖,采購流程,銷售流程,倉庫流程,MRP流程,PMC流程,財務流程,應收流程,應付流程&#x…

class path resource [] cannot be resolved to absolute file path

問題情景 java應用程序在IDE運行正常,打成jar包后執行卻發生異常: java.io.FileNotFoundException: class path resource [cert/sync_signer_pri_test.key] cannot be resolved to absolute file path because it does not reside in the file system:…

19、HashTable(哈希)、位圖的實現和布隆過濾器的介紹

一、了解哈希【散列表】 1、哈希的結構 在STL中,HashTable是一個重要的底層數據結構, 無序關聯容器包括unordered_set, unordered_map內部都是基于哈希表實現 哈希表又稱散列表,一種以「key-value」形式存儲數據的數據結構。哈希函數:負責將…

基于 Flask的深度學習模型部署服務端詳解

基于 Flask 的深度學習模型部署服務端詳解 在深度學習領域,訓練出一個高精度的模型只是第一步,將其部署到生產環境中,為實際業務提供服務才是最終目標。本文將詳細解析一個基于 Flask 和 PyTorch 的深度學習模型部署服務端代碼,幫…

Vue3 + Node.js 實現客服實時聊天系統(WebSocket + Socket.IO 詳解)

Node.js 實現客服實時聊天系統(WebSocket Socket.IO 詳解) 一、為什么選擇 WebSocket? 想象一下淘寶客服的聊天窗口:你發消息,客服立刻就能看到并回復。這種即時通訊效果是如何實現的呢?我們使用 Vue3 作…

MySQL數據庫與表結構操作指南

前言:本文系統梳理MySQL核心操作語句。內容覆蓋建庫建表、結構調整、數據遷移全流程(包含創建/修改/刪除/備份場景)。希望它們能幫你快速解決問題。 庫結構操作 一、庫的創建 一個庫的簡單創建: create database 庫名; 注意&am…

【WEB3】區塊鏈、隱私計算、AI和Web3.0——數據民主化(1)

區塊鏈、隱私計算、AI,是未來Web3.0至關重要的三項技術。 1.數據民主化問題 數據在整個生命周期(生產、傳輸、處理、存儲)內的隱私安全,則是Web3.0在初始階段首要解決的問題。 數據民主化旨在打破數據壟斷,讓個體能…

C語言—指針2

1. const 修飾變量 1.1 const修飾變量 變量被const修飾時,變量此時為常變量,本質為常量,語法上不可被修改,但是如果此時需要修改變量值,可以通過指針的方式修改。 雖然此時通過指針的方式確實修改了變量的值&#xff…

高級架構軟考之網絡OSI網絡模型

高級架構軟考之網絡: 1.OSI網絡模型: a.物理層: a.物理傳輸介質物理連接,負責數據傳輸,并監控數據 b.傳輸單位:bit c.協議: d:對應設備:中繼器、集線器 b.數據鏈路層: a.…

el-table計算表頭列寬,不換行顯示

1、在utils.js中封裝renderHeader方法 2、在el-table-column中引入: 3、頁面展示:

MySQL OCP和Oracle OCP怎么選?

近期oracle 為慶祝 MySQL 數據庫發布 30 周年,Oracle 官方推出限時福利:2025 年 4 月 20 日至 7 月 31 日期間,所有人均可免費報考 MySQL OCP(Oracle Certified Professional)認證考試(具體可查看MySQL OCP…

2025最新免費視頻號下載工具!支持Win/Mac,一鍵解析原畫質+封面

軟件介紹 適用于Windows 2025 最新5月蝴蝶視頻號下載工具,免費使用,無廣告且免費,支持對原視頻和封面進行解析下載,親測可用,現在很多工具都失效了,難得的幾款下載視頻號工具,大家且用且珍…

Python學習之路(八)-多線程和多進程淺析

在 Python 中,多線程(Multithreading) 和 多進程(Multiprocessing) 是實現并發編程的兩種主要方式。它們各有優劣,適用于不同的場景。 一、基本概念 特性多線程(threading)多進程(multiprocessing)并發模型線程共享內存空間每個進程擁有獨立內存空間GIL(全局解釋器鎖…

Spark緩存--persist方法

1. 功能本質 persist:這是一個通用的持久化方法,能夠指定多種不同的存儲級別。存儲級別決定了數據的存儲位置(如內存、磁盤)以及存儲形式(如是否序列化)。 2. 存儲級別指定 persist:可以通過傳入…

裸辭8年前端的面試筆記——JavaScript篇(一)

裸辭后的第二個月開始準備找工作,今天是第三天目前還沒有面試,現在的行情是一言難盡,都在瘋狂的壓價。 下邊是今天復習的個人筆記 一、事件循環 JavaScript 的事件循環(Event Loop)是其實現異步編程的關鍵機制。 從…

什么是死信隊列?死信隊列是如何導致的?

死信交換機(Dead Letter Exchange,DLX) 定義:死信交換機是一種特殊的交換機,專門用于**接收從其他隊列中因特定原因變成死信的消息**。它的本質還是交換機,遵循RabbitMQ中交換機的基本工作原理&#xff0c…

9. 從《蜀道難》學CSS基礎:三種選擇器的實戰解析

引言:當古詩遇上現代網頁設計 今天我們通過李白的經典詩作《蜀道難》來學習CSS的三種核心選擇器。這種古今結合的學習方式,既能感受中華詩詞的魅力,又能掌握實用的網頁設計技能。讓我們開始這場穿越時空的技術之旅吧! 一、HTML骨架…