Git項目管理——提交項目和版本回退(二)

?個人名片:

🎓作者簡介:嵌入式領域優質創作者
🌐個人主頁:妄北y

📞個人QQ:2061314755

💌個人郵箱:[mailto:2061314755@qq.com]
📱個人微信:Vir2025WBY
🖋?本文為妄北y原創佳作,獨家首發于CSDN🎊🎊🎊
💡座右銘:改造世界固然偉大,但改造自我更為可貴。

專欄導航:

妄北y系列專欄導航:

物聯網嵌入式開發項目:大學期間的畢業設計,課程設計,大創項目,各種競賽項目,全面覆蓋了需求分析、方案設計、實施與調試、成果展示以及總結反思等關鍵環節。📚💼💡

QT基礎入門學習:對QT的基礎圖形化頁面設計進行了一個簡單的學習與認識,利用QT的基礎知識進行了翻金幣小游戲的制作。🛠?🔧💭

Linux基礎編程:初步認識什么是Linux,為什么學Linux,安裝環境,進行基礎命令的學習,入門級的shell編程。🍻🎉🖥?

Linux應用開發基礎開發:分享Linux的基本概念、命令行操作、文件系統、用戶和權限管理等,網絡編程相關知識,TCP/IP 協議、套接字(Socket)編程等,可以實現網絡通信功能。💐📝💡

Linux驅動開發:Linux驅動開發是Linux系統不可或缺的組成部分,它專注于編寫特殊的程序——驅動程序。這些程序承載著硬件設備的詳細信息,并扮演著操作系統與硬件間溝通的橋梁角色。驅動開發的核心使命在于確保硬件設備在Linux系統上順暢運作,同時實現與操作系統的無縫集成,為用戶帶來流暢穩定的體驗。🚀🔧💻

Linux項目開發:Linux基礎知識的實踐,做項目是最鍛煉能力的一個學習方法,這里我們會學習到一些簡單基礎的項目開發與應用,而且都是畢業設計級別的哦。🤸🌱🚀

非常期待與您一同在這個廣闊的互聯網天地里,攜手探索知識的海洋,互相學習,共同進步。🌐💫🌱 熠熠星光,照亮我們的成長之路

?? 歡迎訂閱本專欄,對專欄內容任何問題都可以隨時聯系博主,共同書寫屬于我們的精彩篇章!??

?

文章介紹:

📚本篇文章將深入剖析GIT使用教程學習的精髓與奧秘,與您一同分享相關知識!🎉🎉🎉

若您覺得文章尚可入目,期待您能慷慨地送上點贊、收藏與分享的三連支持!您的每一份鼓勵,都是我創作路上源源不斷的動力。讓我們攜手并進,共同奔跑,期待在頂峰相見的那一天,共慶輝煌!🚀🚀🚀

🙏衷心感謝大家的點贊👍、收藏?和評論??,您的支持是我前進的動力!

目錄:

目錄:

一、GIT提交

1.1 常看當前工作目錄的狀態:

1.2 往暫存區中添加

1.3 添加到本地倉庫

1.4 查看提交日志

二、版本回退?


一、GIT提交

先建立一個index.html文件

?

以下是文件內容:

?

1.1 常看當前工作目錄的狀態:

git status

??git status 是一個 Git 命令,它用于顯示 Git 倉庫中當前工作目錄的狀態。該命令會展示以下信息:

  1. 當前分支:顯示你目前所在的分支。

  2. 變更追蹤:顯示已修改(modified)、已添加到暫存區(staged)、未跟蹤(untracked)的文件。

  3. 文件狀態

    • 已修改但未暫存(紅色提示):文件已經修改,但尚未執行?git add?添加到暫存區。
    • 已暫存待提交(綠色提示):文件已經使用?git add?添加到暫存區,等待下一次提交。
    • 未跟蹤文件:新文件或者是.gitignore中指定的不被Git跟蹤的文件。
  4. 提示信息:可能會給出關于如何撤銷改變或如何將改變添加到暫存區的提示。

