GIT | 基礎操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤銷修改 | 刪除文件

GIT | 基礎操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤銷修改 | 刪除文件

文章目錄

  • GIT | 基礎操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤銷修改 | 刪除文件
    • 前言
    • 一、安裝git
    • 二、git基本操作
      • 2.1 初始化git
      • 2.2 配置局部生效
      • 2.3 配置全局生效
    • 三、認識工作區、暫存區、版本庫
      • 3.1 添加文件場景一
      • 3.2 查看添加的文件
      • 3.3 添加文件場景二
    • 四、修改文件
      • 4.1 查看工作區的狀態
    • 五、版本回退
    • 六、撤銷修改
      • 6.1 情況一:對于工作區的代碼,還沒有add
      • 6.2 情況二:已經add ,但沒有commit
      • 6.3 情況三:已經add ,并且也commit 了
    • 七、刪除文件

前言

Git(讀音為/g?t/)是一個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。也是Linus Torvalds為了幫助管理Linux內核開發而開發的一個開放源碼的版本控制軟件。

我們這里就不多介紹這里的GIT了,百度百科和維基百科上都有很多介紹,我們這里就不再介紹,直接來演示~~

下面演示的均是Centos7.6系統,

  • 我們先來檢測以下git有沒有安裝
git --version
  • 如果提示的是這樣的就說明沒有安裝

在這里插入圖片描述

一、安裝git

  • 執行以下命令,安裝git
yum instal -y git
  • 如果執行失敗的話就先更新一下系統
yum update -y
  • 然后再檢測是否安裝成功~

在這里插入圖片描述


二、git基本操作

2.1 初始化git

  • 安裝好git后,我們就要創建一個本地倉庫,就是要初始化一下

創建文件夾

mkdir gitcode

進入文件夾

cd gitcode/

初始化git

git init

查看是否初始化成功

ls -al

在這里插入圖片描述

  • 查看隱藏文件git目錄下,有什么文件~~

在這里插入圖片描述

  • 我們需要設置郵箱和用戶名【這里是局部生效的配置用戶名和郵箱】

2.2 配置局部生效

配置用戶名

git config user.name "shilin"

配置郵箱

git config user.email "intshanxi@163.com"

查看配置

git config -l

在這里插入圖片描述


那我想要刪除剛剛配置的,就可以執行以下命令

刪除用戶名

git config --unset user.name

刪除郵箱

git config --unset user.email

在這里插入圖片描述

2.3 配置全局生效

  • 將配置項生效所有倉庫配置項

配置用戶名

git config --global user.name "intshanxi"

配置郵箱

git config --global user.email "intshanxi@163.com"

查看剛剛配置的

git config -l

在這里插入圖片描述

  • 那我想要刪除剛剛配置的,就可以執行以下命令~

刪除用戶名

git config --global --unset user.name

刪除郵箱

git config --global --unset user.email
  • 接下來我們就往這個倉庫里生成一個文件
touch ReadMe
  • 在目前情況下,git是不能管理這個文件的~~

在這里插入圖片描述


  • 我現在往git里添加了一點東西

在這里插入圖片描述


三、認識工作區、暫存區、版本庫

3.1 添加文件場景一

  • 我們就來看第一個步驟
git add 文件名

或者只寫一個.,這個意思就是全部添加

  • 我們就來看第二個步驟
git commit -m '要描述的細節'

在這里插入圖片描述

  • 創建多個文件
touch file1 file2 file3
  • 我們還可以用.來一鍵添加

在這里插入圖片描述

3.2 查看添加的文件

  • 還可以查看最近提交的日志
git log

在這里插入圖片描述

  • 我們還可以再打印的簡單一點,方便觀察
git log --pretty=oneline

在這里插入圖片描述

  • 查看git日志后,commit后面的一串字符是(安全哈希算法)加密過的文件

在這里插入圖片描述

  • 我們可以通過命令來查看這個具體提交記錄
git cat-file -p fc9176efe2397e38411e1ec44b9f58be6e0cc99f

在這里插入圖片描述

  • 在其中有一行tree 0e6b1780b73cd9220ec5073dc64b42f7ad4bd945
  • 然后再查看一下這個
git cat-file -p 0e6b1780b73cd9220ec5073dc64b42f7ad4bd945
  • 繼續查看文件內容
git cat-file -p 8d0e41234f24b6da002d962a26c2495ea16a425f

