【Git基本操作】添加文件 | 修改文件 | 及其各場景下.git目錄樹的變化

目錄

1. 添加文件&add操作和commit操作

2. .git樹狀目錄的變化

3. git其他操作?

4. 修改文件

4.1 git status?

4.2 git diff


1. 添加文件&add操作和commit操作

  • add操作:將工作區中所有文件的修改內容 添加進版本庫的暫存區中。
  • commit操作:將暫存區的內容 提交到master分支下。此步完成之后,才能真正意義上說將修改的內容放到版本庫中(本地倉庫)。
  • add對應命令:git add命令
  • commit對應命令:git commit命令

add操作

  • 寫法1:git add 文件的名稱(當然后面也可以跟上多個文件)
  • 寫法2:git add . (當前目錄下所有內容的修改全部添加到暫存區)

commit操作

  • git commit -m " " (引號里是本次提交的細節,盡量詳細的描述,請描述直接語言,不可修改的)(git 版本控制器 管理文件的版本 就是依據版本提交的細節)
  • 回車之后,就可以看到你提交成功的信息。
  • 第一行是提交的細節或備注。
  • 第二行是有幾個文件改變,改變的內容是什么。(此例子是有4個文件改變,改變的內容是1行)
git add
git commitgit add ReadMe//文件名,后面可以跟多個文件名
git add . //當前目錄下所有文件修改的內容全部添加到暫存區git commit -m " "

?

2. .git樹狀目錄的變化

  • add操作之后,index暫存區新增內容的git對象的索引。
  • add操作同時在對象區創建了git對象,內容在這里面。
  • head指針指向master
  • commit操作之后,master新增了對象庫中對象的索引。
  • master里面存放的就是最新一次提交commit id
  • commit id分為兩個部分:
  1. 前兩位是文件夾的名稱
  2. 剩下是后面是標識
  • mastet——>最新一次提交記錄的commit id——>保存的最近一次提交記錄(里面有提交文件修改內容的commit id)——>保存的是提交文件(每個提交的文件都有單獨的commit id)——> commit id保存的是修改的內容。

【head指針指向master】cat .git/HEAD

【未操作前】?

【操作之后】?


cat .git/refs/heads/master 
//master的內容,里面存放的是最新一次提交的commit id

git cat-file -p  跟commit id //查看maseter索引commit id的內容

【只提交了一次所以只有一次提交記錄】?

【tree后面也是一個對象,對象里面存放的是最新一次提交的commit id】

【此例子我們提交了兩次,所以有parent:?上次提交內容parent的commit id】

git cat-file -p 0de78ceec6ac9cf0502e67fc7d7dced363a7ada5//commit id是提交記錄中tree后面對象的索引

git cat-file -p ce09bf3ad4f74a39462ae54d7a75272977303c05 //查改對應文件commit id中保存的修改的內容

?

3. git其他操作?

git log?

  • git log :可以幫助我們打印時間從近到遠的提交記錄。
  • 每次提交都會有一個commit id(通過哈希計算出來的一個數字,不是遞增的數字。十六進制表示。)

  • 這個id可以定位到我們每次的提交的文件內容。定位到是誰提交和提交時間以及提交的詳細信息。

  • 下面例子:清晰的知道commit id和配置的姓名和郵箱。

?git log --pretty=oneline

  • git log --pretty=oneline:簡化上面的內容(打印一行漂亮的日志)

4. 修改文件

前提:對工作區的文件的修改包括以下幾個方面:

  1. 新增一個文件
  2. 刪除一個文件
  3. 修改一個文件內容(增刪改)

重點?:Git版本控制器并不是追蹤管理文件本身,而是文件的修改。對象庫中的一個git對象,里面存儲其實是工作區修改的內容。Git管理的是修改的內容而不是一整個的文件。

注意?:每次修改工作區的文件之后,提交之后,需要用git的指令查看本地倉庫的狀態和修改的具體內容。

4.1 git status?