?

1.2 往暫存區中添加

git add index.html     //文件名稱

????????當你執行 git add index.html 命令時,你是在告訴 Git 將 index.html 文件的更改添加到暫存區(staging area)。這意味著 index.html 文件中所有已經修改的內容將被標記為準備在下一個提交(commit)中包含。

  1. 修改文件:首先,你需要對 index.html 文件進行修改。

  2. 添加到暫存區:執行 git add index.html 命令,將修改后的 index.html 文件添加到暫存區。

  3. 檢查狀態:使用 git status 命令來查看哪些文件已經被暫存,哪些還沒有。執行 git status 后,你會看到 index.html 文件的狀態變為 "staged" 或 "to be committed"。

當文件存在多個的時候:

?

git add . 

? ?git add . 是一個 Git 命令,用于將當前目錄下的所有新文件、修改過的文件和刪除的文件添加到暫存區。這不包括那些被忽略的文件(例如,那些在 .gitignore 文件中指定的文件)。

? ? ? ? 使用這個命令之后,所有的本地更改(新建、修改、刪除的文件)將會被包含進暫存區,準備進行下一步的提交。這是快速準備大量更改進行提交的一個便捷方式,但是要謹慎使用,以確保不會意外添加不希望提交的更改。

? ? ? ? 在執行 git add . 之后,可以使用 git status 來查看哪些更改已經被暫存,并且可以繼續使用 git commit 命令來提交這些更改到倉庫的歷史記錄中。

1.3 添加到本地倉庫

把暫存區文件添加到本地倉庫

git commit -m "提交說明"

??git commit -m "提交說明" 是一個 Git 命令,用于創建一個新的提交,將所有已暫存的更改記錄到倉庫歷史中。這個命令中 -m 選項后面跟隨的 "提交說明" 是提交消息,用于描述這次提交的目的或包含的更改內容。

? ? ? ? ?提交消息應該是清晰、簡潔的,能夠快速告訴其他參與項目的人這次提交做了什么。好的提交消息可以極大地提高項目的可維護性和協作效率。

? ? ? ? ?執行這個命令后,所有之前使用 git add 命令添加到暫存區的更改都會被包含在這次提交中。如果你之前沒有執行過 git add 來暫存任何更改,那么 git commit -m "提交說明" 命令將不會提交任何東西,因為沒有更改被暫存。

這里是執行 git commit -m "提交說明" 命令的一些步驟:

  1. 編輯和保存文件:對項目進行必要的修改,編輯相應的文件。

  2. 暫存更改:使用 git add <file>git add . 等命令將更改添加到暫存區。

  3. 提交更改:執行 git commit -m "提交說明" 來創建一個新的提交。將暫存區的內容和你提供的提交消息一起記錄到倉庫的歷史中。

  4. 查看日志(可選):使用 git log 命令可以查看提交歷史,確認你的提交已經被正確記錄。

????????如果在提交之后意識到提交消息有誤或遺漏了一些更改,可以使用 git commit --amend 命令來修改最后一次提交,但請謹慎使用,因為這會改變倉庫的歷史。

?當我們資源更新之后

?

當我們文件發生變化后,再次查詢會發現有出現了新的緩存:

?當我們每次整好一個版本項目,感覺已經是一個能夠保存的節點了,我們就可以將暫存區的信息往本地倉庫提交一下

1.4 查看提交日志

?????????git log是Git版本控制系統中一個非常有用的命令,它允許用戶查看一個或多個分支的提交歷史。這個命令展示了關于每次提交的詳細信息,包括提交哈希值、作者、提交日期和提交信息等。這對于理解項目的發展歷程、審查代碼的變更以及追蹤特定更改的來源等方面非常有幫助。

基本使用

????????要查看當前分支的提交歷史,簡單地在Git倉庫的根目錄下運行:

git log 

常用選項

????????查看每次提交的差異(顯示每次提交中哪些行被添加或刪除):

? git log -p

????????查看最近的N次提交:

git log -n <N>