在這里插入圖片描述

3.3 添加文件場景二

git add file4
touch file5
git commit -m 'add file4'
  • 這里雖然添加了兩個文件,但是只有file4添加到了暫存區,提交修改的時候只有file4發生了變化,而file5沒有發生變化

在這里插入圖片描述

四、修改文件

  • git其實管理的是修改,而不是文件

  • 我們先修改了ReadMe

在這里插入圖片描述

4.1 查看工作區的狀態

  • 我們查看當前工作區的狀態
git status

在這里插入圖片描述

  • 那我們想查看修改了哪些內容呢?
git diff 文件名

在這里插入圖片描述

  • 這個時候我們再提交一下
git add ReadMe
  • 查看狀態
git status

在這里插入圖片描述

  • 這個時候就再提交
git commit -m 'add modify ReadMe file'
  • 再查看
git status

在這里插入圖片描述

五、版本回退

  • 剛開始文件里的內容只有一行,后來添加了兩行

  • 對于這個文件來說是有兩個版本的

在這里插入圖片描述

  • 這里的回退命令是git reset可以指定某一次提交的版本

  • git reset 命令語法格式為: git reset [--soft | --mixed | --hard] [HEAD]

    • –mixed 為默認選項,使?時可以不用帶該參數。該參數將暫存區的內容退回為指定提交版本內容,工作區文件保持不變。
    • –soft 參數對于工作區和暫存區的內容都不變,只是將版本庫回退到某個指定版本。
    • –hard 參數將暫存區與工作區都退回到指定版本。切記工作區有未提交的代碼時不要用這個命令,因為工作區會回滾,你沒有提交的代碼就再也找不回了,所以使用該參數前一定要慎重。
  • HEAD 說明:
    ? 可直接寫成 commit id,表示指定退回的版本
    ? HEAD 表示當前版本
    ? HEAD^ 上一個版本
    ? HEAD^^ 上上一個版本
    ? 以此類推…

  • 可以使用 ~數字表示:
    ? HEAD~0 表示當前版本
    ? HEAD~1 上一個版本
    ? HEAD^2 上上一個版本
    ? 以此類推…


  • 查看日志
git log --pretty=oneline
  • 回退到最初版本
git reset --hard eea6e0091277b0e3de6739d0cede91333284b6e7

在這里插入圖片描述

  • 可以看到一旦回到這一次,我們后面創建的文件都會被刪除
  • 我們再來看文件的內容
cat ReadMe

在這里插入圖片描述

  • 查看日志
git log --pretty=oneline

在這里插入圖片描述

  • 那有人說我又后悔了怎么辦?
  • 想要再回退回去
  • 我們剛剛打印過這一個最新的版本我們就回退到這個版本
git reset --hard b842e9f3f8a267b0957389abae0dbc159d12fd43

在這里插入圖片描述

  • 我們再來看一下當前目錄下
  • 文件回來了,文件里的內容也會來了

在這里插入圖片描述

  • 再來打印這個日志
  • 這個log也回來了
git log --pretty=oneline

在這里插入圖片描述

  • 那我回退了最初的版本后,找不到那個字符串了怎么辦?
  • 我們還有一種方法

  • 查看
git reflog

在這里插入圖片描述

  • 回退版本
git reset --hard b842e9f

在這里插入圖片描述

  • 這樣就可以回退回去了

  • 那么這里的版本回退為什么會這么快呢?
  • 是因為有一個HEAD指針

在這里插入圖片描述

六、撤銷修改

  • 如果我們在我們的工作區寫了很長時間代碼,越寫越寫不下去,覺得自己寫的實在是垃圾,想恢復到上一個版本。

在這里插入圖片描述

6.1 情況一:對于工作區的代碼,還沒有add

  • 我們先對ReadMe進行修改

在這里插入圖片描述

  • 我們想撤銷我們的代碼,我們可以重新再次編輯刪除掉那一行代碼,就可以了

  • 那寫了很多呢?想一次性撤銷,那怎么辦呢?接下來我們來看~~

  • 查看修改了哪些內容

git diff ReadMe

在這里插入圖片描述

  • 想要一次撤銷,我們執行以下命令
git checkout -- ReadMe
  • 這里的--就是回退到最近一次add或者commit的操作

  • 我們再次打印,新增的那一行就沒有了

在這里插入圖片描述

6.2 情況二:已經add ,但沒有commit

  • add 后還是保存到了暫存區呢?怎么撤銷呢?