查看當前倉庫的狀態:git status

  • 用于查看上一次提交 截至到現在 是否對哪些文件做出修改,注意只是哪些文件變化了/修改了,不能查看修改的內容。
  • Changes not staged for commit 沒有將要提交的文件修改內容 到暫存區內容(工作區存在修改過的文件 沒有提交到暫存區中了)
  • 修改的是在工作區:modified:ReadMe修改的內容在。

【add未提交到暫存區前】?

【add提交到暫存區】??【commit 未提交到本地倉庫前】?

【commit提交到本地倉庫】

4.2 git diff

顯示暫存區和工作區之間差異的文件內容的git diff???需要查看某個修改文件的具體內容的文件名。(顯示的是diff格式)

?

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

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

相關文章

云端編碼:將您的技術API文檔安全存儲在iCloud的最佳實踐

云端編碼:將您的技術API文檔安全存儲在iCloud的最佳實踐 作為一名技術專業人士,管理不斷增長的API文檔庫是一項挑戰。iCloud提供了一個無縫的解決方案,允許您在所有設備上存儲、同步和訪問您的個人技術API文檔。本文將指導您如何在iCloud中高…

系統服務綜合實驗(dns服務,nfs服務)

題目:現有主機 node01 和 node02,完成如下需求: 1、在 node01 主機上提供 DNS 和 WEB 服務 2、dns 服務提供本實驗所有主機名解析 3、web服務提供 www.rhce.com 虛擬主機 4…

three-tile: 1. 第一個three-tile程序

上篇介紹了:three-tile: 一個開源的輕量級三維瓦片庫-CSDN博客 three-tile 是一個開源的輕量級三維瓦片庫,它基于threejs使用typescript開發,提供一個三維地形模型,能輕松給你的應用增加三維瓦片地圖。 項目地址&…

C#知識|賬號管理系統:UI層-添加賬號窗體設計思路及流程。

哈嘍,你好啊,我是雷工! 前邊練習過詳情頁窗體的設計思路及流程: 《C#知識|上位機UI設計-詳情窗體設計思路及流程(實例)》 本節練習添加賬號窗體的UI設計,以下為學習筆記。 01 效果展示 02 添加窗體 在UI層添加Windows窗體,設置名稱為:FrmAddAcount.cs 設置窗體屬…

Nginx七層(應用層)反向代理:UWSGI代理uwsgi_pass篇

Nginx七層(應用層)反向代理 UWSGI代理uwsgi_pass篇 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this a…

數據結構模板2

Trie樹&#xff1a;用來高效存儲和查找字符串集合的數據結構&#xff1a; 模板題&#xff1a;https://www.acwing.com/problem/content/837/ AC代碼&#xff1a; #include<bits/stdc.h> using namespace std; int son[100010][26],cnt[100010],idx; char str[100010]; …

數據的洞察力:SQL Server Analysis Services在數據分析中的卓越應用

數據的洞察力&#xff1a;SQL Server Analysis Services在數據分析中的卓越應用 在商業智能和數據分析領域&#xff0c;SQL Server Analysis Services (SSAS) 是一款強大的工具&#xff0c;它提供了多維數據和數據挖掘模型的創建、部署和管理功能。本文將深入探討如何在SQL Se…

云端生活,智能管理:在iCloud中打造您的個人購物清單與預算計劃

云端生活&#xff0c;智能管理&#xff1a;在iCloud中打造您的個人購物清單與預算計劃 在快節奏的現代生活中&#xff0c;個人財務管理和購物規劃變得尤為重要。iCloud提供了一個強大的平臺&#xff0c;讓我們能夠存儲、同步和共享個人購物清單與預算計劃。本文將詳細介紹如何…

代碼隨想錄算法訓練營第二十九天

452. 用最少數量的箭引爆氣球 這道題目我原本的想法是只要當前的氣球半徑范圍在已有的箭頭能夠擊穿的氣球半徑內就可以實現 但是 箭射出去的地方是一個值 而不是一個范圍 因此有相同的重疊范圍的許多氣球并一定都有相同的值&#xff0c;因此這種方法不可取 這題的主要局部最…

最短路徑算法(算法篇)