?其中`<N>`代表你想要查看的提交數目。

???????? 按特定格式顯示日志:

 git log --pretty=format:"%h - %an, %ar : %s"

這將會以一種簡潔的格式顯示提交,包括提交的哈希值、作者名字、提交日期和提交信息。

????????顯示特定文件或目錄的日志:

git log -- <file/directory path>

只顯示指定文件或目錄的提交歷史。

????????圖形化地顯示提交樹:

git log --graph

? 這個選項以圖形方式顯示分支、合并歷史。

高級搜索

????????在特定日期之后的提交:

? git log --after="YYYY-MM-DD"

????????指定作者的提交:

? git log --author="<author>"

????????搜索提交信息中包含特定關鍵字的提交:

git log --grep="<keyword>"

結合使用選項

????????你可以組合使用多個選項來定制你的日志輸出,以滿足具體需求。例如,如果你想看到過去兩周內所有提交的統計信息(如每次提交的更改行數),你可以使用:

git log --since=2.weeks --stat

`git log`是一個強大的命令,提供了多種選項和過濾器來幫助你以不同的方式查看提交歷史。掌握這個命令可以有效地幫助你管理和審查代碼的歷史變更。

查看所有的版本以及回退的記錄?

git reflog

? ? ? ??git reflog 是 Git 中一個非常有用的命令,它記錄了你的本地倉庫中 HEAD 指針的移動歷史。無論是因為提交(commit)、合并(merge)、重置(reset)還是其他原因,只要 HEAD 改變了位置,這些變動都會被記錄在 reflog 中。這個命令對于恢復丟失的工作、找回因為誤操作而消失的提交以及一般的倉庫問題診斷來說都非常有幫助。

二、版本回退?

從本地倉庫恢復回退到指定的版本

git reset --hard commit  //這里的commit是版本id號

???git reset --hard <commit>命令是Git中用于重置當前分支的HEAD到指定提交的一種方式,同時會清除工作目錄中的所有變更。這意味著所有自那次提交以來的更改將會被丟棄,并且工作目錄將會恢復到那次提交的狀態。?

執行這個命令后將會發生以下幾點:

  • 當前分支的HEAD(也就是當前分支的最新提交)將會被更新為指定的提交。
  • 暫存區將會被更新,以匹配那次提交的快照。
  • 工作目錄中的所有文件將會被更新,以匹配那次提交的快照。
  • 所有自那次提交之后進行的更改將會被丟棄。

?

這里就回退到了第一次提交的版本?

警告

? ? ? ? ?使用git reset --hard要非常小心,因為這個命令會丟棄所有未提交的更改。如果你有任何未保存或未提交的工作,它們將會被永久刪除。在執行此命令之前,確保你不需要那些更改,或者已經將它們保存在其他地方。

撤銷git reset --hard

? ? ? ? ?如果你意識到執行了一個不希望的git reset --hard操作,有可能通過查找reflog來恢復丟棄的更改。Git的reflog記錄了你本地倉庫HEAD和分支指針的變化,可以幫助你找到丟失的提交。使用git reflog命令查看歷史操作,然后可以使用git reset --hard <commit>命令恢復到你希望的狀態,其中<commit>是你從reflog中找到的想要恢復到的提交ID。

? ? ? ? ? 記住,git reset --hard是一個強大但危險的命令,只有在你確定要放棄所有更改時才使用它。

要想回退回去

?

📝大佬覺得本文有所裨益,不妨輕點一下👍給予鼓勵吧!

??????本人雖努力,但能力尚淺,若有不足之處,懇請各位大佬不吝賜教,您的批評指正將是我進步的動力!😊😊😊

💖💖💖若您認為此篇文章對您有所幫助,煩請點贊👍并收藏🌟,您的支持是我前行的最大動力!

🚀🚀🚀任務在默默中完成,價值在悄然間提升。讓我們攜手共進,一起加油,迎接更美好的未來!🌈🌈🌈

?

?

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

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

相關文章

android繪制多個黑豎線條