在這里插入圖片描述

  • 讓我們來回憶一下學過的git reset回退命令,該命令如果使用 --mixed 參數,可以將暫存區的內容退回為指定的版本內容,但工作區文件保持不變。那我們就可以回退下暫存區的內容了!!!
git reset HEAD ReadMe
  • HEAD代表當前版本
  • HEAD^代表上一個版本
  • HEAD^^代表上一個版本

在這里插入圖片描述

  • 這個時候再進行情況一的回退
git checkout -- ReadMe

在這里插入圖片描述

6.3 情況三:已經add ,并且也commit 了

  • 我們可以git reset --hard HEAD^ 回退到上一個版本!不過,這是有條件的,就是你還沒有把自己的本地版本庫推送到遠程。還記得Git是分布式版本控制系統嗎?我們后面章節會講到遠程版本庫,一旦你推送到遠程版本庫,你就真的慘了

  • 我們先修改文件,然后添加文件【add】【commit】

  • 然后修改

git reset --hard HEAD^

在這里插入圖片描述

七、刪除文件

  • 刪除文件
git rm file
git commit -m '記錄'

在這里插入圖片描述


我們這里的git基礎操作就到這里了,我們后面還有一些進階操作~~
感謝大家的收看,我們共同進步!!!

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

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

相關文章

淺談堆和棧內存以及編程語言

淺談堆和棧內存以及編程語言 棧和堆C 和 C# 的區別:C#總結 編程語言C匯編語言(Assembly Language):機器語言(Machine Language): 拓展C#依賴注入(Dependency Injection)模…

2018年全國碩士研究生入學統一考試管理類專業學位聯考數學試題——解析版