算法之最短路徑算法 最短路徑算法 概念&#xff1a; 考查最短路徑問題&#xff0c;可能會輸入一個賦權圖(也就是邊帶有權的圖)&#xff0c;則一條路徑的v1v2…vN的值就是對路徑的邊的權求和&#xff0c;這叫做賦權路徑長&#xff0c;如果是無權路徑長就是單純的路徑上的邊數。…

mac安裝配置cmake

本機是2015 macbook pro mid&#xff0c;已經有點老了&#xff0c;用homebrew下cmake老出問題 其實cmake官網安裝也不麻煩 一、官網下載對應安裝包 Download CMake 和所有dmg文件一樣安裝 二、改成命令行使用 一般來說 tutorial 給的都是命令行build 命令行的設置如下&am…

手機下載APP (uniapp/vue)

一、uniapp <template><view class"content"><view class"appName">{{ formData.appName }}</view><view class"appInfo">{{ formData.appInfo }}</view><image class"logo" :src"formDa…

批量修改Git歷史commit信息中的username

之前很長一段時間GitHub上的提交都在使用工作賬戶, 導致私人倉庫中的提交者比較混亂. 在StackOver里面找到了一個bash腳本可以批量修改username, 在這里記錄一下. 修改的步驟一共兩步: 執行修改腳本將本地修改同步到Git服務器 首先我們來看腳本: #!/bin/shgit filter-branch…

SFUZZ模糊測試平臺全新升級,從標準到實踐助力車企安全出海

開源網安模糊測試平臺SFuzz全新升級&#xff0c;參照各國相關標準要求進行針對性建設&#xff0c;可為智能網聯汽車信息安全測試提供更為強大的工具支持。SFuzz向被測系統輸入大量隨機數據&#xff0c;模擬各種異常情況&#xff0c;可以發現被測系統內潛在的缺陷和漏洞&#xf…

Spring中如何操作Redis

Spring畢竟是Java中的一個主流框架&#xff0c;如何在這個框架中使用Redis呢&#xff1f; 創建項目并引入相關依賴 然后進行創建。 至此就將Redis的相關依賴引入進來了。 編寫Redis配置 將application.properties修改成application.yml 然后編寫如下配置&#xff1a; spr…

usbserver工程師手記(二)設置定時任務

概述 部分銀行ukey 長時間不使用后會導致休眠&#xff0c;出現雖然有連接&#xff0c;但是讀不到證書&#xff0c;可以用定時重置端口的辦法&#xff0c;調用接口 http://ip/usb_server/reset_port,參數為 {"port":"B5-1-2","vid_pid":"09…

Golang | Leetcode Golang題解之第228題匯總區間

題目&#xff1a; 題解&#xff1a; func summaryRanges(nums []int) (ans []string) {for i, n : 0, len(nums); i < n; {left : ifor i; i < n && nums[i-1]1 nums[i]; i {}s : strconv.Itoa(nums[left])if left < i-1 {s "->" strconv.It…

多個標簽頁中復用同一 QTableView

在 PyQt 中實現在多個標簽頁中復用同一個 QTableView 實例&#xff0c;復用同一個 QTableView 實例可以減少內存和資源的使用。每個 QTableView 實例都會消耗一定的內存和處理資源&#xff0c;如果每個標簽頁都創建一個新的實例&#xff0c;會增加系統的負擔。通過復用實例&…

每天一個數據分析題(四百二十一)- 一元線性回歸模型

關于一元線性回歸的求解過程說法正確的是&#xff1f; A.一元線性回歸只需要求解出兩個參數系數即可 B.對于新來的樣例&#xff0c;建立好的一元線性回歸模型可以做出準確的預測 C.一元線性回歸模型的基本形式是YAxe&#xff0c;其中A為系數&#xff0c;e為隨機誤差 D.一元線性…

日常學習-20240710

1、一次一千萬條數據插入和刪除案例&#xff1a; 第一次&#xff1a;插入--批量插入&#xff0c;每次插入5000條數據&#xff0c;總耗時28min,數據無異常 刪除--通過sql語句一次性刪除&#xff0c;總耗時1h52min;一次刪除的數據過多導致mysql的備份恢復文件極其龐大&#xff0…