本文實例為大家分享了android繪制多個黑豎線條展示的具體代碼&#xff0c;供大家參考&#xff0c;具體內容如下 1.寫一個LinearLayout的布局&#xff0c;將寬度寫成5dp將高度寫成match_parent. 2.在寫一個類繼承LinearLayout&#xff0c;用LayoutInflater實現子布局的在這個L…

train_gpt2_fp32.cu - main

llm.c/test_gpt2_fp32.cu at master karpathy/llm.c (github.com) 源碼 // ---------------------------------------------------------------------------- // main training loop int main(int argc, char *argv[]) {// read in the (optional) command line argumentsco…

三.使用HashiCorp Vault工具管理數據庫

三.ubuntu安裝使用HashiCorp Vault工具管理數據庫 HashiCorp Vault 是一個基于身份的秘密和加密管理系統。機密是您想要嚴格控制訪問的任何內容,例如 API 加密密鑰、密碼和證書。Vault 提供由身份驗證和授權方法門控的加密服務。使用 Vault 的 UI、CLI 或 HTTP API,可以安全…

深度優先搜索匯總

常用英文 最近公共祖先&#xff08;Lowest Common Ancestor&#xff0c;簡稱LCA&#xff09; posterity&#xff0c;英語單詞&#xff0c;主要用作名詞&#xff0c;作名詞時譯為“子孫&#xff0c;后裔&#xff1b;后代”。 什么是深度優先搜索 深度優先搜索&#xff0c;D…

[前端] vue2的/deep/轉化為vue3語法(筆記)

vue2語法示例 <style scoped lang"less">/deep/.el-carousel__button {width: 8px;height: 3px;border-radius: 3px;}/deep/.el-carousel__indicator.is-active button {width: 16px;} } </style>在 Vue 3 中&#xff0c;/deep/ 或 >>> 選擇器…

24 內核開發- Linux 內核各種設計模式

24 內核開發- Linux 內核各種設計模式 Linux 內核中使用了各種設計模式來組織和結構其龐大的代碼庫。以下是 Linux 內核中的一些常見設計模式&#xff1a; 1. 單例模式&#xff1a; 模塊&#xff1a; init 模塊 目的&#xff1a; 初始化內核并創建第一個進程 (init_task) 實現…

uni-app 實現下拉單選功能(六)

總體的設計思想是,一個輸入框在客戶點擊時,彈出需要選擇的下拉框選項,客戶選擇完后,隱藏下拉框選項內容;并將選擇的數據填充到輸入框內。話不多說直接上代碼: <template> <view class="dianjianInfo"> <view class="uni-form…

文心一言指令

文心一言 文心一言&#xff08;ERNIE Bot&#xff09;是百度公司研發的知識增強大語言模型&#xff0c;它可以根據用戶的指令和輸入&#xff0c;生成相應的回答或文本。以下是一些可能的指令示例&#xff0c;用于指導文心一言完成不同的任務&#xff1a; 知識問答&#xff1a…

【oracle】圖片轉為字節、base64編碼等形式批量插入oracle數據庫并查詢

1.熟悉、梳理、總結下Oracle相關知識體系 2.歡迎批評指正&#xff0c;跪謝一鍵三連&#xff01; 資源下載&#xff1a; oci.dll、oraocci11.dll、oraociei11.dll3個資源文件資源下載&#xff1a; Instant Client Setup.exe資源下載&#xff1a; oci.dll、oraocci11.dll、oraoc…

LangChain_Tools

1、Tools 可以被Agent、Chain、LLM所使用。 2、tool 的必備屬性有&#xff1a;name、description、JSON schema &#xff08;tool輸入&#xff09;、調用的函數、工具的結果是否應直接返回給用戶。其中name、description和 JSON schema 可用于提示 LLM、寫入在LLM的system pro…

初識C語言——第二十一天

猜數字小游戲的實現&#xff1a; 學會了之后可以自己制作彩票抽獎&#xff0c;哈哈&#xff01; 代碼實現&#xff1a; #include <stdlib.h> #include <time.h>void menu()//無返回值函數 {printf("**************************\n");printf("****…