文章目錄 2018 年考研管理類聯考數學真題一、問題求解(本大題共 5 小題,每小題 3 分,共 45 分)下列每題給出 5 個選項中,只有一個是符合要求的,請在答題卡上將所選擇的字母涂黑。真題(2018-01&a…

DRF-項目-(1):構建純凈版的drf項目,不再使用django的后臺管理,django的認證,django的session等功能,作為一個純接口項目

項目的目錄結構: -HeartFailure |-- apps |--user |--HeartFailure |-- static |--manage.py 一、django項目相關的 1、命令行中創建django項目 #1、切換到指定的虛擬環境中 workon my_drf#2、該虛擬環境已經安裝好django和rest_framework了 django-admin startp…

補充:linux rsyslog配置多端口監聽(基于UDP)

rsyslog默認udp監聽端口為514,我們可以配置rsyslog基于udp的多端口監聽,實現監控的豐富性 1.環境信息 環境信息 HostnameIpAddressOS versionModuleNotersyslog1192.168.10.246Red Hat Enterprise Linux Server release 7.7 (Maipo)rsyslogd 8.24.0-38.el7linux基礎配置 Li…

④【Set】Redis常用數據類型: Set [使用手冊]

個人簡介:Java領域新星創作者;阿里云技術博主、星級博主、專家博主;正在Java學習的路上摸爬滾打,記錄學習的過程~ 個人主頁:.29.的博客 學習社區:進去逛一逛~ Redis Set ④Redis Set 操作命令匯總1. sadd …

mysql的聯合索引最左匹配原則問題

MySQL的聯合索引 聯合索引的最左匹配原則會一直向右匹配直到遇到范圍查詢(>、<、between、like) 就會停止匹配。 這個結論并不全對&#xff01;去掉 「between 和 like 」這個結論就沒問題了 經過實驗的證明&#xff0c;我得出的結論是這樣的&#xff1a; 聯合索引的最…

【計算機網絡學習之路】TCP socket編程

文章目錄 前言一. 服務器1. 初始化服務器2. 啟動服務器 二. 客戶端三. 多進程服務器結束語 前言 本系列文章是計算機網絡學習的筆記&#xff0c;歡迎大佬們閱讀&#xff0c;糾錯&#xff0c;分享相關知識。希望可以與你共同進步。 本篇博客基于UDP socket基礎&#xff0c;介紹…

Oracle的控制文件多路復用,控制文件備份,控制文件手工恢復

一.配置控制文件多路復用 1.查詢Oracle的控制文件所在位置 SQL> select name from v$controlfile;NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/fast_recovery_a…

【docker】docker總結

一、Docker簡介 Docker是開源應用容器引擎&#xff0c;輕量級容器技術。基于Go語言&#xff0c;并遵循Apache2.0協議開源Docker可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中&#xff0c;然后發布到任何流行的Linux系統上&#xff0c;也可以實現虛擬化容…

No matching variant of com.android.tools.build:gradle:7.4.2 was found.

一、報錯信息 創建個新項目&#xff0c;運行直接報錯&#xff0c;信息如下&#xff1a; No matching variant of com.android.tools.build:gradle:7.4.2 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar,…

shell 條件語句

目錄 測試 test測試文件的表達式 是否成立 格式 選項 比較整數數值 格式 選項 字符串比較 常用的測試操作符 格式 邏輯測試 格式 且 &#xff08;全真才為真&#xff09; 或 &#xff08;一真即為真&#xff09; 常見條件 雙中括號 [[ expression ]] 用法 &…

springboot啟動過程

1、SpringApplication new一個對象會優先調用initialize方法 public SpringApplication(Object... sources) {initialize(sources); } private void initialize(Object[] sources) {//添加配置類SpringBootApplicationif (sources ! null && sources.length > 0) …

關于一些bug的解決1、el-input的輸入無效2、搜索之后發現數據不對3、el多選框、單選框點擊無用4、

el-input輸入無效 原來的代碼是 var test null 但是我發現不能輸入任何值 反倒修改test的初始值為123是可以的 于是我確定綁定沒問題 就是修改的問題 于是改成 var test ref&#xff08;&#xff09; v-model綁定的值改成test.value就可以了 因為ref是相應式的 可以通過輸入…

【算法】奇偶游戲(帶權并查集)

題目 小 A 和小 B 在玩一個游戲。 首先&#xff0c;小 A 寫了一個由 0 和 1 組成的序列 S&#xff0c;長度為 N。 然后&#xff0c;小 B 向小 A 提出了 M 個問題。 在每個問題中&#xff0c;小 B 指定兩個數 l 和 r&#xff0c;小 A 回答 S[l~r] 中有奇數個 1 還是偶數個 …

cocos2dx ??Animate3D(三)

一些總結 動作&#xff08;Actions&#xff09; move移動&#xff1a;moveto/moveby 從一個位置移動到另外一個位置 從一個位置移動多少數量級rotate旋轉&#xff1a;rotateto/rotateby 從一個角度旋轉到另外一個角度 旋轉多少個數量級scale縮放&#xff1a;scaleto/scaleby …

vue實現瀏覽器禁止鼠標選中文字禁止右鍵禁止F12鍵

1. 禁止鼠標選中文字 document.onselectstart new Function("event.returnValuefalse");2.禁止右鍵 document.oncontextmenu new Function("event.returnValuefalse");3. 禁止F12鍵 document.addEventListener("keydown", function (e) {if…

Go語言多線程爬蟲萬能模板它來了!

對于長期從事爬蟲行業的技術員來說&#xff0c;通過技術手段實現抓取海量數據并且做到可視化處理&#xff0c;我在想如果能寫一個萬能的爬蟲模板&#xff0c;后期遇到類似的工作只要套用模板就能解決大部分的問題&#xff0c;如此提高工作效率何樂而不為&#xff1f; 以下是一個…

有關Vue、微信小程序、UniApp中的CSS中的寬度width單位、自適應

在Vue中&#xff0c;可以使用以下單位來設置寬度&#xff08;width&#xff09; 像素&#xff08;px&#xff09;&#xff1a;最常用的單位&#xff0c;表示一個絕對長度單位。例如&#xff0c;width: 200px; 表示寬度為200像素。百分比&#xff08;%&#xff09;&#xff1a;…

Mac自帶的看圖如何連續查看多張圖片

一、問題 mac看訪達里的圖片時&#xff0c;雙擊打開一張圖片&#xff0c;然后按上下左右鍵都沒法切換到另外的圖片。而且也沒找到像window一樣單擊縮略圖可以看到預覽圖。其實是自己不懂得怎么使用&#xff0c;哈哈哈&#x1f602; 二、方法 2.1、圖標方式 可以看到縮略圖&a…

新的centos7.9安裝jenkins(二)

更多ruoyi-nbcio功能請看演示系統 gitee源代碼地址 前后端代碼&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后臺管理系統 接上一節文章。 這個版本默認git也安裝好了&#xff0c;所以全局配置這個不需要了。 maven安裝3.9.3版本…