Linux:退出vim編輯模式

一、使用快捷鍵進行退出 1、按“Esc”鍵進入命令模式 當我們在vim編輯模式下輸入完畢需要進行退出操作時&#xff0c;首先需要按下“Esc”鍵&#xff0c;將vim編輯器從插入模式或者替換模式切換到命令模式。 ESC 2、輸入“:wq”保存并退出 在命令模式下&#xff0c;輸入“:…

在kubernetes中配置Ingress

目錄 1. 安裝Nginx Ingress Controller2. 準備TLS證書3. 編寫Ingress資源定義4. 應用Ingress配置5. 驗證配置 1. 安裝Nginx Ingress Controller 首先&#xff0c;確保你的Kubernetes集群已經準備好。你可以使用Helm或者直接通過yaml文件來安裝Nginx Ingress Controller。這里給…

云原生 初識Kubernetes的理論基礎

一、k8s 的由來及其技術運用 1.1 k8s的簡介 Kubernetes&#xff0c;詞根源于希臘語的 舵手、飛行員。在國內又稱k8s&#xff08;因為k和s之間有8個字母&#xff0c;所以得名。“國內程序員的幽默”&#xff09;。 作用&#xff1a; 用于自動部署、擴展和管理“容器化&#x…

利用遠程控制軟件FinalShell遠程連接虛擬機上的Linux系統(Windows)

一. VMware Workstation 安裝CentOS Linux操作系統 傳送門&#xff1a;VMware Workstation 安裝CentOS Linux操作系統 1.右鍵打開終端 2.輸入ifconfig 找到ens33對應 inet的id&#xff0c;這個就是虛擬機的ip地址圖中所示為&#xff1a;192.168.5.128 3.打開finalshell 如…

如何使用 PuTTY 創建 SSH 密鑰以連接到 VPS

公鑰和私鑰 SSH 密鑰的好處 如果您的無頭或遠程 VPS 可以通過互聯網訪問&#xff0c;您應該盡可能使用公鑰身份驗證而不是密碼。這是因為與僅使用密碼相比&#xff0c;SSH 密鑰提供了一種更安全的登錄方式。雖然密碼最終可以通過暴力破解攻擊破解&#xff0c;但 SSH 密鑰幾乎不…

C++ | Leetcode C++題解之第92題反轉鏈表II

題目&#xff1a; 題解&#xff1a; class Solution { public:ListNode *reverseBetween(ListNode *head, int left, int right) {// 設置 dummyNode 是這一類問題的一般做法ListNode *dummyNode new ListNode(-1);dummyNode->next head;ListNode *pre dummyNode;for (i…

抽象類介紹

抽象類 【一】什么是抽象 # 將某幾個具體的生物&#xff0c;根據特征總結成一個類&#xff0c;逐層向上總結 # 唐老鴨 肉鴨 北京烤鴨 ---> 鴨子 # 北極熊 黑熊 --> 熊 # 貓 老虎 --> 貓科 # 鴨子 熊 貓科 --> 動物 【二】什么是繼承 # 動物 ---> 熊 --->…

【刷題篇】二分查找(二)

文章目錄 1、山脈數組的峰頂索引2、尋找峰值3、尋找旋轉排序數組中的最小值4、LCR 點名 1、山脈數組的峰頂索引 符合下列屬性的數組 arr 稱為 山脈數組 &#xff1a; arr.length > 3 存在 i&#xff08;0 < i < arr.length - 1&#xff09;使得&#xff1a; arr[0] &l…

macOS Ventura 13如何設置定時重啟(命令行)

文章目錄 macOS Ventura 13如何設置定時重啟(命令行)前言具體設置步驟及命令解釋其他 macOS Ventura 13如何設置定時重啟(命令行) 前言 由于升級 macOS 13 Ventura 之后&#xff0c;之前在節能里面通過鼠標點擊設置開機關機的方法不能用了&#xff0c;現在只能用命令設置開機…